From 46450f323a5fe4b39b003b800ba34a2c674be7e1 Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Tue, 2 Oct 2018 07:42:29 -0700 Subject: [PATCH 1/6] Move utils into common folder --- src/client/activation/activationService.ts | 2 +- src/client/activation/downloader.ts | 4 +- src/client/activation/hashVerifier.ts | 2 +- .../activation/interpreterDataService.ts | 2 +- .../languageServer/languageServer.ts | 4 +- .../languageServerPackageService.ts | 2 +- src/client/activation/progress.ts | 4 +- .../common/installer/moduleInstaller.ts | 2 +- src/client/common/net/socket/socketServer.ts | 4 +- src/client/common/platform/fileSystem.ts | 2 +- src/client/common/platform/osinfo.ts | 2 +- src/client/common/platform/platformService.ts | 2 +- src/client/common/platform/registry.ts | 2 +- src/client/common/platform/types.ts | 2 +- src/client/common/process/proc.ts | 2 +- src/client/common/process/pythonProcess.ts | 2 +- src/client/common/process/types.ts | 2 +- src/client/common/serviceRegistry.ts | 2 +- src/client/common/terminal/helper.ts | 2 +- src/{ => client/common}/utils/async.ts | 0 src/{ => client/common}/utils/decorators.ts | 0 src/{ => client/common}/utils/enum.ts | 0 src/{ => client/common}/utils/fs.ts | 0 src/{ => client/common}/utils/logging.ts | 0 src/{ => client/common}/utils/misc.ts | 0 src/{ => client/common}/utils/platform.ts | 2 +- src/{ => client/common}/utils/random.ts | 2 +- src/{ => client/common}/utils/stopWatch.ts | 0 src/{ => client/common}/utils/string.ts | 0 src/{ => client/common}/utils/sysTypes.ts | 0 src/client/common/utils/text.ts | 113 ++++++++++++++++++ src/{ => client/common}/utils/version.ts | 0 src/client/common/variables/sysTypes.ts | 2 +- .../common/variables/systemVariables.ts | 2 +- src/client/debugger/Common/telemetry.ts | 2 +- .../debugger/DebugClients/LocalDebugClient.ts | 2 +- .../debugger/DebugServers/BaseDebugServer.ts | 2 +- .../DebugServers/LocalDebugServerV2.ts | 2 +- src/client/debugger/mainV2.ts | 4 +- src/client/extension.ts | 4 +- src/client/formatters/autoPep8Formatter.ts | 2 +- src/client/formatters/blackFormatter.ts | 2 +- src/client/formatters/yapfFormatter.ts | 2 +- .../configuration/pythonPathUpdaterService.ts | 2 +- src/client/interpreter/locators/helpers.ts | 2 +- .../locators/services/KnownPathsService.ts | 2 +- .../services/cacheableLocatorService.ts | 2 +- .../locators/services/condaService.ts | 2 +- .../services/windowsRegistryService.ts | 2 +- src/client/interpreter/virtualEnvs/index.ts | 4 +- .../languageServerSurveyBanner.ts | 2 +- .../proposeLanguageServerBanner.ts | 2 +- src/client/linters/lintingEngine.ts | 2 +- src/client/providers/importSortProvider.ts | 2 +- src/client/providers/jediProxy.ts | 6 +- .../providers/simpleRefactorProvider.ts | 2 +- src/client/providers/symbolProvider.ts | 2 +- src/client/refactor/proxy.ts | 4 +- src/client/telemetry/index.ts | 2 +- .../managers/testConfigurationManager.ts | 4 +- src/client/unittests/display/main.ts | 2 +- src/client/unittests/display/picker.ts | 2 +- src/client/unittests/nosetest/runner.ts | 2 +- src/client/unittests/pytest/runner.ts | 2 +- src/client/unittests/unittest/main.ts | 2 +- src/client/unittests/unittest/runner.ts | 2 +- src/client/unittests/unittest/socketServer.ts | 2 +- src/client/workspaceSymbols/parser.ts | 2 +- .../activation/activationService.unit.test.ts | 2 +- .../languageServerPackageService.unit.test.ts | 2 +- .../diagnostics/promptHandler.unit.test.ts | 2 +- src/test/common/installer.test.ts | 4 +- .../installer.invalidPath.unit.test.ts | 2 +- .../common/installer/installer.unit.test.ts | 4 +- .../installer/moduleInstaller.unit.test.ts | 4 +- .../common/installer/productPath.unit.test.ts | 2 +- src/test/common/moduleInstaller.test.ts | 2 +- src/test/common/platform/osinfo.unit.test.ts | 4 +- .../platform/platformService.unit.test.ts | 2 +- .../common/process/proc.observable.test.ts | 2 +- src/test/common/socketCallbackHandler.test.ts | 2 +- .../terminals/activation.bash.unit.test.ts | 2 +- .../activation.commandPrompt.unit.test.ts | 2 +- .../terminals/activation.conda.unit.test.ts | 1 - .../common/terminals/activation.unit.test.ts | 2 +- .../terminals/helper.activation.unit.test.ts | 2 +- src/test/common/terminals/helper.unit.test.ts | 2 +- .../pyenvActivationProvider.unit.test.ts | 4 +- .../envVarsProvider.multiroot.test.ts | 2 +- .../common/variables/envVarsService.test.ts | 2 +- .../interpreterSelector.unit.test.ts | 2 +- src/test/debugger/capabilities.test.ts | 4 +- .../debugger/common/protocolparser.test.ts | 2 +- .../provider.attach.unit.test.ts | 2 +- src/test/debugger/debugClient.ts | 2 +- src/test/debugger/misc.test.ts | 2 +- src/test/debugger/portAndHost.test.ts | 2 +- src/test/debugger/run.test.ts | 2 +- src/test/format/format.helper.test.ts | 2 +- .../install/channelManager.channels.test.ts | 2 +- .../install/channelManager.messages.test.ts | 2 +- .../interpreters/condaService.unit.test.ts | 2 +- src/test/interpreters/display.unit.test.ts | 2 +- .../interpreterService.unit.test.ts | 6 +- .../locators/helpers.unit.test.ts | 4 +- .../interpreters/locators/index.unit.test.ts | 4 +- src/test/interpreters/mocks.ts | 2 +- .../interpreters/pipEnvService.unit.test.ts | 2 +- .../windowsRegistryService.unit.test.ts | 2 +- src/test/linters/lint.manager.test.ts | 2 +- src/test/linters/lint.provider.test.ts | 2 +- src/test/performance/load.perf.test.ts | 2 +- .../providers/importSortProvider.unit.test.ts | 2 +- .../providers/symbolProvider.unit.test.ts | 4 +- .../terminalCodeExec.unit.test.ts | 2 +- src/test/unittests/argsService.test.ts | 2 +- .../testConfigurationManager.unit.test.ts | 2 +- .../configSettingService.unit.test.ts | 2 +- src/test/unittests/configuration.unit.test.ts | 2 +- src/test/unittests/debugger.test.ts | 2 +- src/test/unittests/display/main.test.ts | 4 +- src/test/unittests/mocks.ts | 2 +- .../pytest/pytest.testparser.unit.test.ts | 2 +- .../unittests/stoppingDiscoverAndTest.test.ts | 2 +- src/test/utils/async.unit.test.ts | 2 +- src/test/utils/platform.unit.test.ts | 6 +- src/test/utils/string.unit.test.ts | 2 +- src/test/utils/text.unit.test.ts | 2 +- src/test/utils/version.unit.test.ts | 2 +- src/utils/text.ts | 2 +- 130 files changed, 256 insertions(+), 144 deletions(-) rename src/{ => client/common}/utils/async.ts (100%) rename src/{ => client/common}/utils/decorators.ts (100%) rename src/{ => client/common}/utils/enum.ts (100%) rename src/{ => client/common}/utils/fs.ts (100%) rename src/{ => client/common}/utils/logging.ts (100%) rename src/{ => client/common}/utils/misc.ts (100%) rename src/{ => client/common}/utils/platform.ts (98%) rename src/{ => client/common}/utils/random.ts (93%) rename src/{ => client/common}/utils/stopWatch.ts (100%) rename src/{ => client/common}/utils/string.ts (100%) rename src/{ => client/common}/utils/sysTypes.ts (100%) create mode 100644 src/client/common/utils/text.ts rename src/{ => client/common}/utils/version.ts (100%) diff --git a/src/client/activation/activationService.ts b/src/client/activation/activationService.ts index 45e6aed1569f..83620b7f2c53 100644 --- a/src/client/activation/activationService.ts +++ b/src/client/activation/activationService.ts @@ -8,7 +8,6 @@ import { ConfigurationChangeEvent, Disposable, OutputChannel, Uri } from 'vscode'; -import { OSDistro, OSType } from '../../utils/platform'; import { IApplicationShell, ICommandManager, IWorkspaceService @@ -20,6 +19,7 @@ import { IConfigurationService, IDisposableRegistry, IOutputChannel, IPythonSettings } from '../common/types'; +import { OSDistro, OSType } from '../common/utils/platform'; import { IServiceContainer } from '../ioc/types'; import { PYTHON_LANGUAGE_SERVER_PLATFORM_NOT_SUPPORTED } from '../telemetry/constants'; import { getTelemetryReporter } from '../telemetry/telemetry'; diff --git a/src/client/activation/downloader.ts b/src/client/activation/downloader.ts index 967e94ac8b0f..34360a772bb0 100644 --- a/src/client/activation/downloader.ts +++ b/src/client/activation/downloader.ts @@ -6,11 +6,11 @@ import * as path from 'path'; import * as requestProgress from 'request-progress'; import { ProgressLocation, window } from 'vscode'; -import { createDeferred } from '../../utils/async'; -import { StopWatch } from '../../utils/stopWatch'; import { STANDARD_OUTPUT_CHANNEL } from '../common/constants'; import { IFileSystem } from '../common/platform/types'; import { IExtensionContext, IOutputChannel } from '../common/types'; +import { createDeferred } from '../common/utils/async'; +import { StopWatch } from '../common/utils/stopWatch'; import { IServiceContainer } from '../ioc/types'; import { sendTelemetryEvent } from '../telemetry'; import { diff --git a/src/client/activation/hashVerifier.ts b/src/client/activation/hashVerifier.ts index b9cddf577d43..e0b405ff5877 100644 --- a/src/client/activation/hashVerifier.ts +++ b/src/client/activation/hashVerifier.ts @@ -3,7 +3,7 @@ import { createHash } from 'crypto'; import * as fs from 'fs'; -import { createDeferred } from '../../utils/async'; +import { createDeferred } from '../common/utils/async'; export class HashVerifier { public async verifyHash(filePath: string, platformString: string, expectedDigest: string): Promise { diff --git a/src/client/activation/interpreterDataService.ts b/src/client/activation/interpreterDataService.ts index 5f524013b88c..897863053369 100644 --- a/src/client/activation/interpreterDataService.ts +++ b/src/client/activation/interpreterDataService.ts @@ -5,11 +5,11 @@ import { createHash } from 'crypto'; import * as fs from 'fs'; import * as path from 'path'; import { ExtensionContext, Uri } from 'vscode'; -import { createDeferred } from '../../utils/async'; import { IApplicationShell } from '../common/application/types'; import '../common/extensions'; import { IPlatformService } from '../common/platform/types'; import { IPythonExecutionFactory, IPythonExecutionService } from '../common/process/types'; +import { createDeferred } from '../common/utils/async'; import { IServiceContainer } from '../ioc/types'; const DataVersion = 1; diff --git a/src/client/activation/languageServer/languageServer.ts b/src/client/activation/languageServer/languageServer.ts index 9e003eff25ad..1c04c177fec2 100644 --- a/src/client/activation/languageServer/languageServer.ts +++ b/src/client/activation/languageServer/languageServer.ts @@ -13,8 +13,6 @@ import { Disposable, LanguageClient, LanguageClientOptions, ProvideCompletionItemsSignature, ServerOptions } from 'vscode-languageclient'; -import { createDeferred, Deferred } from '../../../utils/async'; -import { StopWatch } from '../../../utils/stopWatch'; import { IApplicationShell, ICommandManager, IWorkspaceService } from '../../common/application/types'; @@ -27,6 +25,8 @@ import { IDisposableRegistry, IExtensionContext, IFeatureDeprecationManager, ILogger, IOutputChannel, IPathUtils, IPythonExtensionBanner, IPythonSettings } from '../../common/types'; +import { createDeferred, Deferred } from '../../common/utils/async'; +import { StopWatch } from '../../common/utils/stopWatch'; import { IEnvironmentVariablesProvider } from '../../common/variables/types'; import { IServiceContainer } from '../../ioc/types'; import { LanguageServerSymbolProvider } from '../../providers/symbolProvider'; diff --git a/src/client/activation/languageServer/languageServerPackageService.ts b/src/client/activation/languageServer/languageServerPackageService.ts index d883483e361e..a8589f96f723 100644 --- a/src/client/activation/languageServer/languageServerPackageService.ts +++ b/src/client/activation/languageServer/languageServerPackageService.ts @@ -5,12 +5,12 @@ import { inject, injectable } from 'inversify'; import { parse } from 'semver'; -import { Architecture, OSType } from '../../../utils/platform'; import { PVSC_EXTENSION_ID } from '../../common/constants'; import { log } from '../../common/logger'; import { INugetRepository, INugetService, NugetPackage } from '../../common/nuget/types'; import { IPlatformService } from '../../common/platform/types'; import { IConfigurationService, IExtensions, LanguageServerDownloadChannels } from '../../common/types'; +import { Architecture, OSType } from '../../common/utils/platform'; import { IServiceContainer } from '../../ioc/types'; import { PlatformName } from '../platformData'; import { ILanguageServerPackageService } from '../types'; diff --git a/src/client/activation/progress.ts b/src/client/activation/progress.ts index d9c6e8df78b6..e182d3be6404 100644 --- a/src/client/activation/progress.ts +++ b/src/client/activation/progress.ts @@ -3,8 +3,8 @@ import { Progress, ProgressLocation, window } from 'vscode'; import { Disposable, LanguageClient } from 'vscode-languageclient'; -import { createDeferred, Deferred } from '../../utils/async'; -import { StopWatch } from '../../utils/stopWatch'; +import { createDeferred, Deferred } from '../common/utils/async'; +import { StopWatch } from '../common/utils/stopWatch'; import { sendTelemetryEvent } from '../telemetry'; import { PYTHON_LANGUAGE_SERVER_ANALYSISTIME } from '../telemetry/constants'; diff --git a/src/client/common/installer/moduleInstaller.ts b/src/client/common/installer/moduleInstaller.ts index c15204a51cf0..c15a352e858e 100644 --- a/src/client/common/installer/moduleInstaller.ts +++ b/src/client/common/installer/moduleInstaller.ts @@ -8,12 +8,12 @@ import * as fs from 'fs'; import { injectable } from 'inversify'; import * as path from 'path'; import * as vscode from 'vscode'; -import { noop } from '../../../utils/misc'; import { IInterpreterService, InterpreterType } from '../../interpreter/contracts'; import { IServiceContainer } from '../../ioc/types'; import { STANDARD_OUTPUT_CHANNEL } from '../constants'; import { ITerminalServiceFactory } from '../terminal/types'; import { ExecutionInfo, IConfigurationService, IOutputChannel } from '../types'; +import { noop } from '../utils/misc'; @injectable() export abstract class ModuleInstaller { diff --git a/src/client/common/net/socket/socketServer.ts b/src/client/common/net/socket/socketServer.ts index 4e96a3e9c681..379fd9918538 100644 --- a/src/client/common/net/socket/socketServer.ts +++ b/src/client/common/net/socket/socketServer.ts @@ -1,9 +1,9 @@ import { EventEmitter } from 'events'; import { injectable } from 'inversify'; import * as net from 'net'; -import { createDeferred, Deferred } from '../../../../utils/async'; -import { noop } from '../../../../utils/misc'; import { ISocketServer } from '../../types'; +import { createDeferred, Deferred } from '../../utils/async'; +import { noop } from '../../utils/misc'; @injectable() export class SocketServer extends EventEmitter implements ISocketServer { diff --git a/src/client/common/platform/fileSystem.ts b/src/client/common/platform/fileSystem.ts index d86324253c3e..3a4da965acce 100644 --- a/src/client/common/platform/fileSystem.ts +++ b/src/client/common/platform/fileSystem.ts @@ -9,7 +9,7 @@ import * as glob from 'glob'; import { inject, injectable } from 'inversify'; import * as path from 'path'; import * as tmp from 'tmp'; -import { createDeferred } from '../../../utils/async'; +import { createDeferred } from '../utils/async'; import { IFileSystem, IPlatformService, TemporaryFile } from './types'; @injectable() diff --git a/src/client/common/platform/osinfo.ts b/src/client/common/platform/osinfo.ts index 301fc679aa30..34ef0b225a41 100644 --- a/src/client/common/platform/osinfo.ts +++ b/src/client/common/platform/osinfo.ts @@ -3,7 +3,7 @@ 'use strict'; -import { Info as PlatformInfo, isWindows } from '../../../utils/platform'; +import { Info as PlatformInfo, isWindows } from '../utils/platform'; import { NON_WINDOWS_PATH_VARIABLE_NAME, WINDOWS_PATH_VARIABLE_NAME diff --git a/src/client/common/platform/platformService.ts b/src/client/common/platform/platformService.ts index 3381561a5c9c..5199935c3bd4 100644 --- a/src/client/common/platform/platformService.ts +++ b/src/client/common/platform/platformService.ts @@ -3,7 +3,7 @@ 'use strict'; import { injectable } from 'inversify'; -import * as platform from '../../../utils/platform'; +import * as platform from '../utils/platform'; import * as osinfo from './osinfo'; import { IPlatformService } from './types'; diff --git a/src/client/common/platform/registry.ts b/src/client/common/platform/registry.ts index 9032f1d42a1c..797b64a16ffc 100644 --- a/src/client/common/platform/registry.ts +++ b/src/client/common/platform/registry.ts @@ -1,6 +1,6 @@ import { injectable } from 'inversify'; import * as Registry from 'winreg'; -import { Architecture } from '../../../utils/platform'; +import { Architecture } from '../utils/platform'; import { IRegistry, RegistryHive } from './types'; enum RegistryArchitectures { diff --git a/src/client/common/platform/types.ts b/src/client/common/platform/types.ts index 0d46f6b4950d..013373b1ee78 100644 --- a/src/client/common/platform/types.ts +++ b/src/client/common/platform/types.ts @@ -4,7 +4,7 @@ import * as fs from 'fs'; import * as semver from 'semver'; import { Disposable } from 'vscode'; -import { Architecture, OSDistro, OSType } from '../../../utils/platform'; +import { Architecture, OSDistro, OSType } from '../utils/platform'; export const IPlatformInfo = Symbol('IPlatformInfo'); export interface IPlatformInfo { diff --git a/src/client/common/process/proc.ts b/src/client/common/process/proc.ts index 432ff724eaf0..6933394c7a6b 100644 --- a/src/client/common/process/proc.ts +++ b/src/client/common/process/proc.ts @@ -6,7 +6,7 @@ import { spawn } from 'child_process'; import { Observable } from 'rxjs/Observable'; import { Disposable } from 'vscode'; -import { createDeferred } from '../../../utils/async'; +import { createDeferred } from '../utils/async'; import { EnvironmentVariables } from '../variables/types'; import { DEFAULT_ENCODING } from './constants'; import { ExecutionResult, IBufferDecoder, IProcessService, ObservableExecutionResult, Output, SpawnOptions, StdErrError } from './types'; diff --git a/src/client/common/process/pythonProcess.ts b/src/client/common/process/pythonProcess.ts index 538eda3f5c1f..9b9aa10d117a 100644 --- a/src/client/common/process/pythonProcess.ts +++ b/src/client/common/process/pythonProcess.ts @@ -3,12 +3,12 @@ import { injectable } from 'inversify'; import * as path from 'path'; -import { Architecture } from '../../../utils/platform'; import { IServiceContainer } from '../../ioc/types'; import { EXTENSION_ROOT_DIR } from '../constants'; import { ErrorUtils } from '../errors/errorUtils'; import { ModuleNotInstalledError } from '../errors/moduleNotInstalledError'; import { IFileSystem } from '../platform/types'; +import { Architecture } from '../utils/platform'; import { ExecutionResult, InterpreterInfomation, IProcessService, IPythonExecutionService, ObservableExecutionResult, PythonVersionInfo, SpawnOptions } from './types'; @injectable() diff --git a/src/client/common/process/types.ts b/src/client/common/process/types.ts index 4600ff82dc88..548398dc7701 100644 --- a/src/client/common/process/types.ts +++ b/src/client/common/process/types.ts @@ -4,8 +4,8 @@ import { ChildProcess, SpawnOptions as ChildProcessSpawnOptions } from 'child_process'; import { Observable } from 'rxjs/Observable'; import { CancellationToken, Uri } from 'vscode'; -import { Architecture } from '../../../utils/platform'; import { ExecutionInfo } from '../types'; +import { Architecture } from '../utils/platform'; import { EnvironmentVariables } from '../variables/types'; export const IBufferDecoder = Symbol('IBufferDecoder'); diff --git a/src/client/common/serviceRegistry.ts b/src/client/common/serviceRegistry.ts index a424c0557196..14655499e958 100644 --- a/src/client/common/serviceRegistry.ts +++ b/src/client/common/serviceRegistry.ts @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -import { Random } from '../../utils/random'; import { IHttpClient } from '../activation/types'; import { IServiceManager } from '../ioc/types'; import { ApplicationEnvironment } from './application/applicationEnvironment'; @@ -46,6 +45,7 @@ import { IFeatureDeprecationManager, IInstaller, ILogger, IPathUtils, IPersistentStateFactory, IRandom, Is64Bit, IsWindows } from './types'; +import { Random } from './utils/random'; export function registerTypes(serviceManager: IServiceManager) { serviceManager.addSingletonInstance(IsWindows, IS_WINDOWS); diff --git a/src/client/common/terminal/helper.ts b/src/client/common/terminal/helper.ts index 3ce81eee2de0..240b418cac7d 100644 --- a/src/client/common/terminal/helper.ts +++ b/src/client/common/terminal/helper.ts @@ -3,13 +3,13 @@ import { inject, injectable } from 'inversify'; import { Terminal, Uri } from 'vscode'; -import { sleep } from '../../../utils/async'; import { ICondaService } from '../../interpreter/contracts'; import { IServiceContainer } from '../../ioc/types'; import { ITerminalManager, IWorkspaceService } from '../application/types'; import '../extensions'; import { IPlatformService } from '../platform/types'; import { IConfigurationService } from '../types'; +import { sleep } from '../utils/async'; import { CondaActivationCommandProvider } from './environmentActivationProviders/condaActivationProvider'; import { ITerminalActivationCommandProvider, ITerminalHelper, TerminalShellType } from './types'; diff --git a/src/utils/async.ts b/src/client/common/utils/async.ts similarity index 100% rename from src/utils/async.ts rename to src/client/common/utils/async.ts diff --git a/src/utils/decorators.ts b/src/client/common/utils/decorators.ts similarity index 100% rename from src/utils/decorators.ts rename to src/client/common/utils/decorators.ts diff --git a/src/utils/enum.ts b/src/client/common/utils/enum.ts similarity index 100% rename from src/utils/enum.ts rename to src/client/common/utils/enum.ts diff --git a/src/utils/fs.ts b/src/client/common/utils/fs.ts similarity index 100% rename from src/utils/fs.ts rename to src/client/common/utils/fs.ts diff --git a/src/utils/logging.ts b/src/client/common/utils/logging.ts similarity index 100% rename from src/utils/logging.ts rename to src/client/common/utils/logging.ts diff --git a/src/utils/misc.ts b/src/client/common/utils/misc.ts similarity index 100% rename from src/utils/misc.ts rename to src/client/common/utils/misc.ts diff --git a/src/utils/platform.ts b/src/client/common/utils/platform.ts similarity index 98% rename from src/utils/platform.ts rename to src/client/common/utils/platform.ts index 2fd25248da53..10a70102d9d3 100644 --- a/src/utils/platform.ts +++ b/src/client/common/utils/platform.ts @@ -6,7 +6,7 @@ import * as getos from 'getos'; import * as os from 'os'; import * as semver from 'semver'; -import { IPlatformInfo } from '../client/common/platform/types'; +import { IPlatformInfo } from '../platform/types'; import { parseVersion } from './version'; export enum Architecture { diff --git a/src/utils/random.ts b/src/client/common/utils/random.ts similarity index 93% rename from src/utils/random.ts rename to src/client/common/utils/random.ts index 89beead6e73f..024e380b426d 100644 --- a/src/utils/random.ts +++ b/src/client/common/utils/random.ts @@ -5,7 +5,7 @@ import * as crypto from 'crypto'; import { injectable } from 'inversify'; -import { IRandom } from '../client/common/types'; +import { IRandom } from '../types'; function getRandom(): number { let num: number = 0; diff --git a/src/utils/stopWatch.ts b/src/client/common/utils/stopWatch.ts similarity index 100% rename from src/utils/stopWatch.ts rename to src/client/common/utils/stopWatch.ts diff --git a/src/utils/string.ts b/src/client/common/utils/string.ts similarity index 100% rename from src/utils/string.ts rename to src/client/common/utils/string.ts diff --git a/src/utils/sysTypes.ts b/src/client/common/utils/sysTypes.ts similarity index 100% rename from src/utils/sysTypes.ts rename to src/client/common/utils/sysTypes.ts diff --git a/src/client/common/utils/text.ts b/src/client/common/utils/text.ts new file mode 100644 index 000000000000..59359966db47 --- /dev/null +++ b/src/client/common/utils/text.ts @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +'use strict'; + +import { Position, Range, TextDocument } from 'vscode'; +import { isNumber } from './sysTypes'; + +export function getWindowsLineEndingCount(document: TextDocument, offset: Number) { + //const eolPattern = new RegExp('\r\n', 'g'); + const eolPattern = /\r\n/g; + const readBlock = 1024; + let count = 0; + let offsetDiff = offset.valueOf(); + + // In order to prevent the one-time loading of large files from taking up too much memory + for (let pos = 0; pos < offset; pos += readBlock) { + const startAt = document.positionAt(pos); + + let endAt: Position; + if (offsetDiff >= readBlock) { + endAt = document.positionAt(pos + readBlock); + offsetDiff = offsetDiff - readBlock; + } else { + endAt = document.positionAt(pos + offsetDiff); + } + + const text = document.getText(new Range(startAt, endAt!)); + const cr = text.match(eolPattern); + + count += cr ? cr.length : 0; + } + return count; +} + +/** + * Return the range represented by the given string. + * + * If a number is provided then it is used as both lines and the + * character are set to 0. + * + * Examples: + * '1:5-3:5' -> Range(1, 5, 3, 5) + * '1-3' -> Range(1, 0, 3, 0) + * '1:3-1:5' -> Range(1, 3, 1, 5) + * '1-1' -> Range(1, 0, 1, 0) + * '1' -> Range(1, 0, 1, 0) + * '1:3-' -> Range(1, 3, 1, 0) + * '1:3' -> Range(1, 3, 1, 0) + * '' -> Range(0, 0, 0, 0) + * '3-1' -> Range(1, 0, 3, 0) + */ +export function parseRange(raw: string | number): Range { + if (isNumber(raw)) { + return new Range(raw, 0, raw, 0); + } + if (raw === '') { + return new Range(0, 0, 0, 0); + } + + const parts = raw.split('-'); + if (parts.length > 2) { + throw new Error(`invalid range ${raw}`); + } + + const start = parsePosition(parts[0]); + let end = start; + if (parts.length === 2) { + end = parsePosition(parts[1]); + } + return new Range(start, end); +} + +/** + * Return the line/column represented by the given string. + * + * If a number is provided then it is used as the line and the character + * is set to 0. + * + * Examples: + * '1:5' -> Position(1, 5) + * '1' -> Position(1, 0) + * '' -> Position(0, 0) + */ +export function parsePosition(raw: string | number): Position { + if (isNumber(raw)) { + return new Position(raw, 0); + } + if (raw === '') { + return new Position(0, 0); + } + + const parts = raw.split(':'); + if (parts.length > 2) { + throw new Error(`invalid position ${raw}`); + } + + let line = 0; + if (parts[0] !== '') { + if (!/^\d+$/.test(parts[0])) { + throw new Error(`invalid position ${raw}`); + } + line = +parts[0]; + } + let col = 0; + if (parts.length === 2 && parts[1] !== '') { + if (!/^\d+$/.test(parts[1])) { + throw new Error(`invalid position ${raw}`); + } + col = +parts[1]; + } + return new Position(line, col); +} diff --git a/src/utils/version.ts b/src/client/common/utils/version.ts similarity index 100% rename from src/utils/version.ts rename to src/client/common/utils/version.ts diff --git a/src/client/common/variables/sysTypes.ts b/src/client/common/variables/sysTypes.ts index 73780591e248..108862392e04 100644 --- a/src/client/common/variables/sysTypes.ts +++ b/src/client/common/variables/sysTypes.ts @@ -6,7 +6,7 @@ // tslint:disable:no-any no-increment-decrement -import { isFunction, isString } from '../../../utils/sysTypes'; +import { isFunction, isString } from '../utils/sysTypes'; export type TypeConstraint = string | Function; diff --git a/src/client/common/variables/systemVariables.ts b/src/client/common/variables/systemVariables.ts index 9ab877d7be8f..6f7ab78e37b5 100644 --- a/src/client/common/variables/systemVariables.ts +++ b/src/client/common/variables/systemVariables.ts @@ -6,7 +6,7 @@ 'use strict'; import * as Path from 'path'; -import * as Types from '../../../utils/sysTypes'; +import * as Types from '../utils/sysTypes'; import { IStringDictionary, ISystemVariables } from './types'; /* tslint:disable:rule1 no-any no-unnecessary-callback-wrapper jsdoc-format no-for-in prefer-const no-increment-decrement */ diff --git a/src/client/debugger/Common/telemetry.ts b/src/client/debugger/Common/telemetry.ts index 325c447f5f30..10357994d83a 100644 --- a/src/client/debugger/Common/telemetry.ts +++ b/src/client/debugger/Common/telemetry.ts @@ -4,7 +4,7 @@ // tslint:disable:no-function-expression no-any no-invalid-this no-use-before-declare import { DebugSession, StoppedEvent } from 'vscode-debugadapter'; -import { StopWatch } from '../../../utils/stopWatch'; +import { StopWatch } from '../../common/utils/stopWatch'; import { DEBUGGER_PERFORMANCE } from '../../telemetry/constants'; import { DebuggerPerformanceTelemetry } from '../../telemetry/types'; import { TelemetryEvent } from './Contracts'; diff --git a/src/client/debugger/DebugClients/LocalDebugClient.ts b/src/client/debugger/DebugClients/LocalDebugClient.ts index d18aa139b38d..1fb657978362 100644 --- a/src/client/debugger/DebugClients/LocalDebugClient.ts +++ b/src/client/debugger/DebugClients/LocalDebugClient.ts @@ -2,10 +2,10 @@ import { ChildProcess, spawn } from 'child_process'; import * as path from 'path'; import { DebugSession, OutputEvent } from 'vscode-debugadapter'; import { DebugProtocol } from 'vscode-debugprotocol'; -import { noop } from '../../../utils/misc'; import { open } from '../../common/open'; import { PathUtils } from '../../common/platform/pathUtils'; import { CurrentProcess } from '../../common/process/currentProcess'; +import { noop } from '../../common/utils/misc'; import { EnvironmentVariablesService } from '../../common/variables/environment'; import { IServiceContainer } from '../../ioc/types'; import { DebugOptions, IDebugServer, IPythonProcess, LaunchRequestArguments } from '../Common/Contracts'; diff --git a/src/client/debugger/DebugServers/BaseDebugServer.ts b/src/client/debugger/DebugServers/BaseDebugServer.ts index 9ae1a7d58b4d..18bd43d34b79 100644 --- a/src/client/debugger/DebugServers/BaseDebugServer.ts +++ b/src/client/debugger/DebugServers/BaseDebugServer.ts @@ -5,7 +5,7 @@ import { DebugSession } from 'vscode-debugadapter'; import { IPythonProcess, IDebugServer } from '../Common/Contracts'; import { EventEmitter } from 'events'; import { Socket } from 'net'; -import { Deferred, createDeferred } from '../../../utils/async'; +import { Deferred, createDeferred } from '../../common/utils/async'; export abstract class BaseDebugServer extends EventEmitter { protected clientSocket: Deferred; diff --git a/src/client/debugger/DebugServers/LocalDebugServerV2.ts b/src/client/debugger/DebugServers/LocalDebugServerV2.ts index 5f12b5551b86..a669d2052db5 100644 --- a/src/client/debugger/DebugServers/LocalDebugServerV2.ts +++ b/src/client/debugger/DebugServers/LocalDebugServerV2.ts @@ -6,8 +6,8 @@ import * as net from 'net'; import { DebugSession } from 'vscode-debugadapter'; -import { createDeferred } from '../../../utils/async'; import { ISocketServer } from '../../common/types'; +import { createDeferred } from '../../common/utils/async'; import { IServiceContainer } from '../../ioc/types'; import { IDebugServer, LaunchRequestArguments } from '../Common/Contracts'; import { BaseDebugServer } from './BaseDebugServer'; diff --git a/src/client/debugger/mainV2.ts b/src/client/debugger/mainV2.ts index 5903998eafe0..413b045890d7 100644 --- a/src/client/debugger/mainV2.ts +++ b/src/client/debugger/mainV2.ts @@ -18,11 +18,11 @@ import { DebugSession, ErrorDestination, Event, logger, OutputEvent, Response, T import { LogLevel } from 'vscode-debugadapter/lib/logger'; import { DebugProtocol } from 'vscode-debugprotocol'; import '../../client/common/extensions'; -import { createDeferred, Deferred, sleep } from '../../utils/async'; -import { noop } from '../../utils/misc'; import { isNotInstalledError } from '../common/helpers'; import { IFileSystem } from '../common/platform/types'; import { ICurrentProcess } from '../common/types'; +import { createDeferred, Deferred, sleep } from '../common/utils/async'; +import { noop } from '../common/utils/misc'; import { IServiceContainer } from '../ioc/types'; import { AttachRequestArguments, LaunchRequestArguments } from './Common/Contracts'; import { CreateAttachDebugClient, CreateLaunchDebugClient } from './DebugClients/DebugFactory'; diff --git a/src/client/extension.ts b/src/client/extension.ts index a7db41a5d7b4..9485d3b79f19 100644 --- a/src/client/extension.ts +++ b/src/client/extension.ts @@ -5,13 +5,12 @@ if ((Reflect as any).metadata === undefined) { // tslint:disable-next-line:no-require-imports no-var-requires require('reflect-metadata'); } -import { StopWatch } from '../utils/stopWatch'; +import { StopWatch } from './common/utils/stopWatch'; // Do not move this linne of code (used to measure extension load times). const stopWatch = new StopWatch(); import { Container } from 'inversify'; import { CodeActionKind, debug, Disposable, ExtensionContext, extensions, IndentAction, languages, Memento, OutputChannel, window } from 'vscode'; -import { createDeferred } from '../utils/async'; import { registerTypes as activationRegisterTypes } from './activation/serviceRegistry'; import { IExtensionActivationService } from './activation/types'; import { IExtensionApi } from './api'; @@ -29,6 +28,7 @@ import { IExtensionContext, IFeatureDeprecationManager, ILogger, IMemento, IOutputChannel, WORKSPACE_MEMENTO } from './common/types'; +import { createDeferred } from './common/utils/async'; import { registerTypes as variableRegisterTypes } from './common/variables/serviceRegistry'; import { AttachRequestArguments, LaunchRequestArguments } from './debugger/Common/Contracts'; import { BaseConfigurationProvider } from './debugger/configProviders/baseProvider'; diff --git a/src/client/formatters/autoPep8Formatter.ts b/src/client/formatters/autoPep8Formatter.ts index 549918de108d..15ef14a17859 100644 --- a/src/client/formatters/autoPep8Formatter.ts +++ b/src/client/formatters/autoPep8Formatter.ts @@ -1,7 +1,7 @@ import * as vscode from 'vscode'; -import { StopWatch } from '../../utils/stopWatch'; import { Product } from '../common/installer/productInstaller'; import { IConfigurationService } from '../common/types'; +import { StopWatch } from '../common/utils/stopWatch'; import { IServiceContainer } from '../ioc/types'; import { sendTelemetryWhenDone } from '../telemetry'; import { FORMAT } from '../telemetry/constants'; diff --git a/src/client/formatters/blackFormatter.ts b/src/client/formatters/blackFormatter.ts index d7b77ccca868..e33a00a35e20 100644 --- a/src/client/formatters/blackFormatter.ts +++ b/src/client/formatters/blackFormatter.ts @@ -4,9 +4,9 @@ 'use strict'; import * as vscode from 'vscode'; -import { StopWatch } from '../../utils/stopWatch'; import { Product } from '../common/installer/productInstaller'; import { IConfigurationService } from '../common/types'; +import { StopWatch } from '../common/utils/stopWatch'; import { IServiceContainer } from '../ioc/types'; import { sendTelemetryWhenDone } from '../telemetry'; import { FORMAT } from '../telemetry/constants'; diff --git a/src/client/formatters/yapfFormatter.ts b/src/client/formatters/yapfFormatter.ts index 0352cbc99c11..301bf4a9da87 100644 --- a/src/client/formatters/yapfFormatter.ts +++ b/src/client/formatters/yapfFormatter.ts @@ -1,6 +1,6 @@ import * as vscode from 'vscode'; -import { StopWatch } from '../../utils/stopWatch'; import { IConfigurationService, Product } from '../common/types'; +import { StopWatch } from '../common/utils/stopWatch'; import { IServiceContainer } from '../ioc/types'; import { sendTelemetryWhenDone } from '../telemetry'; import { FORMAT } from '../telemetry/constants'; diff --git a/src/client/interpreter/configuration/pythonPathUpdaterService.ts b/src/client/interpreter/configuration/pythonPathUpdaterService.ts index 94ce9e425185..bc8e6d78f6e4 100644 --- a/src/client/interpreter/configuration/pythonPathUpdaterService.ts +++ b/src/client/interpreter/configuration/pythonPathUpdaterService.ts @@ -1,8 +1,8 @@ import { inject, injectable } from 'inversify'; import * as path from 'path'; import { ConfigurationTarget, Uri, window } from 'vscode'; -import { StopWatch } from '../../../utils/stopWatch'; import { InterpreterInfomation, IPythonExecutionFactory } from '../../common/process/types'; +import { StopWatch } from '../../common/utils/stopWatch'; import { IServiceContainer } from '../../ioc/types'; import { sendTelemetryEvent } from '../../telemetry'; import { PYTHON_INTERPRETER } from '../../telemetry/constants'; diff --git a/src/client/interpreter/locators/helpers.ts b/src/client/interpreter/locators/helpers.ts index fccfb4915604..e43d20c5f040 100644 --- a/src/client/interpreter/locators/helpers.ts +++ b/src/client/interpreter/locators/helpers.ts @@ -1,8 +1,8 @@ import { inject, injectable } from 'inversify'; import * as path from 'path'; -import { fsReaddirAsync } from '../../../utils/fs'; import { IFileSystem } from '../../common/platform/types'; import { IS_WINDOWS } from '../../common/util'; +import { fsReaddirAsync } from '../../common/utils/fs'; import { IServiceContainer } from '../../ioc/types'; import { IInterpreterLocatorHelper, InterpreterType, PythonInterpreter } from '../contracts'; diff --git a/src/client/interpreter/locators/services/KnownPathsService.ts b/src/client/interpreter/locators/services/KnownPathsService.ts index 371a44bdcb7b..46a16557ca8b 100644 --- a/src/client/interpreter/locators/services/KnownPathsService.ts +++ b/src/client/interpreter/locators/services/KnownPathsService.ts @@ -2,9 +2,9 @@ import { inject, injectable } from 'inversify'; import * as _ from 'lodash'; import * as path from 'path'; import { Uri } from 'vscode'; -import { fsExistsAsync } from '../../../../utils/fs'; import { IPlatformService } from '../../../common/platform/types'; import { ICurrentProcess, IPathUtils } from '../../../common/types'; +import { fsExistsAsync } from '../../../common/utils/fs'; import { IServiceContainer } from '../../../ioc/types'; import { IInterpreterHelper, IKnownSearchPathsForInterpreters, InterpreterType, PythonInterpreter } from '../../contracts'; import { lookForInterpretersInDirectory } from '../helpers'; diff --git a/src/client/interpreter/locators/services/cacheableLocatorService.ts b/src/client/interpreter/locators/services/cacheableLocatorService.ts index d74515aaa9ed..6ba079435520 100644 --- a/src/client/interpreter/locators/services/cacheableLocatorService.ts +++ b/src/client/interpreter/locators/services/cacheableLocatorService.ts @@ -6,9 +6,9 @@ import { injectable, unmanaged } from 'inversify'; import * as md5 from 'md5'; import { Uri } from 'vscode'; -import { createDeferred, Deferred } from '../../../../utils/async'; import { IWorkspaceService } from '../../../common/application/types'; import { IPersistentStateFactory } from '../../../common/types'; +import { createDeferred, Deferred } from '../../../common/utils/async'; import { IServiceContainer } from '../../../ioc/types'; import { IInterpreterLocatorService, PythonInterpreter } from '../../contracts'; diff --git a/src/client/interpreter/locators/services/condaService.ts b/src/client/interpreter/locators/services/condaService.ts index 51ab5b11d74b..7a5457656215 100644 --- a/src/client/interpreter/locators/services/condaService.ts +++ b/src/client/interpreter/locators/services/condaService.ts @@ -4,7 +4,6 @@ import { } from 'inversify'; import * as path from 'path'; import { parse, SemVer } from 'semver'; -import { compareVersion } from '../../../../utils/version'; import { warn } from '../../../common/logger'; import { IFileSystem, IPlatformService @@ -14,6 +13,7 @@ import { IConfigurationService, ILogger, IPersistentStateFactory } from '../../../common/types'; +import { compareVersion } from '../../../common/utils/version'; import { IServiceContainer } from '../../../ioc/types'; import { CondaInfo, ICondaService, IInterpreterLocatorService, diff --git a/src/client/interpreter/locators/services/windowsRegistryService.ts b/src/client/interpreter/locators/services/windowsRegistryService.ts index 2c539436a05c..a924822a74bb 100644 --- a/src/client/interpreter/locators/services/windowsRegistryService.ts +++ b/src/client/interpreter/locators/services/windowsRegistryService.ts @@ -3,9 +3,9 @@ import { inject, injectable } from 'inversify'; import * as _ from 'lodash'; import * as path from 'path'; import { Uri } from 'vscode'; -import { Architecture } from '../../../../utils/platform'; import { IRegistry, RegistryHive } from '../../../common/platform/types'; import { IPathUtils, Is64Bit } from '../../../common/types'; +import { Architecture } from '../../../common/utils/platform'; import { IServiceContainer } from '../../../ioc/types'; import { IInterpreterHelper, InterpreterType, PythonInterpreter } from '../../contracts'; import { CacheableLocatorService } from './cacheableLocatorService'; diff --git a/src/client/interpreter/virtualEnvs/index.ts b/src/client/interpreter/virtualEnvs/index.ts index dbd224d1d159..2c9224aeaeac 100644 --- a/src/client/interpreter/virtualEnvs/index.ts +++ b/src/client/interpreter/virtualEnvs/index.ts @@ -4,13 +4,13 @@ import { inject, injectable } from 'inversify'; import * as path from 'path'; import { Uri } from 'vscode'; -import { getNamesAndValues } from '../../../utils/enum'; -import { noop } from '../../../utils/misc'; import { IWorkspaceService } from '../../common/application/types'; import { IFileSystem, IPlatformService } from '../../common/platform/types'; import { IProcessServiceFactory } from '../../common/process/types'; import { ITerminalActivationCommandProvider, TerminalShellType } from '../../common/terminal/types'; import { ICurrentProcess, IPathUtils } from '../../common/types'; +import { getNamesAndValues } from '../../common/utils/enum'; +import { noop } from '../../common/utils/misc'; import { IServiceContainer } from '../../ioc/types'; import { InterpreterType, IPipEnvService } from '../contracts'; import { IVirtualEnvironmentManager } from './types'; diff --git a/src/client/languageServices/languageServerSurveyBanner.ts b/src/client/languageServices/languageServerSurveyBanner.ts index 944c86ab1fe8..9ae188cc7b83 100644 --- a/src/client/languageServices/languageServerSurveyBanner.ts +++ b/src/client/languageServices/languageServerSurveyBanner.ts @@ -5,7 +5,6 @@ import { inject, injectable } from 'inversify'; import * as localize from '../../utils/localize'; -import { getRandomBetween } from '../../utils/random'; import { FolderVersionPair, ILanguageServerFolderService } from '../activation/types'; import { IApplicationShell } from '../common/application/types'; import '../common/extensions'; @@ -13,6 +12,7 @@ import { IBrowserService, IPersistentStateFactory, IPythonExtensionBanner } from '../common/types'; +import { getRandomBetween } from '../common/utils/random'; // persistent state names, exported to make use of in testing export enum LSSurveyStateKeys { diff --git a/src/client/languageServices/proposeLanguageServerBanner.ts b/src/client/languageServices/proposeLanguageServerBanner.ts index 9302d8405a80..54bb1afce597 100644 --- a/src/client/languageServices/proposeLanguageServerBanner.ts +++ b/src/client/languageServices/proposeLanguageServerBanner.ts @@ -5,11 +5,11 @@ import { inject, injectable } from 'inversify'; import { ConfigurationTarget } from 'vscode'; -import { getRandomBetween } from '../../utils/random'; import { IApplicationShell } from '../common/application/types'; import '../common/extensions'; import { IConfigurationService, IPersistentStateFactory, IPythonExtensionBanner } from '../common/types'; +import { getRandomBetween } from '../common/utils/random'; // persistent state names, exported to make use of in testing export enum ProposeLSStateKeys { diff --git a/src/client/linters/lintingEngine.ts b/src/client/linters/lintingEngine.ts index 778e715e654a..b7e60a6d83f6 100644 --- a/src/client/linters/lintingEngine.ts +++ b/src/client/linters/lintingEngine.ts @@ -5,11 +5,11 @@ import { inject, injectable } from 'inversify'; import { Minimatch } from 'minimatch'; import * as path from 'path'; import * as vscode from 'vscode'; -import { StopWatch } from '../../utils/stopWatch'; import { IDocumentManager, IWorkspaceService } from '../common/application/types'; import { LinterErrors, STANDARD_OUTPUT_CHANNEL } from '../common/constants'; import { IFileSystem } from '../common/platform/types'; import { IConfigurationService, IOutputChannel } from '../common/types'; +import { StopWatch } from '../common/utils/stopWatch'; import { IServiceContainer } from '../ioc/types'; import { JupyterProvider } from '../jupyter/provider'; import { sendTelemetryWhenDone } from '../telemetry'; diff --git a/src/client/providers/importSortProvider.ts b/src/client/providers/importSortProvider.ts index ac8c2b2d97d6..394ec631f853 100644 --- a/src/client/providers/importSortProvider.ts +++ b/src/client/providers/importSortProvider.ts @@ -2,12 +2,12 @@ import { inject, injectable } from 'inversify'; import { EOL } from 'os'; import * as path from 'path'; import { CancellationToken, Uri, WorkspaceEdit } from 'vscode'; -import { noop } from '../../utils/misc'; import { IApplicationShell, ICommandManager, IDocumentManager } from '../common/application/types'; import { Commands, EXTENSION_ROOT_DIR, PYTHON_LANGUAGE, STANDARD_OUTPUT_CHANNEL } from '../common/constants'; import { IFileSystem } from '../common/platform/types'; import { IProcessServiceFactory, IPythonExecutionFactory } from '../common/process/types'; import { IConfigurationService, IDisposableRegistry, IEditorUtils, ILogger, IOutputChannel } from '../common/types'; +import { noop } from '../common/utils/misc'; import { IServiceContainer } from '../ioc/types'; import { captureTelemetry } from '../telemetry'; import { FORMAT_SORT_IMPORTS } from '../telemetry/constants'; diff --git a/src/client/providers/jediProxy.ts b/src/client/providers/jediProxy.ts index 411c46db50f9..d98e89cdb7d6 100644 --- a/src/client/providers/jediProxy.ts +++ b/src/client/providers/jediProxy.ts @@ -8,14 +8,14 @@ import * as path from 'path'; import * as pidusage from 'pidusage'; import { CancellationToken, CancellationTokenSource, CompletionItemKind, Disposable, SymbolKind, Uri } from 'vscode'; -import { createDeferred, Deferred } from '../../utils/async'; -import { debounce, swallowExceptions } from '../../utils/decorators'; -import { StopWatch } from '../../utils/stopWatch'; import { PythonSettings } from '../common/configSettings'; import { isTestExecution } from '../common/constants'; import '../common/extensions'; import { IPythonExecutionFactory } from '../common/process/types'; import { BANNER_NAME_PROPOSE_LS, ILogger, IPythonExtensionBanner } from '../common/types'; +import { createDeferred, Deferred } from '../common/utils/async'; +import { debounce, swallowExceptions } from '../common/utils/decorators'; +import { StopWatch } from '../common/utils/stopWatch'; import { IEnvironmentVariablesProvider } from '../common/variables/types'; import { IServiceContainer } from '../ioc/types'; import * as logger from './../common/logger'; diff --git a/src/client/providers/simpleRefactorProvider.ts b/src/client/providers/simpleRefactorProvider.ts index 5d3e6c112efe..3c77a08b756f 100644 --- a/src/client/providers/simpleRefactorProvider.ts +++ b/src/client/providers/simpleRefactorProvider.ts @@ -1,8 +1,8 @@ import * as vscode from 'vscode'; -import { StopWatch } from '../../utils/stopWatch'; import { PythonSettings } from '../common/configSettings'; import { getTextEditsFromPatch } from '../common/editor'; import { IInstaller, Product } from '../common/types'; +import { StopWatch } from '../common/utils/stopWatch'; import { IServiceContainer } from '../ioc/types'; import { RefactorProxy } from '../refactor/proxy'; import { sendTelemetryWhenDone } from '../telemetry'; diff --git a/src/client/providers/symbolProvider.ts b/src/client/providers/symbolProvider.ts index 94e3abd80073..89c724644fd8 100644 --- a/src/client/providers/symbolProvider.ts +++ b/src/client/providers/symbolProvider.ts @@ -5,8 +5,8 @@ import { Location, Range, SymbolInformation, SymbolKind, TextDocument, Uri } from 'vscode'; import { LanguageClient } from 'vscode-languageclient'; -import { createDeferred, Deferred } from '../../utils/async'; import { IFileSystem } from '../common/platform/types'; +import { createDeferred, Deferred } from '../common/utils/async'; import { IServiceContainer } from '../ioc/types'; import { JediFactory } from '../languageServices/jediProxyFactory'; import { captureTelemetry } from '../telemetry'; diff --git a/src/client/refactor/proxy.ts b/src/client/refactor/proxy.ts index ccf0e359a86c..ae75128d01e8 100644 --- a/src/client/refactor/proxy.ts +++ b/src/client/refactor/proxy.ts @@ -3,12 +3,12 @@ import { ChildProcess } from 'child_process'; import * as path from 'path'; import { Disposable, Position, Range, TextDocument, TextEditorOptions, Uri, window } from 'vscode'; -import { createDeferred, Deferred } from '../../utils/async'; -import { getWindowsLineEndingCount } from '../../utils/text'; import '../common/extensions'; import { IPythonExecutionFactory } from '../common/process/types'; import { IPythonSettings } from '../common/types'; import { IS_WINDOWS } from '../common/util'; +import { createDeferred, Deferred } from '../common/utils/async'; +import { getWindowsLineEndingCount } from '../common/utils/text'; import { IServiceContainer } from '../ioc/types'; export class RefactorProxy extends Disposable { diff --git a/src/client/telemetry/index.ts b/src/client/telemetry/index.ts index 70d392fe5da3..18101bd74db2 100644 --- a/src/client/telemetry/index.ts +++ b/src/client/telemetry/index.ts @@ -1,8 +1,8 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -import { StopWatch } from '../../utils/stopWatch'; import { isTestExecution } from '../common/constants'; +import { StopWatch } from '../common/utils/stopWatch'; import { getTelemetryReporter } from './telemetry'; import { TelemetryProperties } from './types'; diff --git a/src/client/unittests/common/managers/testConfigurationManager.ts b/src/client/unittests/common/managers/testConfigurationManager.ts index 2866a073d0e7..3e3008788133 100644 --- a/src/client/unittests/common/managers/testConfigurationManager.ts +++ b/src/client/unittests/common/managers/testConfigurationManager.ts @@ -1,8 +1,8 @@ import * as path from 'path'; import { OutputChannel, QuickPickItem, Uri, window } from 'vscode'; -import { createDeferred } from '../../../../utils/async'; -import { getSubDirectories } from '../../../../utils/fs'; import { IInstaller, IOutputChannel, Product } from '../../../common/types'; +import { createDeferred } from '../../../common/utils/async'; +import { getSubDirectories } from '../../../common/utils/fs'; import { IServiceContainer } from '../../../ioc/types'; import { ITestConfigurationManager } from '../../types'; import { TEST_OUTPUT_CHANNEL } from '../constants'; diff --git a/src/client/unittests/display/main.ts b/src/client/unittests/display/main.ts index 5812183ddee2..9e4f2fb53d71 100644 --- a/src/client/unittests/display/main.ts +++ b/src/client/unittests/display/main.ts @@ -1,11 +1,11 @@ 'use strict'; import { inject, injectable } from 'inversify'; import { Event, EventEmitter, StatusBarAlignment, StatusBarItem } from 'vscode'; -import { noop } from '../../../utils/misc'; import { IApplicationShell } from '../../common/application/types'; import * as constants from '../../common/constants'; import { isNotInstalledError } from '../../common/helpers'; import { IConfigurationService } from '../../common/types'; +import { noop } from '../../common/utils/misc'; import { IServiceContainer } from '../../ioc/types'; import { CANCELLATION_REASON } from '../common/constants'; import { ITestsHelper, Tests } from '../common/types'; diff --git a/src/client/unittests/display/picker.ts b/src/client/unittests/display/picker.ts index a5feecad76f6..452dbf83df90 100644 --- a/src/client/unittests/display/picker.ts +++ b/src/client/unittests/display/picker.ts @@ -1,9 +1,9 @@ import { inject, injectable } from 'inversify'; import * as path from 'path'; import { commands, QuickPickItem, Uri } from 'vscode'; -import { noop } from '../../../utils/misc'; import { IApplicationShell } from '../../common/application/types'; import * as constants from '../../common/constants'; +import { noop } from '../../common/utils/misc'; import { IServiceContainer } from '../../ioc/types'; import { CommandSource } from '../common/constants'; import { FlattenedTestFunction, ITestCollectionStorageService, TestFile, TestFunction, Tests, TestStatus, TestsToRun } from '../common/types'; diff --git a/src/client/unittests/nosetest/runner.ts b/src/client/unittests/nosetest/runner.ts index 37f36468e28a..692e038aca8b 100644 --- a/src/client/unittests/nosetest/runner.ts +++ b/src/client/unittests/nosetest/runner.ts @@ -1,8 +1,8 @@ 'use strict'; import { inject, injectable } from 'inversify'; -import { noop } from '../../../utils/misc'; import { IFileSystem, TemporaryFile } from '../../common/platform/types'; +import { noop } from '../../common/utils/misc'; import { IServiceContainer } from '../../ioc/types'; import { NOSETEST_PROVIDER } from '../common/constants'; import { Options } from '../common/runner'; diff --git a/src/client/unittests/pytest/runner.ts b/src/client/unittests/pytest/runner.ts index c363bf4b30bc..f10784011273 100644 --- a/src/client/unittests/pytest/runner.ts +++ b/src/client/unittests/pytest/runner.ts @@ -1,7 +1,7 @@ 'use strict'; import { inject, injectable } from 'inversify'; -import { noop } from '../../../utils/misc'; import { IFileSystem, TemporaryFile } from '../../common/platform/types'; +import { noop } from '../../common/utils/misc'; import { IServiceContainer } from '../../ioc/types'; import { PYTEST_PROVIDER } from '../common/constants'; import { Options } from '../common/runner'; diff --git a/src/client/unittests/unittest/main.ts b/src/client/unittests/unittest/main.ts index f945debe2994..8b6810bd56d4 100644 --- a/src/client/unittests/unittest/main.ts +++ b/src/client/unittests/unittest/main.ts @@ -1,6 +1,6 @@ import { Uri } from 'vscode'; -import { noop } from '../../../utils/misc'; import { Product } from '../../common/types'; +import { noop } from '../../common/utils/misc'; import { IServiceContainer } from '../../ioc/types'; import { UNITTEST_PROVIDER } from '../common/constants'; import { BaseTestManager } from '../common/managers/baseTestManager'; diff --git a/src/client/unittests/unittest/runner.ts b/src/client/unittests/unittest/runner.ts index 57411b4c5d88..7aa02b710c59 100644 --- a/src/client/unittests/unittest/runner.ts +++ b/src/client/unittests/unittest/runner.ts @@ -2,9 +2,9 @@ import { inject, injectable } from 'inversify'; import * as path from 'path'; -import { noop } from '../../../utils/misc'; import { EXTENSION_ROOT_DIR } from '../../common/constants'; import { ILogger } from '../../common/types'; +import { noop } from '../../common/utils/misc'; import { IServiceContainer } from '../../ioc/types'; import { UNITTEST_PROVIDER } from '../common/constants'; import { Options } from '../common/runner'; diff --git a/src/client/unittests/unittest/socketServer.ts b/src/client/unittests/unittest/socketServer.ts index 41668b4f4897..f47ee790f359 100644 --- a/src/client/unittests/unittest/socketServer.ts +++ b/src/client/unittests/unittest/socketServer.ts @@ -2,7 +2,7 @@ import { EventEmitter } from 'events'; import { injectable } from 'inversify'; import * as net from 'net'; -import { createDeferred, Deferred } from '../../../utils/async'; +import { createDeferred, Deferred } from '../../common/utils/async'; import { IUnitTestSocketServer } from '../common/types'; // tslint:disable-next-line:variable-name diff --git a/src/client/workspaceSymbols/parser.ts b/src/client/workspaceSymbols/parser.ts index 0e47ce5e1a45..162108e8ee1f 100644 --- a/src/client/workspaceSymbols/parser.ts +++ b/src/client/workspaceSymbols/parser.ts @@ -1,6 +1,6 @@ import * as path from 'path'; import * as vscode from 'vscode'; -import { fsExistsAsync } from '../../utils/fs'; +import { fsExistsAsync } from '../common/utils/fs'; import { Tag } from './contracts'; // tslint:disable:no-require-imports no-var-requires no-suspicious-comment diff --git a/src/test/activation/activationService.unit.test.ts b/src/test/activation/activationService.unit.test.ts index 05501fcb0eff..6dd735b7e4b8 100644 --- a/src/test/activation/activationService.unit.test.ts +++ b/src/test/activation/activationService.unit.test.ts @@ -24,8 +24,8 @@ import { IConfigurationService, IDisposableRegistry, IOutputChannel, IPythonSettings } from '../../client/common/types'; +import { Info as PlatformInfo } from '../../client/common/utils/platform'; import { IServiceContainer } from '../../client/ioc/types'; -import { Info as PlatformInfo } from '../../utils/platform'; import * as testOSInfos from '../utils/platform.unit.test'; suite('Activation - ActivationService', () => { diff --git a/src/test/activation/languageServer/languageServerPackageService.unit.test.ts b/src/test/activation/languageServer/languageServerPackageService.unit.test.ts index 1682080d6f7a..e06d9035113d 100644 --- a/src/test/activation/languageServer/languageServerPackageService.unit.test.ts +++ b/src/test/activation/languageServer/languageServerPackageService.unit.test.ts @@ -13,8 +13,8 @@ import { PlatformName } from '../../../client/activation/platformData'; import { NugetService } from '../../../client/common/nuget/nugetService'; import { INugetRepository, INugetService, NugetPackage } from '../../../client/common/nuget/types'; import { IPlatformService } from '../../../client/common/platform/types'; +import { Architecture, OSType } from '../../../client/common/utils/platform'; import { IServiceContainer } from '../../../client/ioc/types'; -import { Architecture, OSType } from '../../../utils/platform'; const downloadBaseFileName = 'Python-Language-Server'; diff --git a/src/test/application/diagnostics/promptHandler.unit.test.ts b/src/test/application/diagnostics/promptHandler.unit.test.ts index cbad60cdc305..4867af1e51f8 100644 --- a/src/test/application/diagnostics/promptHandler.unit.test.ts +++ b/src/test/application/diagnostics/promptHandler.unit.test.ts @@ -10,8 +10,8 @@ import { DiagnosticSeverity } from 'vscode'; import { DiagnosticCommandPromptHandlerService, MessageCommandPrompt } from '../../../client/application/diagnostics/promptHandler'; import { DiagnosticScope, IDiagnostic, IDiagnosticCommand, IDiagnosticHandlerService } from '../../../client/application/diagnostics/types'; import { IApplicationShell } from '../../../client/common/application/types'; +import { getNamesAndValues } from '../../../client/common/utils/enum'; import { IServiceContainer } from '../../../client/ioc/types'; -import { getNamesAndValues } from '../../../utils/enum'; suite('Application Diagnostics - PromptHandler', () => { let serviceContainer: typemoq.IMock; diff --git a/src/test/common/installer.test.ts b/src/test/common/installer.test.ts index 6f5c712709af..2dd2578dc305 100644 --- a/src/test/common/installer.test.ts +++ b/src/test/common/installer.test.ts @@ -14,8 +14,8 @@ import { PathUtils } from '../../client/common/platform/pathUtils'; import { CurrentProcess } from '../../client/common/process/currentProcess'; import { IProcessServiceFactory } from '../../client/common/process/types'; import { IConfigurationService, ICurrentProcess, IInstaller, ILogger, IPathUtils, IPersistentStateFactory, IsWindows, ModuleNamePurpose, Product, ProductType } from '../../client/common/types'; -import { createDeferred } from '../../utils/async'; -import { getNamesAndValues } from '../../utils/enum'; +import { createDeferred } from '../../client/common/utils/async'; +import { getNamesAndValues } from '../../client/common/utils/enum'; import { rootWorkspaceUri, updateSetting } from '../common'; import { MockModuleInstaller } from '../mocks/moduleInstaller'; import { MockProcessService } from '../mocks/proc'; diff --git a/src/test/common/installer/installer.invalidPath.unit.test.ts b/src/test/common/installer/installer.invalidPath.unit.test.ts index 69b91c472536..7b26a3253d67 100644 --- a/src/test/common/installer/installer.invalidPath.unit.test.ts +++ b/src/test/common/installer/installer.invalidPath.unit.test.ts @@ -14,8 +14,8 @@ import { ProductInstaller } from '../../../client/common/installer/productInstal import { ProductService } from '../../../client/common/installer/productService'; import { IProductPathService, IProductService } from '../../../client/common/installer/types'; import { Product } from '../../../client/common/types'; +import { getNamesAndValues } from '../../../client/common/utils/enum'; import { IServiceContainer } from '../../../client/ioc/types'; -import { getNamesAndValues } from '../../../utils/enum'; use(chaiAsPromised); diff --git a/src/test/common/installer/installer.unit.test.ts b/src/test/common/installer/installer.unit.test.ts index 46cd2d13336a..2187bef2da78 100644 --- a/src/test/common/installer/installer.unit.test.ts +++ b/src/test/common/installer/installer.unit.test.ts @@ -13,9 +13,9 @@ import { ProductInstaller } from '../../../client/common/installer/productInstal import { ProductService } from '../../../client/common/installer/productService'; import { IInstallationChannelManager, IModuleInstaller, IProductPathService, IProductService } from '../../../client/common/installer/types'; import { IDisposableRegistry, ILogger, InstallerResponse, ModuleNamePurpose, Product } from '../../../client/common/types'; +import { createDeferred, Deferred } from '../../../client/common/utils/async'; +import { getNamesAndValues } from '../../../client/common/utils/enum'; import { IServiceContainer } from '../../../client/ioc/types'; -import { createDeferred, Deferred } from '../../../utils/async'; -import { getNamesAndValues } from '../../../utils/enum'; use(chaiAsPromised); diff --git a/src/test/common/installer/moduleInstaller.unit.test.ts b/src/test/common/installer/moduleInstaller.unit.test.ts index c6f953b2f5c3..d9bc9dfb2125 100644 --- a/src/test/common/installer/moduleInstaller.unit.test.ts +++ b/src/test/common/installer/moduleInstaller.unit.test.ts @@ -17,10 +17,10 @@ import { IInstallationChannelManager, IModuleInstaller } from '../../../client/c import { PythonVersionInfo } from '../../../client/common/process/types'; import { ITerminalService, ITerminalServiceFactory } from '../../../client/common/terminal/types'; import { IConfigurationService, IDisposableRegistry, IPythonSettings, ModuleNamePurpose, Product } from '../../../client/common/types'; +import { getNamesAndValues } from '../../../client/common/utils/enum'; +import { noop } from '../../../client/common/utils/misc'; import { ICondaService, IInterpreterService, InterpreterType, PythonInterpreter } from '../../../client/interpreter/contracts'; import { IServiceContainer } from '../../../client/ioc/types'; -import { getNamesAndValues } from '../../../utils/enum'; -import { noop } from '../../../utils/misc'; /* Complex test to ensure we cover all combinations: We could have written separate tests for each installer, but we'd be replicate code. diff --git a/src/test/common/installer/productPath.unit.test.ts b/src/test/common/installer/productPath.unit.test.ts index 282e8e07841c..739360b5b0fa 100644 --- a/src/test/common/installer/productPath.unit.test.ts +++ b/src/test/common/installer/productPath.unit.test.ts @@ -16,11 +16,11 @@ import { CTagsProductPathService, FormatterProductPathService, LinterProductPath import { ProductService } from '../../../client/common/installer/productService'; import { IProductService } from '../../../client/common/installer/types'; import { IConfigurationService, IFormattingSettings, IInstaller, IPythonSettings, IUnitTestSettings, IWorkspaceSymbolSettings, ModuleNamePurpose, Product, ProductType } from '../../../client/common/types'; +import { getNamesAndValues } from '../../../client/common/utils/enum'; import { IFormatterHelper } from '../../../client/formatters/types'; import { IServiceContainer } from '../../../client/ioc/types'; import { ILinterInfo, ILinterManager } from '../../../client/linters/types'; import { ITestsHelper } from '../../../client/unittests/common/types'; -import { getNamesAndValues } from '../../../utils/enum'; use(chaiAsPromised); diff --git a/src/test/common/moduleInstaller.test.ts b/src/test/common/moduleInstaller.test.ts index 0bf330e7c5b3..ef7ace6d5b5b 100644 --- a/src/test/common/moduleInstaller.test.ts +++ b/src/test/common/moduleInstaller.test.ts @@ -22,9 +22,9 @@ import { CurrentProcess } from '../../client/common/process/currentProcess'; import { IProcessServiceFactory, IPythonExecutionFactory } from '../../client/common/process/types'; import { ITerminalService, ITerminalServiceFactory } from '../../client/common/terminal/types'; import { IConfigurationService, ICurrentProcess, IInstaller, ILogger, IPathUtils, IPersistentStateFactory, IPythonSettings, IsWindows } from '../../client/common/types'; +import { Architecture } from '../../client/common/utils/platform'; import { ICondaService, IInterpreterLocatorService, IInterpreterService, INTERPRETER_LOCATOR_SERVICE, InterpreterType, PIPENV_SERVICE, PythonInterpreter } from '../../client/interpreter/contracts'; import { IServiceContainer } from '../../client/ioc/types'; -import { Architecture } from '../../utils/platform'; import { PYTHON_PATH, rootWorkspaceUri } from '../common'; import { MockModuleInstaller } from '../mocks/moduleInstaller'; import { MockProcessService } from '../mocks/proc'; diff --git a/src/test/common/platform/osinfo.unit.test.ts b/src/test/common/platform/osinfo.unit.test.ts index c47779a3f812..2ac55cd7af8a 100644 --- a/src/test/common/platform/osinfo.unit.test.ts +++ b/src/test/common/platform/osinfo.unit.test.ts @@ -6,8 +6,8 @@ import { expect } from 'chai'; import * as semver from 'semver'; import { getPathVariableName, getVirtualEnvBinName } from '../../../client/common/platform/osinfo'; -import * as platform from '../../../utils/platform'; -import { parseVersion } from '../../../utils/version'; +import * as platform from '../../../client/common/utils/platform'; +import { parseVersion } from '../../../client/common/utils/version'; export const WIN_10 = new platform.Info( platform.OSType.Windows, diff --git a/src/test/common/platform/platformService.unit.test.ts b/src/test/common/platform/platformService.unit.test.ts index 853152bff125..8ec67a9bcb69 100644 --- a/src/test/common/platform/platformService.unit.test.ts +++ b/src/test/common/platform/platformService.unit.test.ts @@ -6,7 +6,7 @@ import { expect } from 'chai'; import * as os from 'os'; import { PlatformService } from '../../../client/common/platform/platformService'; -import { getInfo } from '../../../utils/platform'; +import { getInfo } from '../../../client/common/utils/platform'; // tslint:disable-next-line:max-func-body-length suite('PlatformService', () => { diff --git a/src/test/common/process/proc.observable.test.ts b/src/test/common/process/proc.observable.test.ts index 84399db0ed70..766c557d93e6 100644 --- a/src/test/common/process/proc.observable.test.ts +++ b/src/test/common/process/proc.observable.test.ts @@ -7,7 +7,7 @@ import { CancellationTokenSource } from 'vscode'; import { PythonSettings } from '../../../client/common/configSettings'; import { BufferDecoder } from '../../../client/common/process/decoder'; import { ProcessService } from '../../../client/common/process/proc'; -import { createDeferred } from '../../../utils/async'; +import { createDeferred } from '../../../client/common/utils/async'; import { initialize } from './../../initialize'; use(chaiAsPromised); diff --git a/src/test/common/socketCallbackHandler.test.ts b/src/test/common/socketCallbackHandler.test.ts index 36343ec69ef2..cb90545b241d 100644 --- a/src/test/common/socketCallbackHandler.test.ts +++ b/src/test/common/socketCallbackHandler.test.ts @@ -6,7 +6,7 @@ import * as net from 'net'; import { SocketCallbackHandler } from '../../client/common/net/socket/socketCallbackHandler'; import { SocketServer } from '../../client/common/net/socket/socketServer'; import { SocketStream } from '../../client/common/net/socket/SocketStream'; -import { createDeferred, Deferred } from '../../utils/async'; +import { createDeferred, Deferred } from '../../client/common/utils/async'; const uint64be = require('uint64be'); diff --git a/src/test/common/terminals/activation.bash.unit.test.ts b/src/test/common/terminals/activation.bash.unit.test.ts index 7596538b5fcb..0fafb57a0277 100644 --- a/src/test/common/terminals/activation.bash.unit.test.ts +++ b/src/test/common/terminals/activation.bash.unit.test.ts @@ -9,8 +9,8 @@ import { IFileSystem } from '../../../client/common/platform/types'; import { Bash } from '../../../client/common/terminal/environmentActivationProviders/bash'; import { TerminalShellType } from '../../../client/common/terminal/types'; import { IConfigurationService, IPythonSettings } from '../../../client/common/types'; +import { getNamesAndValues } from '../../../client/common/utils/enum'; import { IServiceContainer } from '../../../client/ioc/types'; -import { getNamesAndValues } from '../../../utils/enum'; // tslint:disable-next-line:max-func-body-length suite('Terminal Environment Activation (bash)', () => { diff --git a/src/test/common/terminals/activation.commandPrompt.unit.test.ts b/src/test/common/terminals/activation.commandPrompt.unit.test.ts index b5ba948b9440..556cb8e212be 100644 --- a/src/test/common/terminals/activation.commandPrompt.unit.test.ts +++ b/src/test/common/terminals/activation.commandPrompt.unit.test.ts @@ -11,8 +11,8 @@ import { IFileSystem, IPlatformService } from '../../../client/common/platform/t import { CommandPromptAndPowerShell } from '../../../client/common/terminal/environmentActivationProviders/commandPrompt'; import { TerminalShellType } from '../../../client/common/terminal/types'; import { IConfigurationService, IPythonSettings } from '../../../client/common/types'; +import { getNamesAndValues } from '../../../client/common/utils/enum'; import { IServiceContainer } from '../../../client/ioc/types'; -import { getNamesAndValues } from '../../../utils/enum'; suite('Terminal Environment Activation (cmd/powershell)', () => { ['c:/programfiles/python/python', 'c:/program files/python/python', diff --git a/src/test/common/terminals/activation.conda.unit.test.ts b/src/test/common/terminals/activation.conda.unit.test.ts index fe44d16c2984..44b6fb6e8b4d 100644 --- a/src/test/common/terminals/activation.conda.unit.test.ts +++ b/src/test/common/terminals/activation.conda.unit.test.ts @@ -28,7 +28,6 @@ import { } from '../../../client/common/types'; import { ICondaService } from '../../../client/interpreter/contracts'; import { IServiceContainer } from '../../../client/ioc/types'; -import { getNamesAndValues } from '../../../utils/enum'; suite('Terminal Environment Activation conda', () => { let terminalHelper: TerminalHelper; diff --git a/src/test/common/terminals/activation.unit.test.ts b/src/test/common/terminals/activation.unit.test.ts index a508cbc874c8..5931871ae6a5 100644 --- a/src/test/common/terminals/activation.unit.test.ts +++ b/src/test/common/terminals/activation.unit.test.ts @@ -8,10 +8,10 @@ import { Terminal } from 'vscode'; import { ITerminalManager } from '../../../client/common/application/types'; import { ITerminalHelper } from '../../../client/common/terminal/types'; import { IDisposableRegistry } from '../../../client/common/types'; +import { noop } from '../../../client/common/utils/misc'; import { IServiceContainer } from '../../../client/ioc/types'; import { TerminalAutoActivation } from '../../../client/terminals/activation'; import { ITerminalAutoActivation } from '../../../client/terminals/types'; -import { noop } from '../../../utils/misc'; suite('Terminal Auto Activation', () => { let helper: TypeMoq.IMock; diff --git a/src/test/common/terminals/helper.activation.unit.test.ts b/src/test/common/terminals/helper.activation.unit.test.ts index 7ac436b88444..899b9d68a141 100644 --- a/src/test/common/terminals/helper.activation.unit.test.ts +++ b/src/test/common/terminals/helper.activation.unit.test.ts @@ -11,9 +11,9 @@ import { CommandPromptAndPowerShell } from '../../../client/common/terminal/envi import { TerminalHelper } from '../../../client/common/terminal/helper'; import { ITerminalActivationCommandProvider, ITerminalHelper, TerminalShellType } from '../../../client/common/terminal/types'; import { IConfigurationService, IDisposableRegistry, IPythonSettings, ITerminalSettings } from '../../../client/common/types'; +import { getNamesAndValues } from '../../../client/common/utils/enum'; import { ICondaService, IInterpreterService } from '../../../client/interpreter/contracts'; import { IServiceContainer } from '../../../client/ioc/types'; -import { getNamesAndValues } from '../../../utils/enum'; // tslint:disable-next-line:max-func-body-length suite('Terminal Service helpers', () => { diff --git a/src/test/common/terminals/helper.unit.test.ts b/src/test/common/terminals/helper.unit.test.ts index 8b89aca45430..b06011efa2d3 100644 --- a/src/test/common/terminals/helper.unit.test.ts +++ b/src/test/common/terminals/helper.unit.test.ts @@ -9,9 +9,9 @@ import { IPlatformService } from '../../../client/common/platform/types'; import { TerminalHelper } from '../../../client/common/terminal/helper'; import { ITerminalHelper, TerminalShellType } from '../../../client/common/terminal/types'; import { IDisposableRegistry } from '../../../client/common/types'; +import { getNamesAndValues } from '../../../client/common/utils/enum'; import { IInterpreterService } from '../../../client/interpreter/contracts'; import { IServiceContainer } from '../../../client/ioc/types'; -import { getNamesAndValues } from '../../../utils/enum'; // tslint:disable-next-line:max-func-body-length suite('Terminal Service helpers', () => { diff --git a/src/test/common/terminals/pyenvActivationProvider.unit.test.ts b/src/test/common/terminals/pyenvActivationProvider.unit.test.ts index fefcf119f21f..99db68accbd6 100644 --- a/src/test/common/terminals/pyenvActivationProvider.unit.test.ts +++ b/src/test/common/terminals/pyenvActivationProvider.unit.test.ts @@ -8,10 +8,10 @@ import * as TypeMoq from 'typemoq'; import '../../../client/common/extensions'; import { PyEnvActivationCommandProvider } from '../../../client/common/terminal/environmentActivationProviders/pyenvActivationProvider'; import { ITerminalActivationCommandProvider, TerminalShellType } from '../../../client/common/terminal/types'; +import { getNamesAndValues } from '../../../client/common/utils/enum'; +import { Architecture } from '../../../client/common/utils/platform'; import { IInterpreterService, InterpreterType, PythonInterpreter } from '../../../client/interpreter/contracts'; import { IServiceContainer } from '../../../client/ioc/types'; -import { getNamesAndValues } from '../../../utils/enum'; -import { Architecture } from '../../../utils/platform'; suite('Terminal Environment Activation pyenv', () => { let serviceContainer: TypeMoq.IMock; diff --git a/src/test/common/variables/envVarsProvider.multiroot.test.ts b/src/test/common/variables/envVarsProvider.multiroot.test.ts index 449521ece7ef..361b8088d3d0 100644 --- a/src/test/common/variables/envVarsProvider.multiroot.test.ts +++ b/src/test/common/variables/envVarsProvider.multiroot.test.ts @@ -10,10 +10,10 @@ import { ConfigurationTarget, Disposable, Uri, workspace } from 'vscode'; import { NON_WINDOWS_PATH_VARIABLE_NAME, WINDOWS_PATH_VARIABLE_NAME } from '../../../client/common/platform/constants'; import { IDisposableRegistry, IPathUtils, IsWindows } from '../../../client/common/types'; import { IS_WINDOWS } from '../../../client/common/util'; +import { createDeferred } from '../../../client/common/utils/async'; import { EnvironmentVariablesService } from '../../../client/common/variables/environment'; import { EnvironmentVariablesProvider } from '../../../client/common/variables/environmentVariablesProvider'; import { EnvironmentVariables } from '../../../client/common/variables/types'; -import { createDeferred } from '../../../utils/async'; import { clearPythonPathInWorkspaceFolder, updateSetting } from '../../common'; import { closeActiveWindows, initialize, initializeTest, IS_MULTI_ROOT_TEST } from '../../initialize'; import { MockProcess } from '../../mocks/process'; diff --git a/src/test/common/variables/envVarsService.test.ts b/src/test/common/variables/envVarsService.test.ts index a93b18bdc19e..b34df2da05ad 100644 --- a/src/test/common/variables/envVarsService.test.ts +++ b/src/test/common/variables/envVarsService.test.ts @@ -6,9 +6,9 @@ import * as chaiAsPromised from 'chai-as-promised'; import * as path from 'path'; import { PathUtils } from '../../../client/common/platform/pathUtils'; import { IPathUtils } from '../../../client/common/types'; +import { isWindows } from '../../../client/common/utils/platform'; import { EnvironmentVariablesService } from '../../../client/common/variables/environment'; import { IEnvironmentVariablesService } from '../../../client/common/variables/types'; -import { isWindows } from '../../../utils/platform'; use(chaiAsPromised); diff --git a/src/test/configuration/interpreterSelector.unit.test.ts b/src/test/configuration/interpreterSelector.unit.test.ts index 49b33cfc9bed..624d039c38c8 100644 --- a/src/test/configuration/interpreterSelector.unit.test.ts +++ b/src/test/configuration/interpreterSelector.unit.test.ts @@ -7,11 +7,11 @@ import { IApplicationShell, ICommandManager, IDocumentManager, IWorkspaceService import { PathUtils } from '../../client/common/platform/pathUtils'; import { IFileSystem } from '../../client/common/platform/types'; import { IPathUtils } from '../../client/common/types'; +import { Architecture } from '../../client/common/utils/platform'; import { IInterpreterQuickPickItem, InterpreterSelector } from '../../client/interpreter/configuration/interpreterSelector'; import { IInterpreterComparer } from '../../client/interpreter/configuration/types'; import { IInterpreterService, InterpreterType, PythonInterpreter } from '../../client/interpreter/contracts'; import { IServiceContainer } from '../../client/ioc/types'; -import { Architecture } from '../../utils/platform'; const info: PythonInterpreter = { architecture: Architecture.Unknown, diff --git a/src/test/debugger/capabilities.test.ts b/src/test/debugger/capabilities.test.ts index d0227db406c1..244c27ea3692 100644 --- a/src/test/debugger/capabilities.test.ts +++ b/src/test/debugger/capabilities.test.ts @@ -13,12 +13,12 @@ import * as path from 'path'; import { Message } from 'vscode-debugadapter/lib/messages'; import { DebugProtocol } from 'vscode-debugprotocol'; import { EXTENSION_ROOT_DIR } from '../../client/common/constants'; +import { createDeferred, sleep } from '../../client/common/utils/async'; +import { noop } from '../../client/common/utils/misc'; import { PTVSD_PATH } from '../../client/debugger/Common/constants'; import { ProtocolParser } from '../../client/debugger/Common/protocolParser'; import { ProtocolMessageWriter } from '../../client/debugger/Common/protocolWriter'; import { PythonDebugger } from '../../client/debugger/mainV2'; -import { createDeferred, sleep } from '../../utils/async'; -import { noop } from '../../utils/misc'; import { PYTHON_PATH } from '../common'; import { IS_MULTI_ROOT_TEST, TEST_DEBUGGER } from '../initialize'; diff --git a/src/test/debugger/common/protocolparser.test.ts b/src/test/debugger/common/protocolparser.test.ts index 647c7a5f2e63..090aa80b1062 100644 --- a/src/test/debugger/common/protocolparser.test.ts +++ b/src/test/debugger/common/protocolparser.test.ts @@ -3,8 +3,8 @@ import { expect } from 'chai'; import { PassThrough } from 'stream'; +import { createDeferred } from '../../../client/common/utils/async'; import { ProtocolParser } from '../../../client/debugger/Common/protocolParser'; -import { createDeferred } from '../../../utils/async'; import { sleep } from '../../common'; suite('Debugging - Protocol Parser', () => { diff --git a/src/test/debugger/configProvider/provider.attach.unit.test.ts b/src/test/debugger/configProvider/provider.attach.unit.test.ts index 346ef090b7d8..5babed8f453f 100644 --- a/src/test/debugger/configProvider/provider.attach.unit.test.ts +++ b/src/test/debugger/configProvider/provider.attach.unit.test.ts @@ -12,11 +12,11 @@ import { DebugConfiguration, DebugConfigurationProvider, TextDocument, TextEdito import { IDocumentManager, IWorkspaceService } from '../../../client/common/application/types'; import { PYTHON_LANGUAGE } from '../../../client/common/constants'; import { IFileSystem, IPlatformService } from '../../../client/common/platform/types'; +import { getNamesAndValues } from '../../../client/common/utils/enum'; import { PythonV2DebugConfigurationProvider } from '../../../client/debugger'; import { DebuggerTypeName } from '../../../client/debugger/Common/constants'; import { AttachRequestArguments, DebugOptions } from '../../../client/debugger/Common/Contracts'; import { IServiceContainer } from '../../../client/ioc/types'; -import { getNamesAndValues } from '../../../utils/enum'; enum OS { Windows, diff --git a/src/test/debugger/debugClient.ts b/src/test/debugger/debugClient.ts index a7b1a1825251..318d6255b695 100644 --- a/src/test/debugger/debugClient.ts +++ b/src/test/debugger/debugClient.ts @@ -7,7 +7,7 @@ import { ChildProcess, spawn, SpawnOptions } from 'child_process'; import * as path from 'path'; import { DebugClient } from 'vscode-debugadapter-testsupport'; import { EXTENSION_ROOT_DIR } from '../../client/common/constants'; -import { noop } from '../../utils/misc'; +import { noop } from '../../client/common/utils/misc'; export class DebugClientEx extends DebugClient { private adapterProcess: ChildProcess | undefined; diff --git a/src/test/debugger/misc.test.ts b/src/test/debugger/misc.test.ts index 666460ea6b36..ee137a0dc644 100644 --- a/src/test/debugger/misc.test.ts +++ b/src/test/debugger/misc.test.ts @@ -7,9 +7,9 @@ import * as path from 'path'; import { DebugClient } from 'vscode-debugadapter-testsupport'; import { EXTENSION_ROOT_DIR } from '../../client/common/constants'; import { IS_WINDOWS } from '../../client/common/platform/constants'; +import { noop } from '../../client/common/utils/misc'; import { DebuggerTypeName, PTVSD_PATH } from '../../client/debugger/Common/constants'; import { DebugOptions, LaunchRequestArguments } from '../../client/debugger/Common/Contracts'; -import { noop } from '../../utils/misc'; import { PYTHON_PATH, sleep } from '../common'; import { IS_MULTI_ROOT_TEST, TEST_DEBUGGER } from '../initialize'; import { DEBUGGER_TIMEOUT } from './common/constants'; diff --git a/src/test/debugger/portAndHost.test.ts b/src/test/debugger/portAndHost.test.ts index a75700ea6ff8..013ae39ead39 100644 --- a/src/test/debugger/portAndHost.test.ts +++ b/src/test/debugger/portAndHost.test.ts @@ -7,9 +7,9 @@ import * as getFreePort from 'get-port'; import * as net from 'net'; import * as path from 'path'; import { DebugClient } from 'vscode-debugadapter-testsupport'; +import { noop } from '../../client/common/utils/misc'; import { DebuggerTypeName } from '../../client/debugger/Common/constants'; import { DebugOptions, LaunchRequestArguments } from '../../client/debugger/Common/Contracts'; -import { noop } from '../../utils/misc'; import { PYTHON_PATH } from '../common'; import { IS_MULTI_ROOT_TEST, TEST_DEBUGGER } from '../initialize'; import { DEBUGGER_TIMEOUT } from './common/constants'; diff --git a/src/test/debugger/run.test.ts b/src/test/debugger/run.test.ts index 105a59da80c1..99d1ddf62650 100644 --- a/src/test/debugger/run.test.ts +++ b/src/test/debugger/run.test.ts @@ -10,9 +10,9 @@ import * as path from 'path'; import { DebugClient } from 'vscode-debugadapter-testsupport'; import { DebugProtocol } from 'vscode-debugprotocol'; import { EXTENSION_ROOT_DIR } from '../../client/common/constants'; +import { noop } from '../../client/common/utils/misc'; import { DebuggerTypeName, PTVSD_PATH } from '../../client/debugger/Common/constants'; import { DebugOptions, LaunchRequestArguments } from '../../client/debugger/Common/Contracts'; -import { noop } from '../../utils/misc'; import { PYTHON_PATH, sleep } from '../common'; import { IS_MULTI_ROOT_TEST, TEST_DEBUGGER } from '../initialize'; import { createDebugAdapter } from './utils'; diff --git a/src/test/format/format.helper.test.ts b/src/test/format/format.helper.test.ts index 69515c3f25ca..f05990f9a91e 100644 --- a/src/test/format/format.helper.test.ts +++ b/src/test/format/format.helper.test.ts @@ -2,9 +2,9 @@ import * as assert from 'assert'; import * as TypeMoq from 'typemoq'; import { PythonSettings } from '../../client/common/configSettings'; import { IConfigurationService, IFormattingSettings, Product } from '../../client/common/types'; +import * as EnumEx from '../../client/common/utils/enum'; import { FormatterHelper } from '../../client/formatters/helper'; import { FormatterId } from '../../client/formatters/types'; -import * as EnumEx from '../../utils/enum'; import { initialize } from '../initialize'; import { UnitTestIocContainer } from '../unittests/serviceRegistry'; diff --git a/src/test/install/channelManager.channels.test.ts b/src/test/install/channelManager.channels.test.ts index 42adcd6c73e9..09dd787abe88 100644 --- a/src/test/install/channelManager.channels.test.ts +++ b/src/test/install/channelManager.channels.test.ts @@ -9,11 +9,11 @@ import { IApplicationShell } from '../../client/common/application/types'; import { InstallationChannelManager } from '../../client/common/installer/channelManager'; import { IModuleInstaller } from '../../client/common/installer/types'; import { Product } from '../../client/common/types'; +import { Architecture } from '../../client/common/utils/platform'; import { IInterpreterLocatorService, InterpreterType, PIPENV_SERVICE, PythonInterpreter } from '../../client/interpreter/contracts'; import { ServiceContainer } from '../../client/ioc/container'; import { ServiceManager } from '../../client/ioc/serviceManager'; import { IServiceContainer } from '../../client/ioc/types'; -import { Architecture } from '../../utils/platform'; const info: PythonInterpreter = { architecture: Architecture.Unknown, diff --git a/src/test/install/channelManager.messages.test.ts b/src/test/install/channelManager.messages.test.ts index 8f24b122acee..d1a11f1e6131 100644 --- a/src/test/install/channelManager.messages.test.ts +++ b/src/test/install/channelManager.messages.test.ts @@ -9,11 +9,11 @@ import { InstallationChannelManager } from '../../client/common/installer/channe import { IModuleInstaller } from '../../client/common/installer/types'; import { IPlatformService } from '../../client/common/platform/types'; import { Product } from '../../client/common/types'; +import { Architecture } from '../../client/common/utils/platform'; import { IInterpreterService, InterpreterType, PythonInterpreter } from '../../client/interpreter/contracts'; import { ServiceContainer } from '../../client/ioc/container'; import { ServiceManager } from '../../client/ioc/serviceManager'; import { IServiceContainer } from '../../client/ioc/types'; -import { Architecture } from '../../utils/platform'; const info: PythonInterpreter = { architecture: Architecture.Unknown, diff --git a/src/test/interpreters/condaService.unit.test.ts b/src/test/interpreters/condaService.unit.test.ts index 8bbd5099ffd2..ce91ebb9e5ec 100644 --- a/src/test/interpreters/condaService.unit.test.ts +++ b/src/test/interpreters/condaService.unit.test.ts @@ -9,10 +9,10 @@ import { FileSystem } from '../../client/common/platform/fileSystem'; import { IFileSystem, IPlatformService } from '../../client/common/platform/types'; import { IProcessService, IProcessServiceFactory } from '../../client/common/process/types'; import { IConfigurationService, ILogger, IPersistentStateFactory, IPythonSettings } from '../../client/common/types'; +import { Architecture } from '../../client/common/utils/platform'; import { IInterpreterLocatorService, InterpreterType, PythonInterpreter } from '../../client/interpreter/contracts'; import { CondaService } from '../../client/interpreter/locators/services/condaService'; import { IServiceContainer } from '../../client/ioc/types'; -import { Architecture } from '../../utils/platform'; import { MockState } from './mocks'; const untildify: (value: string) => string = require('untildify'); diff --git a/src/test/interpreters/display.unit.test.ts b/src/test/interpreters/display.unit.test.ts index 0d06e79c64d6..e3ca5f4f1f8c 100644 --- a/src/test/interpreters/display.unit.test.ts +++ b/src/test/interpreters/display.unit.test.ts @@ -5,11 +5,11 @@ import { ConfigurationTarget, Disposable, StatusBarAlignment, StatusBarItem, Uri import { IApplicationShell, IWorkspaceService } from '../../client/common/application/types'; import { IFileSystem } from '../../client/common/platform/types'; import { IConfigurationService, IDisposableRegistry, IPathUtils, IPythonSettings } from '../../client/common/types'; +import { Architecture } from '../../client/common/utils/platform'; import { IInterpreterDisplay, IInterpreterHelper, IInterpreterService, InterpreterType, PythonInterpreter } from '../../client/interpreter/contracts'; import { InterpreterDisplay } from '../../client/interpreter/display'; import { IVirtualEnvironmentManager } from '../../client/interpreter/virtualEnvs/types'; import { IServiceContainer } from '../../client/ioc/types'; -import { Architecture } from '../../utils/platform'; // tslint:disable:no-any max-func-body-length diff --git a/src/test/interpreters/interpreterService.unit.test.ts b/src/test/interpreters/interpreterService.unit.test.ts index daadfdc30894..ed4ae8facc88 100644 --- a/src/test/interpreters/interpreterService.unit.test.ts +++ b/src/test/interpreters/interpreterService.unit.test.ts @@ -17,6 +17,9 @@ import { getArchitectureDisplayName } from '../../client/common/platform/registr import { IFileSystem } from '../../client/common/platform/types'; import { IPythonExecutionFactory, IPythonExecutionService } from '../../client/common/process/types'; import { IConfigurationService, IDisposableRegistry, IPersistentStateFactory } from '../../client/common/types'; +import * as EnumEx from '../../client/common/utils/enum'; +import { noop } from '../../client/common/utils/misc'; +import { Architecture } from '../../client/common/utils/platform'; import { IPythonPathUpdaterServiceManager } from '../../client/interpreter/configuration/types'; import { IInterpreterDisplay, @@ -33,9 +36,6 @@ import { InterpreterService } from '../../client/interpreter/interpreterService' import { IVirtualEnvironmentManager } from '../../client/interpreter/virtualEnvs/types'; import { ServiceContainer } from '../../client/ioc/container'; import { ServiceManager } from '../../client/ioc/serviceManager'; -import * as EnumEx from '../../utils/enum'; -import { noop } from '../../utils/misc'; -import { Architecture } from '../../utils/platform'; use(chaiAsPromised); diff --git a/src/test/interpreters/locators/helpers.unit.test.ts b/src/test/interpreters/locators/helpers.unit.test.ts index c0b8978b9679..740d6d3ff549 100644 --- a/src/test/interpreters/locators/helpers.unit.test.ts +++ b/src/test/interpreters/locators/helpers.unit.test.ts @@ -10,11 +10,11 @@ import * as path from 'path'; import * as TypeMoq from 'typemoq'; import { IFileSystem, IPlatformService } from '../../../client/common/platform/types'; import { PythonVersionInfo } from '../../../client/common/process/types'; +import { getNamesAndValues } from '../../../client/common/utils/enum'; +import { Architecture } from '../../../client/common/utils/platform'; import { IInterpreterHelper, IInterpreterLocatorHelper, InterpreterType, PythonInterpreter } from '../../../client/interpreter/contracts'; import { InterpreterLocatorHelper } from '../../../client/interpreter/locators/helpers'; import { IServiceContainer } from '../../../client/ioc/types'; -import { getNamesAndValues } from '../../../utils/enum'; -import { Architecture } from '../../../utils/platform'; enum OS { Windows = 'Windows', diff --git a/src/test/interpreters/locators/index.unit.test.ts b/src/test/interpreters/locators/index.unit.test.ts index 36ec63376a29..4b9a2bfad19f 100644 --- a/src/test/interpreters/locators/index.unit.test.ts +++ b/src/test/interpreters/locators/index.unit.test.ts @@ -10,11 +10,11 @@ import * as TypeMoq from 'typemoq'; import { Uri } from 'vscode'; import { IPlatformService } from '../../../client/common/platform/types'; import { IDisposableRegistry } from '../../../client/common/types'; +import { getNamesAndValues } from '../../../client/common/utils/enum'; +import { Architecture, Info as PlatformInfo, OSType } from '../../../client/common/utils/platform'; import { CONDA_ENV_FILE_SERVICE, CONDA_ENV_SERVICE, CURRENT_PATH_SERVICE, GLOBAL_VIRTUAL_ENV_SERVICE, IInterpreterLocatorHelper, IInterpreterLocatorService, InterpreterType, KNOWN_PATH_SERVICE, PIPENV_SERVICE, PythonInterpreter, WINDOWS_REGISTRY_SERVICE, WORKSPACE_VIRTUAL_ENV_SERVICE } from '../../../client/interpreter/contracts'; import { PythonInterpreterLocatorService } from '../../../client/interpreter/locators'; import { IServiceContainer } from '../../../client/ioc/types'; -import { getNamesAndValues } from '../../../utils/enum'; -import { Architecture, Info as PlatformInfo, OSType } from '../../../utils/platform'; suite('Interpreters - Locators Index', () => { let serviceContainer: TypeMoq.IMock; diff --git a/src/test/interpreters/mocks.ts b/src/test/interpreters/mocks.ts index 55a7b308ba86..c69c960ac325 100644 --- a/src/test/interpreters/mocks.ts +++ b/src/test/interpreters/mocks.ts @@ -1,8 +1,8 @@ import { injectable } from 'inversify'; import { IRegistry, RegistryHive } from '../../client/common/platform/types'; import { IPersistentState } from '../../client/common/types'; +import { Architecture } from '../../client/common/utils/platform'; import { IInterpreterVersionService } from '../../client/interpreter/contracts'; -import { Architecture } from '../../utils/platform'; @injectable() export class MockRegistry implements IRegistry { diff --git a/src/test/interpreters/pipEnvService.unit.test.ts b/src/test/interpreters/pipEnvService.unit.test.ts index e42fa6e094af..2291d9b17598 100644 --- a/src/test/interpreters/pipEnvService.unit.test.ts +++ b/src/test/interpreters/pipEnvService.unit.test.ts @@ -13,11 +13,11 @@ import { IApplicationShell, IWorkspaceService } from '../../client/common/applic import { IFileSystem, IPlatformService } from '../../client/common/platform/types'; import { IProcessService, IProcessServiceFactory } from '../../client/common/process/types'; import { ICurrentProcess, ILogger, IPersistentState, IPersistentStateFactory } from '../../client/common/types'; +import { getNamesAndValues } from '../../client/common/utils/enum'; import { IEnvironmentVariablesProvider } from '../../client/common/variables/types'; import { IInterpreterHelper, IInterpreterLocatorService } from '../../client/interpreter/contracts'; import { PipEnvService } from '../../client/interpreter/locators/services/pipEnvService'; import { IServiceContainer } from '../../client/ioc/types'; -import { getNamesAndValues } from '../../utils/enum'; enum OS { Mac, Windows, Linux diff --git a/src/test/interpreters/windowsRegistryService.unit.test.ts b/src/test/interpreters/windowsRegistryService.unit.test.ts index 83b4364a6f01..9e3943508804 100644 --- a/src/test/interpreters/windowsRegistryService.unit.test.ts +++ b/src/test/interpreters/windowsRegistryService.unit.test.ts @@ -3,10 +3,10 @@ import * as path from 'path'; import * as TypeMoq from 'typemoq'; import { RegistryHive } from '../../client/common/platform/types'; import { IPathUtils, IPersistentStateFactory } from '../../client/common/types'; +import { Architecture } from '../../client/common/utils/platform'; import { IInterpreterHelper } from '../../client/interpreter/contracts'; import { WindowsRegistryService } from '../../client/interpreter/locators/services/windowsRegistryService'; import { IServiceContainer } from '../../client/ioc/types'; -import { Architecture } from '../../utils/platform'; import { MockRegistry, MockState } from './mocks'; const environmentsPath = path.join(__dirname, '..', '..', '..', 'src', 'test', 'pythonFiles', 'environments'); diff --git a/src/test/linters/lint.manager.test.ts b/src/test/linters/lint.manager.test.ts index fcf4693086f2..ff4e33cd93cd 100644 --- a/src/test/linters/lint.manager.test.ts +++ b/src/test/linters/lint.manager.test.ts @@ -5,12 +5,12 @@ import * as assert from 'assert'; import { Container } from 'inversify'; import { ConfigurationService } from '../../client/common/configuration/service'; import { IConfigurationService, ILintingSettings, IPythonSettings, Product } from '../../client/common/types'; +import * as EnumEx from '../../client/common/utils/enum'; import { ServiceContainer } from '../../client/ioc/container'; import { ServiceManager } from '../../client/ioc/serviceManager'; import { IServiceContainer } from '../../client/ioc/types'; import { LinterManager } from '../../client/linters/linterManager'; import { ILinterManager, LinterId } from '../../client/linters/types'; -import * as EnumEx from '../../utils/enum'; import { initialize } from '../initialize'; // tslint:disable-next-line:max-func-body-length diff --git a/src/test/linters/lint.provider.test.ts b/src/test/linters/lint.provider.test.ts index 24739a9c8327..07de8b37ad45 100644 --- a/src/test/linters/lint.provider.test.ts +++ b/src/test/linters/lint.provider.test.ts @@ -7,13 +7,13 @@ import * as vscode from 'vscode'; import { IDocumentManager } from '../../client/common/application/types'; import { IFileSystem } from '../../client/common/platform/types'; import { IConfigurationService, ILintingSettings, IPythonSettings, Product } from '../../client/common/types'; +import { createDeferred } from '../../client/common/utils/async'; import { IInterpreterService } from '../../client/interpreter/contracts'; import { ServiceContainer } from '../../client/ioc/container'; import { ServiceManager } from '../../client/ioc/serviceManager'; import { LinterManager } from '../../client/linters/linterManager'; import { ILinterManager, ILintingEngine } from '../../client/linters/types'; import { LinterProvider } from '../../client/providers/linterProvider'; -import { createDeferred } from '../../utils/async'; import { initialize } from '../initialize'; // tslint:disable-next-line:max-func-body-length diff --git a/src/test/performance/load.perf.test.ts b/src/test/performance/load.perf.test.ts index f3d8a31d1c04..b1dcdbc6b959 100644 --- a/src/test/performance/load.perf.test.ts +++ b/src/test/performance/load.perf.test.ts @@ -11,7 +11,7 @@ import { EOL } from 'os'; import * as path from 'path'; import { commands, extensions } from 'vscode'; import { PVSC_EXTENSION_ID } from '../../client/common/constants'; -import { StopWatch } from '../../utils/stopWatch'; +import { StopWatch } from '../../client/common/utils/stopWatch'; const AllowedIncreaseInActivationDelayInMS = 500; diff --git a/src/test/providers/importSortProvider.unit.test.ts b/src/test/providers/importSortProvider.unit.test.ts index 8b08cefb9b6f..7c30ff82d6cf 100644 --- a/src/test/providers/importSortProvider.unit.test.ts +++ b/src/test/providers/importSortProvider.unit.test.ts @@ -16,10 +16,10 @@ import { IFileSystem, TemporaryFile } from '../../client/common/platform/types'; import { ProcessService } from '../../client/common/process/proc'; import { IProcessServiceFactory, IPythonExecutionFactory, IPythonExecutionService } from '../../client/common/process/types'; import { IConfigurationService, IDisposableRegistry, IEditorUtils, IPythonSettings, ISortImportSettings } from '../../client/common/types'; +import { noop } from '../../client/common/utils/misc'; import { IServiceContainer } from '../../client/ioc/types'; import { SortImportsEditingProvider } from '../../client/providers/importSortProvider'; import { ISortImportsEditingProvider } from '../../client/providers/types'; -import { noop } from '../../utils/misc'; suite('Import Sort Provider', () => { let serviceContainer: TypeMoq.IMock; diff --git a/src/test/providers/symbolProvider.unit.test.ts b/src/test/providers/symbolProvider.unit.test.ts index 8d153fb0edc2..be27f6205b2b 100644 --- a/src/test/providers/symbolProvider.unit.test.ts +++ b/src/test/providers/symbolProvider.unit.test.ts @@ -14,12 +14,12 @@ import { } from 'vscode'; import { LanguageClient } from 'vscode-languageclient'; import { IFileSystem } from '../../client/common/platform/types'; +import { splitParent } from '../../client/common/utils/string'; +import { parseRange } from '../../client/common/utils/text'; import { IServiceContainer } from '../../client/ioc/types'; import { JediFactory } from '../../client/languageServices/jediProxyFactory'; import { IDefinition, ISymbolResult, JediProxyHandler } from '../../client/providers/jediProxy'; import { JediSymbolProvider, LanguageServerSymbolProvider } from '../../client/providers/symbolProvider'; -import { splitParent } from '../../utils/string'; -import { parseRange } from '../../utils/text'; const assertArrays = require('chai-arrays'); use(assertArrays); diff --git a/src/test/terminals/codeExecution/terminalCodeExec.unit.test.ts b/src/test/terminals/codeExecution/terminalCodeExec.unit.test.ts index 22d67bb2ef8c..0e703bdb1c71 100644 --- a/src/test/terminals/codeExecution/terminalCodeExec.unit.test.ts +++ b/src/test/terminals/codeExecution/terminalCodeExec.unit.test.ts @@ -11,11 +11,11 @@ import { ICommandManager, IDocumentManager, IWorkspaceService } from '../../../c import { IFileSystem, IPlatformService } from '../../../client/common/platform/types'; import { ITerminalService, ITerminalServiceFactory } from '../../../client/common/terminal/types'; import { IConfigurationService, IPythonSettings, ITerminalSettings } from '../../../client/common/types'; +import { noop } from '../../../client/common/utils/misc'; import { DjangoShellCodeExecutionProvider } from '../../../client/terminals/codeExecution/djangoShellCodeExecution'; import { ReplProvider } from '../../../client/terminals/codeExecution/repl'; import { TerminalCodeExecutionProvider } from '../../../client/terminals/codeExecution/terminalCodeExecution'; import { ICodeExecutionService } from '../../../client/terminals/types'; -import { noop } from '../../../utils/misc'; import { PYTHON_PATH } from '../../common'; suite('Terminal - Code Execution', () => { diff --git a/src/test/unittests/argsService.test.ts b/src/test/unittests/argsService.test.ts index 256b8110eab7..3be5899ce634 100644 --- a/src/test/unittests/argsService.test.ts +++ b/src/test/unittests/argsService.test.ts @@ -10,13 +10,13 @@ import { expect } from 'chai'; import { spawnSync } from 'child_process'; import * as typeMoq from 'typemoq'; import { ILogger, Product } from '../../client/common/types'; +import { getNamesAndValues } from '../../client/common/utils/enum'; import { IServiceContainer } from '../../client/ioc/types'; import { ArgumentsHelper } from '../../client/unittests/common/argumentsHelper'; import { ArgumentsService as NoseTestArgumentsService } from '../../client/unittests/nosetest/services/argsService'; import { ArgumentsService as PyTestArgumentsService } from '../../client/unittests/pytest/services/argsService'; import { IArgumentsHelper, IArgumentsService } from '../../client/unittests/types'; import { ArgumentsService as UnitTestArgumentsService } from '../../client/unittests/unittest/services/argsService'; -import { getNamesAndValues } from '../../utils/enum'; import { PYTHON_PATH } from '../common'; suite('ArgsService: Common', () => { diff --git a/src/test/unittests/common/managers/testConfigurationManager.unit.test.ts b/src/test/unittests/common/managers/testConfigurationManager.unit.test.ts index 553ad94760bb..b646dc810de6 100644 --- a/src/test/unittests/common/managers/testConfigurationManager.unit.test.ts +++ b/src/test/unittests/common/managers/testConfigurationManager.unit.test.ts @@ -8,11 +8,11 @@ import * as TypeMoq from 'typemoq'; import { OutputChannel, Uri } from 'vscode'; import { IInstaller, IOutputChannel, Product } from '../../../../client/common/types'; +import { getNamesAndValues } from '../../../../client/common/utils/enum'; import { IServiceContainer } from '../../../../client/ioc/types'; import { TEST_OUTPUT_CHANNEL } from '../../../../client/unittests/common/constants'; import { TestConfigurationManager } from '../../../../client/unittests/common/managers/testConfigurationManager'; import { ITestConfigSettingsService, UnitTestProduct } from '../../../../client/unittests/common/types'; -import { getNamesAndValues } from '../../../../utils/enum'; class MockTestConfigurationManager extends TestConfigurationManager { public requiresUserToConfigure(wkspace: Uri): Promise { diff --git a/src/test/unittests/common/services/configSettingService.unit.test.ts b/src/test/unittests/common/services/configSettingService.unit.test.ts index 56f5a51538e2..f469bc6ce66b 100644 --- a/src/test/unittests/common/services/configSettingService.unit.test.ts +++ b/src/test/unittests/common/services/configSettingService.unit.test.ts @@ -11,10 +11,10 @@ import * as typeMoq from 'typemoq'; import { Uri, WorkspaceConfiguration, WorkspaceFolder } from 'vscode'; import { IWorkspaceService } from '../../../../client/common/application/types'; import { Product } from '../../../../client/common/types'; +import { getNamesAndValues } from '../../../../client/common/utils/enum'; import { IServiceContainer } from '../../../../client/ioc/types'; import { TestConfigSettingsService } from '../../../../client/unittests/common/services/configSettingService'; import { ITestConfigSettingsService, UnitTestProduct } from '../../../../client/unittests/common/types'; -import { getNamesAndValues } from '../../../../utils/enum'; use(chaiPromise); diff --git a/src/test/unittests/configuration.unit.test.ts b/src/test/unittests/configuration.unit.test.ts index 4833aed62d20..cc89f4bfa76c 100644 --- a/src/test/unittests/configuration.unit.test.ts +++ b/src/test/unittests/configuration.unit.test.ts @@ -10,12 +10,12 @@ import * as typeMoq from 'typemoq'; import { OutputChannel, Uri, WorkspaceConfiguration } from 'vscode'; import { IApplicationShell, IWorkspaceService } from '../../client/common/application/types'; import { IConfigurationService, IInstaller, IOutputChannel, IPythonSettings, IUnitTestSettings, Product } from '../../client/common/types'; +import { getNamesAndValues } from '../../client/common/utils/enum'; import { IServiceContainer } from '../../client/ioc/types'; import { TEST_OUTPUT_CHANNEL } from '../../client/unittests/common/constants'; import { UnitTestProduct } from '../../client/unittests/common/types'; import { UnitTestConfigurationService } from '../../client/unittests/configuration'; import { ITestConfigurationManager, ITestConfigurationManagerFactory } from '../../client/unittests/types'; -import { getNamesAndValues } from '../../utils/enum'; suite('Unit Tests - ConfigurationService', () => { [Product.pytest, Product.unittest, Product.nosetest].forEach(prodItem => { diff --git a/src/test/unittests/debugger.test.ts b/src/test/unittests/debugger.test.ts index ac090f3ecb29..fa58b6b308ee 100644 --- a/src/test/unittests/debugger.test.ts +++ b/src/test/unittests/debugger.test.ts @@ -2,6 +2,7 @@ import { assert, expect, use } from 'chai'; import * as chaiAsPromised from 'chai-as-promised'; import * as path from 'path'; import { ConfigurationTarget } from 'vscode'; +import { createDeferred } from '../../client/common/utils/async'; import { TestManagerRunner as NoseTestManagerRunner } from '../../client/unittests//nosetest/runner'; import { TestManagerRunner as PytestManagerRunner } from '../../client/unittests//pytest/runner'; import { TestManagerRunner as UnitTestTestManagerRunner } from '../../client/unittests//unittest/runner'; @@ -15,7 +16,6 @@ import { ArgumentsService as PyTestArgumentsService } from '../../client/unittes import { IArgumentsHelper, IArgumentsService, ITestManagerRunner, IUnitTestHelper } from '../../client/unittests/types'; import { UnitTestHelper } from '../../client/unittests/unittest/helper'; import { ArgumentsService as UnitTestArgumentsService } from '../../client/unittests/unittest/services/argsService'; -import { createDeferred } from '../../utils/async'; import { deleteDirectory, rootWorkspaceUri, updateSetting } from '../common'; import { initialize, initializeTest, IS_MULTI_ROOT_TEST } from './../initialize'; import { MockDebugLauncher } from './mocks'; diff --git a/src/test/unittests/display/main.test.ts b/src/test/unittests/display/main.test.ts index d094206ee769..305de972395c 100644 --- a/src/test/unittests/display/main.test.ts +++ b/src/test/unittests/display/main.test.ts @@ -11,12 +11,12 @@ import { StatusBarItem, Uri } from 'vscode'; import { IApplicationShell } from '../../../client/common/application/types'; import { Commands } from '../../../client/common/constants'; import { IConfigurationService, IPythonSettings, IUnitTestSettings } from '../../../client/common/types'; +import { createDeferred } from '../../../client/common/utils/async'; +import { noop } from '../../../client/common/utils/misc'; import { IServiceContainer } from '../../../client/ioc/types'; import { CANCELLATION_REASON } from '../../../client/unittests/common/constants'; import { ITestsHelper, Tests } from '../../../client/unittests/common/types'; import { TestResultDisplay } from '../../../client/unittests/display/main'; -import { createDeferred } from '../../../utils/async'; -import { noop } from '../../../utils/misc'; import { sleep } from '../../core'; suite('Unit Tests - TestResultDisplay', () => { diff --git a/src/test/unittests/mocks.ts b/src/test/unittests/mocks.ts index 6b9d31055d32..5d837dedfe76 100644 --- a/src/test/unittests/mocks.ts +++ b/src/test/unittests/mocks.ts @@ -2,11 +2,11 @@ import { EventEmitter } from 'events'; import { injectable } from 'inversify'; import { CancellationToken, Disposable, Uri } from 'vscode'; import { Product } from '../../client/common/types'; +import { createDeferred, Deferred } from '../../client/common/utils/async'; import { IServiceContainer } from '../../client/ioc/types'; import { CANCELLATION_REASON } from '../../client/unittests/common/constants'; import { BaseTestManager } from '../../client/unittests/common/managers/baseTestManager'; import { ITestDebugLauncher, ITestDiscoveryService, IUnitTestSocketServer, LaunchOptions, TestDiscoveryOptions, TestProvider, Tests, TestsToRun } from '../../client/unittests/common/types'; -import { createDeferred, Deferred } from '../../utils/async'; @injectable() export class MockDebugLauncher implements ITestDebugLauncher, Disposable { diff --git a/src/test/unittests/pytest/pytest.testparser.unit.test.ts b/src/test/unittests/pytest/pytest.testparser.unit.test.ts index bbd3eb48948f..9feafcd71764 100644 --- a/src/test/unittests/pytest/pytest.testparser.unit.test.ts +++ b/src/test/unittests/pytest/pytest.testparser.unit.test.ts @@ -8,12 +8,12 @@ import * as chaipromise from 'chai-as-promised'; import * as typeMoq from 'typemoq'; import { CancellationToken, OutputChannel, Uri } from 'vscode'; import { IApplicationShell, ICommandManager } from '../../../client/common/application/types'; +import { getOSType, OSType } from '../../../client/common/utils/platform'; import { IServiceContainer } from '../../../client/ioc/types'; import { TestsHelper } from '../../../client/unittests/common/testUtils'; import { TestFlatteningVisitor } from '../../../client/unittests/common/testVisitors/flatteningVisitor'; import { FlattenedTestFunction, TestDiscoveryOptions, Tests } from '../../../client/unittests/common/types'; import { TestsParser as PyTestsParser } from '../../../client/unittests/pytest/services/parserService'; -import { getOSType, OSType } from '../../../utils/platform'; import { PytestDataPlatformType, pytestScenarioData } from './pytest_unittest_parser_data'; use(chaipromise); diff --git a/src/test/unittests/stoppingDiscoverAndTest.test.ts b/src/test/unittests/stoppingDiscoverAndTest.test.ts index 2d662c01d513..502011791b16 100644 --- a/src/test/unittests/stoppingDiscoverAndTest.test.ts +++ b/src/test/unittests/stoppingDiscoverAndTest.test.ts @@ -6,9 +6,9 @@ import * as chaiAsPromised from 'chai-as-promised'; import * as path from 'path'; import { Uri } from 'vscode'; import { Product } from '../../client/common/types'; +import { createDeferred } from '../../client/common/utils/async'; import { CANCELLATION_REASON, CommandSource, UNITTEST_PROVIDER } from '../../client/unittests/common/constants'; import { ITestDiscoveryService } from '../../client/unittests/common/types'; -import { createDeferred } from '../../utils/async'; import { initialize, initializeTest } from '../initialize'; import { MockDiscoveryService, MockTestManagerWithRunningTests } from './mocks'; import { UnitTestIocContainer } from './serviceRegistry'; diff --git a/src/test/utils/async.unit.test.ts b/src/test/utils/async.unit.test.ts index 966d2ee930c5..1a2701bd6580 100644 --- a/src/test/utils/async.unit.test.ts +++ b/src/test/utils/async.unit.test.ts @@ -4,7 +4,7 @@ 'use strict'; import * as assert from 'assert'; -import { createDeferred } from '../../utils/async'; +import { createDeferred } from '../../client/common/utils/async'; suite('Deferred', () => { test('Resolve', done => { diff --git a/src/test/utils/platform.unit.test.ts b/src/test/utils/platform.unit.test.ts index 2bf1a5f19f86..52785532681d 100644 --- a/src/test/utils/platform.unit.test.ts +++ b/src/test/utils/platform.unit.test.ts @@ -5,14 +5,14 @@ import { expect } from 'chai'; import * as semver from 'semver'; -import { Stub } from '../../test/stub'; import { getInfo, getOSType, Info, is64bit, isLinux, isMac, isWindows, matchPlatform, OSDistro, OSType -} from '../../utils/platform'; -import { parseVersion } from '../../utils/version'; +} from '../../client/common/utils/platform'; +import { parseVersion } from '../../client/common/utils/version'; +import { Stub } from '../../test/stub'; // Windows export const WIN_10 = new Info( diff --git a/src/test/utils/string.unit.test.ts b/src/test/utils/string.unit.test.ts index 2390f31d23f2..33dc921f9962 100644 --- a/src/test/utils/string.unit.test.ts +++ b/src/test/utils/string.unit.test.ts @@ -6,7 +6,7 @@ // tslint:disable:max-func-body-length no-any no-require-imports no-var-requires import { expect } from 'chai'; -import { splitParent } from '../../utils/string'; +import { splitParent } from '../../client/common/utils/string'; suite('splitParent()', () => { test('valid values', async () => { diff --git a/src/test/utils/text.unit.test.ts b/src/test/utils/text.unit.test.ts index 2becbb1d2b44..12639fe5b734 100644 --- a/src/test/utils/text.unit.test.ts +++ b/src/test/utils/text.unit.test.ts @@ -7,7 +7,7 @@ import { expect } from 'chai'; import { Position, Range } from 'vscode'; -import { parsePosition, parseRange } from '../../utils/text'; +import { parsePosition, parseRange } from '../../client/common/utils/text'; suite('parseRange()', () => { test('valid strings', async () => { diff --git a/src/test/utils/version.unit.test.ts b/src/test/utils/version.unit.test.ts index f3268f244d57..94fa3cdb018b 100644 --- a/src/test/utils/version.unit.test.ts +++ b/src/test/utils/version.unit.test.ts @@ -6,7 +6,7 @@ // tslint:disable: no-any import * as assert from 'assert'; -import { compareVersion, convertToSemver } from '../../utils/version'; +import { compareVersion, convertToSemver } from '../../client/common/utils/version'; suite('Version Utils', () => { test('Must handle invalid versions', async () => { diff --git a/src/utils/text.ts b/src/utils/text.ts index 59359966db47..e93536720bee 100644 --- a/src/utils/text.ts +++ b/src/utils/text.ts @@ -4,7 +4,7 @@ 'use strict'; import { Position, Range, TextDocument } from 'vscode'; -import { isNumber } from './sysTypes'; +import { isNumber } from '../client/common/utils/sysTypes'; export function getWindowsLineEndingCount(document: TextDocument, offset: Number) { //const eolPattern = new RegExp('\r\n', 'g'); From 93fd97e3bba132df4a6f91fb11dece8cb7f80dff Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Tue, 2 Oct 2018 08:54:53 -0700 Subject: [PATCH 2/6] Add news entry --- news/3 Code Health/2748.MD | 1 + 1 file changed, 1 insertion(+) create mode 100644 news/3 Code Health/2748.MD diff --git a/news/3 Code Health/2748.MD b/news/3 Code Health/2748.MD new file mode 100644 index 000000000000..545ff063776a --- /dev/null +++ b/news/3 Code Health/2748.MD @@ -0,0 +1 @@ +Move contents of the folder `src/utils` into `src/client/common/utils`. From 60ab9c93cde118572c7fc6ed0fad777c342331e1 Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Tue, 9 Oct 2018 13:46:44 -0700 Subject: [PATCH 3/6] Moved files into common/utils --- src/{ => client/common}/utils/localize.ts | 8 +- src/utils/text.ts | 113 ---------------------- 2 files changed, 4 insertions(+), 117 deletions(-) rename src/{ => client/common}/utils/localize.ts (90%) delete mode 100644 src/utils/text.ts diff --git a/src/utils/localize.ts b/src/client/common/utils/localize.ts similarity index 90% rename from src/utils/localize.ts rename to src/client/common/utils/localize.ts index 0602dd9dd705..3c032104cbe8 100644 --- a/src/utils/localize.ts +++ b/src/client/common/utils/localize.ts @@ -5,7 +5,7 @@ import * as fs from 'fs'; import * as path from 'path'; -import { EXTENSION_ROOT_DIR } from '../client/common/constants'; +import { EXTENSION_ROOT_DIR } from '../constants'; // External callers of localize use these tables to retrieve localized values. export namespace LanguageServiceSurveyBanner { @@ -16,8 +16,8 @@ export namespace LanguageServiceSurveyBanner { // Skip using vscode-nls and instead just compute our strings based on key values. Key values // can be loaded out of the nls..json files -let loadedCollection: { [index: string]: string } | undefined ; -let defaultCollection: { [index: string]: string } | undefined ; +let loadedCollection: { [index: string]: string } | undefined; +let defaultCollection: { [index: string]: string } | undefined; let loadedLocale: string; function localize(key: string, defValue: string) { @@ -27,7 +27,7 @@ function localize(key: string, defValue: string) { }; } -function parseLocale() : string { +function parseLocale(): string { // Attempt to load from the vscode locale. If not there, use english const vscodeConfigString = process.env.VSCODE_NLS_CONFIG; return vscodeConfigString ? JSON.parse(vscodeConfigString).locale : 'en-us'; diff --git a/src/utils/text.ts b/src/utils/text.ts deleted file mode 100644 index e93536720bee..000000000000 --- a/src/utils/text.ts +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -'use strict'; - -import { Position, Range, TextDocument } from 'vscode'; -import { isNumber } from '../client/common/utils/sysTypes'; - -export function getWindowsLineEndingCount(document: TextDocument, offset: Number) { - //const eolPattern = new RegExp('\r\n', 'g'); - const eolPattern = /\r\n/g; - const readBlock = 1024; - let count = 0; - let offsetDiff = offset.valueOf(); - - // In order to prevent the one-time loading of large files from taking up too much memory - for (let pos = 0; pos < offset; pos += readBlock) { - const startAt = document.positionAt(pos); - - let endAt: Position; - if (offsetDiff >= readBlock) { - endAt = document.positionAt(pos + readBlock); - offsetDiff = offsetDiff - readBlock; - } else { - endAt = document.positionAt(pos + offsetDiff); - } - - const text = document.getText(new Range(startAt, endAt!)); - const cr = text.match(eolPattern); - - count += cr ? cr.length : 0; - } - return count; -} - -/** - * Return the range represented by the given string. - * - * If a number is provided then it is used as both lines and the - * character are set to 0. - * - * Examples: - * '1:5-3:5' -> Range(1, 5, 3, 5) - * '1-3' -> Range(1, 0, 3, 0) - * '1:3-1:5' -> Range(1, 3, 1, 5) - * '1-1' -> Range(1, 0, 1, 0) - * '1' -> Range(1, 0, 1, 0) - * '1:3-' -> Range(1, 3, 1, 0) - * '1:3' -> Range(1, 3, 1, 0) - * '' -> Range(0, 0, 0, 0) - * '3-1' -> Range(1, 0, 3, 0) - */ -export function parseRange(raw: string | number): Range { - if (isNumber(raw)) { - return new Range(raw, 0, raw, 0); - } - if (raw === '') { - return new Range(0, 0, 0, 0); - } - - const parts = raw.split('-'); - if (parts.length > 2) { - throw new Error(`invalid range ${raw}`); - } - - const start = parsePosition(parts[0]); - let end = start; - if (parts.length === 2) { - end = parsePosition(parts[1]); - } - return new Range(start, end); -} - -/** - * Return the line/column represented by the given string. - * - * If a number is provided then it is used as the line and the character - * is set to 0. - * - * Examples: - * '1:5' -> Position(1, 5) - * '1' -> Position(1, 0) - * '' -> Position(0, 0) - */ -export function parsePosition(raw: string | number): Position { - if (isNumber(raw)) { - return new Position(raw, 0); - } - if (raw === '') { - return new Position(0, 0); - } - - const parts = raw.split(':'); - if (parts.length > 2) { - throw new Error(`invalid position ${raw}`); - } - - let line = 0; - if (parts[0] !== '') { - if (!/^\d+$/.test(parts[0])) { - throw new Error(`invalid position ${raw}`); - } - line = +parts[0]; - } - let col = 0; - if (parts.length === 2 && parts[1] !== '') { - if (!/^\d+$/.test(parts[1])) { - throw new Error(`invalid position ${raw}`); - } - col = +parts[1]; - } - return new Position(line, col); -} From c5c3505df22e89f7dacb4eced20699eab182df54 Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Tue, 9 Oct 2018 13:48:48 -0700 Subject: [PATCH 4/6] Fixed merge issues --- src/client/languageServices/languageServerSurveyBanner.ts | 2 +- .../diagnostics/checks/pythonInterpreter.unit.test.ts | 2 +- src/test/common/localize.unit.test.ts | 6 +++--- src/test/common/terminals/activation.conda.unit.test.ts | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/client/languageServices/languageServerSurveyBanner.ts b/src/client/languageServices/languageServerSurveyBanner.ts index 9ae188cc7b83..fea320ddbe63 100644 --- a/src/client/languageServices/languageServerSurveyBanner.ts +++ b/src/client/languageServices/languageServerSurveyBanner.ts @@ -4,7 +4,6 @@ 'use strict'; import { inject, injectable } from 'inversify'; -import * as localize from '../../utils/localize'; import { FolderVersionPair, ILanguageServerFolderService } from '../activation/types'; import { IApplicationShell } from '../common/application/types'; import '../common/extensions'; @@ -12,6 +11,7 @@ import { IBrowserService, IPersistentStateFactory, IPythonExtensionBanner } from '../common/types'; +import * as localize from '../common/utils/localize'; import { getRandomBetween } from '../common/utils/random'; // persistent state names, exported to make use of in testing diff --git a/src/test/application/diagnostics/checks/pythonInterpreter.unit.test.ts b/src/test/application/diagnostics/checks/pythonInterpreter.unit.test.ts index 4a8ad932a6c0..8a87db810404 100644 --- a/src/test/application/diagnostics/checks/pythonInterpreter.unit.test.ts +++ b/src/test/application/diagnostics/checks/pythonInterpreter.unit.test.ts @@ -16,9 +16,9 @@ import { IDiagnostic, IDiagnosticCommand, IDiagnosticHandlerService, IDiagnostic import { IWorkspaceService } from '../../../../client/common/application/types'; import { IPlatformService } from '../../../../client/common/platform/types'; import { IConfigurationService, IDisposableRegistry, IPythonSettings } from '../../../../client/common/types'; +import { noop } from '../../../../client/common/utils/misc'; import { IInterpreterHelper, IInterpreterService, InterpreterType } from '../../../../client/interpreter/contracts'; import { IServiceContainer } from '../../../../client/ioc/types'; -import { noop } from '../../../../utils/misc'; import { sleep } from '../../../core'; suite('Application Diagnostics - Checks Python Interpreter', () => { diff --git a/src/test/common/localize.unit.test.ts b/src/test/common/localize.unit.test.ts index 02b0e08817a1..34f9f373d0b6 100644 --- a/src/test/common/localize.unit.test.ts +++ b/src/test/common/localize.unit.test.ts @@ -4,13 +4,13 @@ 'use strict'; import * as assert from 'assert'; -import * as localize from '../../utils/localize'; +import { LanguageServiceSurveyBanner } from '../../client/common/utils/localize'; // Defines a Mocha test suite to group tests of similar kind together suite('localize tests', () => { test('keys', done => { - const val = localize.LanguageServiceSurveyBanner.bannerMessage(); + const val = LanguageServiceSurveyBanner.bannerMessage(); assert.equal(val, 'Can you please take 2 minutes to tell us how the Python Language Server is working for you?', 'LanguageServiceSurveyBanner string doesnt match'); done(); }); @@ -19,7 +19,7 @@ suite('localize tests', () => { // Force a config change process.env.VSCODE_NLS_CONFIG = '{ "locale": "it" }'; - const val = localize.LanguageServiceSurveyBanner.bannerLabelYes(); + const val = LanguageServiceSurveyBanner.bannerLabelYes(); assert.equal(val, 'Sì, prenderò il sondaggio ora', 'bannerLabelYes is not being translated'); done(); }); diff --git a/src/test/common/terminals/activation.conda.unit.test.ts b/src/test/common/terminals/activation.conda.unit.test.ts index 44b6fb6e8b4d..7b94593f06b3 100644 --- a/src/test/common/terminals/activation.conda.unit.test.ts +++ b/src/test/common/terminals/activation.conda.unit.test.ts @@ -26,6 +26,7 @@ import { IConfigurationService, IDisposableRegistry, IPythonSettings, ITerminalSettings } from '../../../client/common/types'; +import { getNamesAndValues } from '../../../client/common/utils/enum'; import { ICondaService } from '../../../client/interpreter/contracts'; import { IServiceContainer } from '../../../client/ioc/types'; From 4dea113b177f8e529a42abaed1b8c03eee3cf378 Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Tue, 9 Oct 2018 13:50:16 -0700 Subject: [PATCH 5/6] Move tests for utils --- src/test/{ => common}/utils/async.unit.test.ts | 2 +- src/test/{ => common}/utils/platform.unit.test.ts | 6 +++--- src/test/{ => common}/utils/string.unit.test.ts | 2 +- src/test/{ => common}/utils/text.unit.test.ts | 2 +- src/test/{ => common}/utils/version.unit.test.ts | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) rename src/test/{ => common}/utils/async.unit.test.ts (96%) rename src/test/{ => common}/utils/platform.unit.test.ts (98%) rename src/test/{ => common}/utils/string.unit.test.ts (90%) rename src/test/{ => common}/utils/text.unit.test.ts (97%) rename src/test/{ => common}/utils/version.unit.test.ts (92%) diff --git a/src/test/utils/async.unit.test.ts b/src/test/common/utils/async.unit.test.ts similarity index 96% rename from src/test/utils/async.unit.test.ts rename to src/test/common/utils/async.unit.test.ts index 1a2701bd6580..72c8ed887481 100644 --- a/src/test/utils/async.unit.test.ts +++ b/src/test/common/utils/async.unit.test.ts @@ -4,7 +4,7 @@ 'use strict'; import * as assert from 'assert'; -import { createDeferred } from '../../client/common/utils/async'; +import { createDeferred } from '../../../client/common/utils/async'; suite('Deferred', () => { test('Resolve', done => { diff --git a/src/test/utils/platform.unit.test.ts b/src/test/common/utils/platform.unit.test.ts similarity index 98% rename from src/test/utils/platform.unit.test.ts rename to src/test/common/utils/platform.unit.test.ts index 52785532681d..314fa2cfa078 100644 --- a/src/test/utils/platform.unit.test.ts +++ b/src/test/common/utils/platform.unit.test.ts @@ -10,9 +10,9 @@ import { is64bit, isLinux, isMac, isWindows, matchPlatform, OSDistro, OSType -} from '../../client/common/utils/platform'; -import { parseVersion } from '../../client/common/utils/version'; -import { Stub } from '../../test/stub'; +} from '../../../client/common/utils/platform'; +import { parseVersion } from '../../../client/common/utils/version'; +import { Stub } from '../../stub'; // Windows export const WIN_10 = new Info( diff --git a/src/test/utils/string.unit.test.ts b/src/test/common/utils/string.unit.test.ts similarity index 90% rename from src/test/utils/string.unit.test.ts rename to src/test/common/utils/string.unit.test.ts index 33dc921f9962..da0347330cef 100644 --- a/src/test/utils/string.unit.test.ts +++ b/src/test/common/utils/string.unit.test.ts @@ -6,7 +6,7 @@ // tslint:disable:max-func-body-length no-any no-require-imports no-var-requires import { expect } from 'chai'; -import { splitParent } from '../../client/common/utils/string'; +import { splitParent } from '../../../client/common/utils/string'; suite('splitParent()', () => { test('valid values', async () => { diff --git a/src/test/utils/text.unit.test.ts b/src/test/common/utils/text.unit.test.ts similarity index 97% rename from src/test/utils/text.unit.test.ts rename to src/test/common/utils/text.unit.test.ts index 12639fe5b734..c8d0c10d8fd4 100644 --- a/src/test/utils/text.unit.test.ts +++ b/src/test/common/utils/text.unit.test.ts @@ -7,7 +7,7 @@ import { expect } from 'chai'; import { Position, Range } from 'vscode'; -import { parsePosition, parseRange } from '../../client/common/utils/text'; +import { parsePosition, parseRange } from '../../../client/common/utils/text'; suite('parseRange()', () => { test('valid strings', async () => { diff --git a/src/test/utils/version.unit.test.ts b/src/test/common/utils/version.unit.test.ts similarity index 92% rename from src/test/utils/version.unit.test.ts rename to src/test/common/utils/version.unit.test.ts index 94fa3cdb018b..e78b837da17c 100644 --- a/src/test/utils/version.unit.test.ts +++ b/src/test/common/utils/version.unit.test.ts @@ -6,7 +6,7 @@ // tslint:disable: no-any import * as assert from 'assert'; -import { compareVersion, convertToSemver } from '../../client/common/utils/version'; +import { compareVersion, convertToSemver } from '../../../client/common/utils/version'; suite('Version Utils', () => { test('Must handle invalid versions', async () => { From aa1956252900cd59e9d57ac671356a57081b0fb8 Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Tue, 9 Oct 2018 13:51:00 -0700 Subject: [PATCH 6/6] Fixed merge issues --- src/test/activation/activationService.unit.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/activation/activationService.unit.test.ts b/src/test/activation/activationService.unit.test.ts index 6dd735b7e4b8..88e1c2077128 100644 --- a/src/test/activation/activationService.unit.test.ts +++ b/src/test/activation/activationService.unit.test.ts @@ -26,7 +26,7 @@ import { } from '../../client/common/types'; import { Info as PlatformInfo } from '../../client/common/utils/platform'; import { IServiceContainer } from '../../client/ioc/types'; -import * as testOSInfos from '../utils/platform.unit.test'; +import * as testOSInfos from '../common/utils/platform.unit.test'; suite('Activation - ActivationService', () => { [true, false].forEach(jediIsEnabled => {