Skip to content

Commit b0da28c

Browse files
authored
Remove IS_WINDOWS constant in favor of PlatformService (#21157)
Solves partially #8542
1 parent 0c4fa40 commit b0da28c

File tree

7 files changed

+16
-19
lines changed

7 files changed

+16
-19
lines changed

src/client/common/configSettings.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import { ITestingSettings } from '../testing/configuration/types';
2323
import { IWorkspaceService } from './application/types';
2424
import { WorkspaceService } from './application/workspace';
2525
import { DEFAULT_INTERPRETER_SETTING, isTestExecution } from './constants';
26-
import { IS_WINDOWS } from './platform/constants';
2726
import {
2827
IAutoCompleteSettings,
2928
IDefaultLanguageServer,
@@ -41,6 +40,7 @@ import {
4140
import { debounceSync } from './utils/decorators';
4241
import { SystemVariables } from './variables/systemVariables';
4342
import { getOSType, OSType } from './utils/platform';
43+
import { isWindows } from './platform/platformService';
4444

4545
const untildify = require('untildify');
4646

@@ -654,7 +654,7 @@ function getPythonExecutable(pythonPath: string): string {
654654

655655
for (let executableName of KnownPythonExecutables) {
656656
// Suffix with 'python' for linux and 'osx', and 'python.exe' for 'windows'.
657-
if (IS_WINDOWS) {
657+
if (isWindows()) {
658658
executableName = `${executableName}.exe`;
659659
if (isValidPythonPath(path.join(pythonPath, executableName))) {
660660
return path.join(pythonPath, executableName);

src/client/common/platform/constants.ts

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/client/common/platform/platformService.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,9 @@ export class PlatformService implements IPlatformService {
5050
}
5151
}
5252

53+
// eslint-disable-next-line class-methods-use-this
5354
public get isWindows(): boolean {
54-
return this.osType === OSType.Windows;
55+
return isWindows();
5556
}
5657

5758
public get isMac(): boolean {
@@ -72,3 +73,7 @@ export class PlatformService implements IPlatformService {
7273
return getArchitecture() === Architecture.x64;
7374
}
7475
}
76+
77+
export function isWindows(): boolean {
78+
return getOSType() === OSType.Windows;
79+
}

src/client/common/serviceRegistry.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ import { ProductInstaller } from './installer/productInstaller';
5757
import { InterpreterPathService } from './interpreterPathService';
5858
import { BrowserService } from './net/browser';
5959
import { PersistentStateFactory } from './persistentState';
60-
import { IS_WINDOWS } from './platform/constants';
6160
import { PathUtils } from './platform/pathUtils';
6261
import { CurrentProcess } from './process/currentProcess';
6362
import { ProcessLogger } from './process/logger';
@@ -91,9 +90,10 @@ import { Random } from './utils/random';
9190
import { ContextKeyManager } from './application/contextKeyManager';
9291
import { CreatePythonFileCommandHandler } from './application/commands/createPythonFile';
9392
import { RequireJupyterPrompt } from '../jupyter/requireJupyterPrompt';
93+
import { isWindows } from './platform/platformService';
9494

9595
export function registerTypes(serviceManager: IServiceManager): void {
96-
serviceManager.addSingletonInstance<boolean>(IsWindows, IS_WINDOWS);
96+
serviceManager.addSingletonInstance<boolean>(IsWindows, isWindows());
9797

9898
serviceManager.addSingleton<IActiveResourceService>(IActiveResourceService, ActiveResourceService);
9999
serviceManager.addSingleton<IInterpreterPathService>(IInterpreterPathService, InterpreterPathService);

src/client/linters/pydocstyle.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import '../common/extensions';
44
import { Product } from '../common/types';
55
import { IServiceContainer } from '../ioc/types';
66
import { traceError } from '../logging';
7-
import { IS_WINDOWS } from '../common/platform/constants';
87
import { BaseLinter } from './baseLinter';
98
import { ILintMessage, LintMessageSeverity } from './types';
9+
import { isWindows } from '../common/platform/platformService';
1010

1111
export class PyDocStyle extends BaseLinter {
1212
constructor(serviceContainer: IServiceContainer) {
@@ -47,7 +47,7 @@ export class PyDocStyle extends BaseLinter {
4747
.filter((value, index) => index < maxLines && value.indexOf(':') >= 0)
4848
.map((line) => {
4949
// Windows will have a : after the drive letter (e.g. c:\).
50-
if (IS_WINDOWS) {
50+
if (isWindows()) {
5151
return line.substring(line.indexOf(`${baseFileName}:`) + baseFileName.length + 1).trim();
5252
}
5353
return line.substring(line.indexOf(':') + 1).trim();

src/test/common/configSettings.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import * as assert from 'assert';
22
import * as path from 'path';
33
import * as vscode from 'vscode';
4-
import { IS_WINDOWS } from '../../client/common/platform/constants';
54
import { SystemVariables } from '../../client/common/variables/systemVariables';
65
import { getExtensionSettings } from '../extensionSettings';
76
import { initialize } from './../initialize';
7+
import { isWindows } from '../../client/common/platform/platformService';
88

99
const workspaceRoot = path.join(__dirname, '..', '..', '..', 'src', 'test');
1010

@@ -27,7 +27,7 @@ suite('Configuration Settings', () => {
2727
}
2828

2929
const pythonSettingValue = (pythonSettings as any)[key] as string;
30-
if (key.endsWith('Path') && IS_WINDOWS) {
30+
if (key.endsWith('Path') && isWindows()) {
3131
assert.strictEqual(
3232
settingValue.toUpperCase(),
3333
pythonSettingValue.toUpperCase(),

src/test/serviceRegistry.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@ import { Container } from 'inversify';
55
import { anything, instance, mock, when } from 'ts-mockito';
66
import * as TypeMoq from 'typemoq';
77
import { Disposable, Memento } from 'vscode';
8-
import { IS_WINDOWS } from '../client/common/platform/constants';
98
import { FileSystem } from '../client/common/platform/fileSystem';
109
import { PathUtils } from '../client/common/platform/pathUtils';
11-
import { PlatformService } from '../client/common/platform/platformService';
10+
import { PlatformService, isWindows } from '../client/common/platform/platformService';
1211
import { RegistryImplementation } from '../client/common/platform/registry';
1312
import { registerTypes as platformRegisterTypes } from '../client/common/platform/serviceRegistry';
1413
import { IFileSystem, IPlatformService, IRegistry } from '../client/common/platform/types';
@@ -195,7 +194,7 @@ export class IocContainer {
195194
}
196195

197196
public registerMockProcess(): void {
198-
this.serviceManager.addSingletonInstance<boolean>(IsWindows, IS_WINDOWS);
197+
this.serviceManager.addSingletonInstance<boolean>(IsWindows, isWindows());
199198

200199
this.serviceManager.addSingleton<IPathUtils>(IPathUtils, PathUtils);
201200
this.serviceManager.addSingleton<ICurrentProcess>(ICurrentProcess, MockProcess);

0 commit comments

Comments
 (0)