diff --git a/src/client/common/configSettings.ts b/src/client/common/configSettings.ts index 3e3525d5b2a4..db5944cc794b 100644 --- a/src/client/common/configSettings.ts +++ b/src/client/common/configSettings.ts @@ -23,7 +23,6 @@ import { ITestingSettings } from '../testing/configuration/types'; import { IWorkspaceService } from './application/types'; import { WorkspaceService } from './application/workspace'; import { DEFAULT_INTERPRETER_SETTING, isTestExecution } from './constants'; -import { IS_WINDOWS } from './platform/constants'; import { IAutoCompleteSettings, IDefaultLanguageServer, @@ -41,6 +40,7 @@ import { import { debounceSync } from './utils/decorators'; import { SystemVariables } from './variables/systemVariables'; import { getOSType, OSType } from './utils/platform'; +import { isWindows } from './platform/platformService'; const untildify = require('untildify'); @@ -654,7 +654,7 @@ function getPythonExecutable(pythonPath: string): string { for (let executableName of KnownPythonExecutables) { // Suffix with 'python' for linux and 'osx', and 'python.exe' for 'windows'. - if (IS_WINDOWS) { + if (isWindows()) { executableName = `${executableName}.exe`; if (isValidPythonPath(path.join(pythonPath, executableName))) { return path.join(pythonPath, executableName); diff --git a/src/client/common/platform/constants.ts b/src/client/common/platform/constants.ts deleted file mode 100644 index 808a63188c1d..000000000000 --- a/src/client/common/platform/constants.ts +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// TODO : Drop all these in favor of IPlatformService. -// See https://github.com/microsoft/vscode-python/issues/8542. - -export const IS_WINDOWS = /^win/.test(process.platform); diff --git a/src/client/common/platform/platformService.ts b/src/client/common/platform/platformService.ts index 0277c1bcd2a2..aa139eeeebc0 100644 --- a/src/client/common/platform/platformService.ts +++ b/src/client/common/platform/platformService.ts @@ -50,8 +50,9 @@ export class PlatformService implements IPlatformService { } } + // eslint-disable-next-line class-methods-use-this public get isWindows(): boolean { - return this.osType === OSType.Windows; + return isWindows(); } public get isMac(): boolean { @@ -72,3 +73,7 @@ export class PlatformService implements IPlatformService { return getArchitecture() === Architecture.x64; } } + +export function isWindows(): boolean { + return getOSType() === OSType.Windows; +} diff --git a/src/client/common/serviceRegistry.ts b/src/client/common/serviceRegistry.ts index 5b527499460a..be0559496ace 100644 --- a/src/client/common/serviceRegistry.ts +++ b/src/client/common/serviceRegistry.ts @@ -57,7 +57,6 @@ import { ProductInstaller } from './installer/productInstaller'; import { InterpreterPathService } from './interpreterPathService'; import { BrowserService } from './net/browser'; import { PersistentStateFactory } from './persistentState'; -import { IS_WINDOWS } from './platform/constants'; import { PathUtils } from './platform/pathUtils'; import { CurrentProcess } from './process/currentProcess'; import { ProcessLogger } from './process/logger'; @@ -91,9 +90,10 @@ import { Random } from './utils/random'; import { ContextKeyManager } from './application/contextKeyManager'; import { CreatePythonFileCommandHandler } from './application/commands/createPythonFile'; import { RequireJupyterPrompt } from '../jupyter/requireJupyterPrompt'; +import { isWindows } from './platform/platformService'; export function registerTypes(serviceManager: IServiceManager): void { - serviceManager.addSingletonInstance(IsWindows, IS_WINDOWS); + serviceManager.addSingletonInstance(IsWindows, isWindows()); serviceManager.addSingleton(IActiveResourceService, ActiveResourceService); serviceManager.addSingleton(IInterpreterPathService, InterpreterPathService); diff --git a/src/client/linters/pydocstyle.ts b/src/client/linters/pydocstyle.ts index 93c059440fe7..4851190a92ac 100644 --- a/src/client/linters/pydocstyle.ts +++ b/src/client/linters/pydocstyle.ts @@ -4,9 +4,9 @@ import '../common/extensions'; import { Product } from '../common/types'; import { IServiceContainer } from '../ioc/types'; import { traceError } from '../logging'; -import { IS_WINDOWS } from '../common/platform/constants'; import { BaseLinter } from './baseLinter'; import { ILintMessage, LintMessageSeverity } from './types'; +import { isWindows } from '../common/platform/platformService'; export class PyDocStyle extends BaseLinter { constructor(serviceContainer: IServiceContainer) { @@ -47,7 +47,7 @@ export class PyDocStyle extends BaseLinter { .filter((value, index) => index < maxLines && value.indexOf(':') >= 0) .map((line) => { // Windows will have a : after the drive letter (e.g. c:\). - if (IS_WINDOWS) { + if (isWindows()) { return line.substring(line.indexOf(`${baseFileName}:`) + baseFileName.length + 1).trim(); } return line.substring(line.indexOf(':') + 1).trim(); diff --git a/src/test/common/configSettings.test.ts b/src/test/common/configSettings.test.ts index 75c20f512bbe..8630835081e2 100644 --- a/src/test/common/configSettings.test.ts +++ b/src/test/common/configSettings.test.ts @@ -1,10 +1,10 @@ import * as assert from 'assert'; import * as path from 'path'; import * as vscode from 'vscode'; -import { IS_WINDOWS } from '../../client/common/platform/constants'; import { SystemVariables } from '../../client/common/variables/systemVariables'; import { getExtensionSettings } from '../extensionSettings'; import { initialize } from './../initialize'; +import { isWindows } from '../../client/common/platform/platformService'; const workspaceRoot = path.join(__dirname, '..', '..', '..', 'src', 'test'); @@ -27,7 +27,7 @@ suite('Configuration Settings', () => { } const pythonSettingValue = (pythonSettings as any)[key] as string; - if (key.endsWith('Path') && IS_WINDOWS) { + if (key.endsWith('Path') && isWindows()) { assert.strictEqual( settingValue.toUpperCase(), pythonSettingValue.toUpperCase(), diff --git a/src/test/serviceRegistry.ts b/src/test/serviceRegistry.ts index 1b8a9d78d580..c20a84b1e25a 100644 --- a/src/test/serviceRegistry.ts +++ b/src/test/serviceRegistry.ts @@ -5,10 +5,9 @@ import { Container } from 'inversify'; import { anything, instance, mock, when } from 'ts-mockito'; import * as TypeMoq from 'typemoq'; import { Disposable, Memento } from 'vscode'; -import { IS_WINDOWS } from '../client/common/platform/constants'; import { FileSystem } from '../client/common/platform/fileSystem'; import { PathUtils } from '../client/common/platform/pathUtils'; -import { PlatformService } from '../client/common/platform/platformService'; +import { PlatformService, isWindows } from '../client/common/platform/platformService'; import { RegistryImplementation } from '../client/common/platform/registry'; import { registerTypes as platformRegisterTypes } from '../client/common/platform/serviceRegistry'; import { IFileSystem, IPlatformService, IRegistry } from '../client/common/platform/types'; @@ -195,7 +194,7 @@ export class IocContainer { } public registerMockProcess(): void { - this.serviceManager.addSingletonInstance(IsWindows, IS_WINDOWS); + this.serviceManager.addSingletonInstance(IsWindows, isWindows()); this.serviceManager.addSingleton(IPathUtils, PathUtils); this.serviceManager.addSingleton(ICurrentProcess, MockProcess);