terminalProfiles.ts ×14

Frontier kind: Code frontier

unlabeled · c_28f0972b0d5b

2 tests · 11288 LOC · 52 files · introduces 0 tests · 55 LOC · 1 file

Introduces — evidence that enters the hierarchy at this concept

Code
14 ranges55 lines · 1 files
Tests
0 tests

Contains — complete concept membership

All code (extent)
1292 ranges11288 lines · 52 files · Browse complete extent
All tests (intent)
2 testsBrowse complete intent

Neighbourhood graph

The orange circle is the focus. Violet and green circles are every ancestor and descendant, broader and narrower, at any distance; blue squares and pink diamonds are the introduced files and exact introduced tests of every visible concept, not only the focus's. Arrows point from broader to narrower concepts and bridge only concepts omitted from this view. Undirected links show source or test introduction. Concept and file size follows LOC; exact test nodes use test-count units.

Introduced files, introduced tests, and structurally relevant concept specialization

In the embedded map, ordinary wheel input scrolls the page; use the visible controls to zoom and drag to pan. Open the full-screen map for canvas navigation: wheel pans, Ctrl/Command plus wheel zooms, and arrow keys pan when this region is focused. On touch screens, open the full-screen map to pan or pinch. If JavaScript or WebGL is unavailable, use the native relationship evidence on this page.

Introduced files, introduced tests, and structurally relevant concept specializationptyHostService.ts ×54 · 735 introduced LOCptyHostService.ts ×54terminalProfiles.ts ×19 · 142 introduced LOCterminalProfiles.ts ×19powershell.ts ×16 · 103 introduced LOCpowershell.ts ×16processes.ts ×5 · 45 introduced LOCprocesses.ts ×5pfs.ts ×32 · 306 introduced LOCpfs.ts ×32async.ts ×1 · 7 introduced LOCasync.ts ×1async.ts ×202 · 1247 introduced LOCasync.ts ×202configuration.ts ×1 · 2 introduced LOCconfiguration.ts ×1configuration.ts ×3 · 13 introduced LOCconfiguration.ts ×3testConfigurationService.ts ×3 · 8 introduced LOCtestConfigurationService…ternarySearchTree.ts ×1 · 4 introduced LOCternarySearchTree.ts ×1testConfigurationService.ts ×10 · 40 introduced LOCtestConfigurationService…configuration.ts ×1 · 1 introduced LOCconfiguration.ts ×1configuration.ts ×2 · 3 introduced LOCconfiguration.ts ×2windowsVersion.ts ×6 · 48 introduced LOCwindowsVersion.ts ×6ternarySearchTree.ts ×1 · 2 introduced LOCternarySearchTree.ts ×1ternarySearchTree.ts ×1 · 3 introduced LOCternarySearchTree.ts ×1ternarySearchTree.ts ×60 · 193 introduced LOCternarySearchTree.ts ×60resources.ts ×23 · 253 introduced LOCresources.ts ×23network.ts ×20 · 292 introduced LOCnetwork.ts ×20strings.test|title=Strings trimWhitespace|occurrence=1 · 0 introduced LOCstrings.test|title=Strin…extpath.ts ×17 · 91 introduced LOCextpath.ts ×17strings.ts ×101 · 542 introduced LOCstrings.ts ×101configurationRegistry.ts ×40 · 487 introduced LOCconfigurationRegistry.ts…jsonContributionRegistry.ts ×9 · 100 introduced LOCjsonContributionRegistry…cancellation.test|title=CancellationToken None|occurrence=1 · 0 introduced LOCcancellation.test|title=…cancellation.ts ×18 · 90 introduced LOCcancellation.ts ×18lifecycle.ts ×2 · 3 introduced LOClifecycle.ts ×2event.ts ×1 · 1 introduced LOCevent.ts ×1event.ts ×4 · 9 introduced LOCevent.ts ×4event.ts ×2 · 4 introduced LOCevent.ts ×2event.ts ×2 · 6 introduced LOCevent.ts ×2event.ts ×93 · 864 introduced LOCevent.ts ×93terminal.ts ×4 · 1253 introduced LOCterminal.ts ×4configuration.ts ×12 · 203 introduced LOCconfiguration.ts ×12normalization.ts ×5 · 27 introduced LOCnormalization.ts ×5codicons.ts ×2 · 846 introduced LOCcodicons.ts ×2map.ts ×1 · 2 introduced LOCmap.ts ×1platform.ts ×1 · 2 introduced LOCplatform.ts ×1map.ts ×1 · 4 introduced LOCmap.ts ×1platform.ts ×1 · 6 introduced LOCplatform.ts ×1processes.ts ×2 · 112 introduced LOCprocesses.ts ×2types.test|title=Types isString|occurrence=1 · 0 introduced LOCtypes.test|title=Types i…map.ts ×1 · 6 introduced LOCmap.ts ×1uri.test|title=URI URI#file, win-speciale|occurrence=1, charCode.test|title=CharCode has good values|occurrence=1, +2 · 0 introduced LOCuri.test|title=URI URI#f…product.ts ×4 · 39 introduced LOCproduct.ts ×4utils.ts ×3 · 9 introduced LOCutils.ts ×3nls.ts ×1 · 1 introduced LOCnls.ts ×1linkedList.ts ×13 · 44 introduced LOClinkedList.ts ×13nls.ts ×6 · 13 introduced LOCnls.ts ×6objects.ts ×13 · 65 introduced LOCobjects.ts ×13instantiation.ts ×5 · 111 introduced LOCinstantiation.ts ×5platform.ts ×5 · 46 introduced LOCplatform.ts ×5types.ts ×1 · 2 introduced LOCtypes.ts ×1jsonSchema.ts ×3 · 194 introduced LOCjsonSchema.ts ×3lifecycle.ts ×2 · 4 introduced LOClifecycle.ts ×2types.ts ×1 · 2 introduced LOCtypes.ts ×1assert.ts ×2 · 2 introduced LOCassert.ts ×2lifecycle.ts ×1 · 3 introduced LOClifecycle.ts ×1lifecycle.ts ×3 · 9 introduced LOClifecycle.ts ×3types.ts ×2 · 5 introduced LOCtypes.ts ×2lifecycle.ts ×1 · 2 introduced LOClifecycle.ts ×1types.ts ×1 · 2 introduced LOCtypes.ts ×1lifecycle.ts ×4 · 8 introduced LOClifecycle.ts ×4lifecycle.ts ×6 · 16 introduced LOClifecycle.ts ×6lifecycle.ts ×2 · 2 introduced LOClifecycle.ts ×2lazy.ts ×1 · 2 introduced LOClazy.ts ×1lifecycle.ts ×1 · 3 introduced LOClifecycle.ts ×1lazy.ts ×3 · 37 introduced LOClazy.ts ×3lifecycle.ts ×1 · 2 introduced LOClifecycle.ts ×1lifecycle.ts ×1 · 2 introduced LOClifecycle.ts ×1uint.ts ×2 · 43 introduced LOCuint.ts ×2lifecycle.ts ×1 · 3 introduced LOClifecycle.ts ×1map.ts ×97 · 3334 introduced LOCmap.ts ×97src/vs/base/common/arrays.ts · 949 LOCcommon/arrays.tssrc/vs/base/common/arraysFind.ts · 226 LOCcommon/arraysFind.tssrc/vs/base/common/assert.ts · 91 LOCcommon/assert.tssrc/vs/base/common/async.ts · 2749 LOCcommon/async.tssrc/vs/base/common/cache.ts · 153 LOCcommon/cache.tssrc/vs/base/common/cancellation.ts · 206 LOCcommon/cancellation.tssrc/vs/base/common/charCode.ts · 450 LOCcommon/charCode.tssrc/vs/base/common/codicons.ts · 66 LOCcommon/codicons.tssrc/vs/base/common/codiconsLibrary.ts · 758 LOCcommon/codiconsLibrary.t…src/vs/base/common/codiconsUtil.ts · 28 LOCcommon/codiconsUtil.tssrc/vs/base/common/collections.ts · 176 LOCcommon/collections.tssrc/vs/base/common/errors.ts · 357 LOCcommon/errors.tssrc/vs/base/common/event.ts · 1964 LOCcommon/event.tssrc/vs/base/common/extpath.ts · 433 LOCcommon/extpath.tssrc/vs/base/common/functional.ts · 32 LOCcommon/functional.tssrc/vs/base/common/iterator.ts · 194 LOCcommon/iterator.tssrc/vs/base/common/jsonSchema.ts · 330 LOCcommon/jsonSchema.tssrc/vs/base/common/lazy.ts · 57 LOCcommon/lazy.tssrc/vs/base/common/lifecycle.ts · 974 LOCcommon/lifecycle.tssrc/vs/base/common/linkedList.ts · 151 LOCcommon/linkedList.tssrc/vs/base/common/map.ts · 1016 LOCcommon/map.tssrc/vs/base/common/marshallingIds.ts · 33 LOCcommon/marshallingIds.tssrc/vs/base/common/network.ts · 440 LOCcommon/network.tssrc/vs/base/common/normalization.ts · 63 LOCcommon/normalization.tssrc/vs/base/common/objects.ts · 286 LOCcommon/objects.tssrc/vs/base/common/path.ts · 1589 LOCcommon/path.tssrc/vs/base/common/platform.ts · 281 LOCcommon/platform.tssrc/vs/base/common/process.ts · 76 LOCcommon/process.tssrc/vs/base/common/processes.ts · 153 LOCcommon/processes.tssrc/vs/base/common/resources.ts · 444 LOCcommon/resources.tssrc/vs/base/common/stopwatch.ts · 41 LOCcommon/stopwatch.tssrc/vs/base/common/strings.ts · 1413 LOCcommon/strings.tssrc/vs/base/common/symbols.ts · 9 LOCcommon/symbols.tssrc/vs/base/common/ternarySearchTree.ts · 796 LOCcommon/ternarySearchTree…src/vs/base/common/types.ts · 410 LOCcommon/types.tssrc/vs/base/common/uint.ts · 59 LOCcommon/uint.tssrc/vs/base/common/uri.ts · 754 LOCcommon/uri.tssrc/vs/base/node/pfs.ts · 866 LOCnode/pfs.tssrc/vs/base/node/powershell.ts · 330 LOCnode/powershell.tssrc/vs/base/node/processes.ts · 180 LOCnode/processes.tssrc/vs/base/node/windowsVersion.ts · 113 LOCnode/windowsVersion.tssrc/vs/base/test/common/utils.ts · 107 LOCcommon/utils.tssrc/vs/nls.ts · 244 LOCvs/nls.tssrc/vs/platform/configuration/common/configuration.ts · 358 LOCcommon/configuration.tssrc/vs/platform/configuration/common/configurationRegistry.ts · 1089 LOCcommon/configurationRegi…src/vs/platform/configuration/test/common/testConfigurationService.ts · 91 LOCcommon/testConfiguration…src/vs/platform/instantiation/common/instantiation.ts · 130 LOCcommon/instantiation.tssrc/vs/platform/jsonschemas/common/jsonContributionRegistry.ts · 143 LOCcommon/jsonContributionR…src/vs/platform/product/common/product.ts · 93 LOCcommon/product.tssrc/vs/platform/registry/common/platform.ts · 63 LOCcommon/platform.tssrc/vs/platform/terminal/common/terminal.ts · 1264 LOCcommon/terminal.tssrc/vs/platform/terminal/common/terminalPlatformConfiguration.ts · 481 LOCcommon/terminalPlatformC…src/vs/platform/terminal/node/ptyHostService.ts · 432 LOCnode/ptyHostService.tssrc/vs/platform/terminal/node/terminalProfiles.ts · 512 LOCnode/terminalProfiles.tscancellation.test|title=CancellationToken None|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/cancellation.test|title=CancellationToken None|occurrence=1cancellation.test|title=…charCode.test|title=CharCode has good values|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/charCode.test|title=CharCode has good values|occurrence=1charCode.test|title=Char…path.test|title=Paths (Node Implementation) path|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/path.test|title=Paths (Node Implementation) path|occurrence=1path.test|title=Paths (N…strings.test|title=Strings trimWhitespace|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/strings.test|title=Strings trimWhitespace|occurrence=1strings.test|title=Strin…types.test|title=Types isString|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/types.test|title=Types isString|occurrence=1types.test|title=Types i…uri.test|title=URI File paths containing apostrophes break URI parsing and cannot be opened #276075|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/uri.test|title=URI File paths containing apostrophes break URI parsing and cannot be opened #276075|occurrence=1uri.test|title=URI File …uri.test|title=URI URI#file, win-speciale|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/uri.test|title=URI URI#file, win-speciale|occurrence=1uri.test|title=URI URI#f…ptyHostService.test|title=PtyHostService restartPtyHost disposes listeners registered during pty host startup|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/platform/terminal/test/node/ptyHostService.test|title=PtyHostService restartPtyHost disposes listeners registered during pty host startup|occurrence=1ptyHostService.test|titl…terminalProfiles.test|title=Workbench - TerminalProfiles detectAvailableProfiles should detect shells via absolute paths|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/terminal/test/node/terminalProfiles.test|title=Workbench - TerminalProfiles detectAvailableProfiles should detect shells via absolute paths|occurrence=1terminalProfiles.test|ti…Focused concept · terminalProfiles.ts ×14 · 55 introduced LOCterminalProfiles.ts ×14

Graph controls are ready.

Interactive rendering requires JavaScript and WebGL. Use the native relationship evidence on this page while the interactive map is unavailable.

Native relationship evidence

Every exact file and test below is linked only from the concept that introduces it.

Introduced tests

Every collected test enters the hierarchy at exactly one concept.

No tests are introduced at this concept. Its intent tests are introduced by other concepts.

Introduced code

Every collected source range enters the hierarchy at exactly one concept.

1 file ranked by introduced lines: 55 introduced LOC across 14 ranges. Expand a file to inspect source; the > gutter marks introduced lines.

src/vs/platform/terminal/node/terminalProfiles.ts 55 introduced LOC · 14 ranges

Open complete file

1 > /*--------------------------------------------------------------------------------------------- terminalProfiles.ts
2 > * Copyright (c) Microsoft Corporation. All rights reserved.
3 > * Licensed under the MIT License. See License.txt in the project root for license information.
4 > *--------------------------------------------------------------------------------------------*/
5 >
6 > import * as fs from 'fs';
7 > import * as cp from 'child_process';
8 > import { Codicon } from '../../../base/common/codicons.js';
9 > import { basename, delimiter, normalize, dirname, resolve } from '../../../base/common/path.js';
10 > import { isLinux, isWindows } from '../../../base/common/platform.js';
11 > import { findExecutable } from '../../../base/node/processes.js';
12 > import { hasKey, isObject, isString } from '../../../base/common/types.js';
13 > import { URI } from '../../../base/common/uri.js';
14 > import * as pfs from '../../../base/node/pfs.js';
15 > import { enumeratePowerShellInstallations } from '../../../base/node/powershell.js';
16 > import { IConfigurationService } from '../../configuration/common/configuration.js';
17 > import { ILogService } from '../../log/common/log.js';
18 > import { ITerminalEnvironment, ITerminalExecutable, ITerminalProfile, ITerminalProfileSource, ITerminalUnsafePath, ProfileSource, TerminalIcon, TerminalSettingId } from '../common/terminal.js';
19 > import { ThemeIcon } from '../../../base/common/themables.js';
20 > import { getWindowsBuildNumberAsync } from '../../../base/node/windowsVersion.js';
21 >
22 > const enum Constants {
23 > UnixShellsPath = '/etc/shells'
24 > }
25 >
26 > let profileSources: Map<string, IPotentialTerminalProfile> | undefined;
27 > let logIfWslNotInstalled: boolean = true;
28 >
29 > export function detectAvailableProfiles(
30 profiles: unknown,
31 defaultProfile: unknown,
66 );
67 }
69 async function detectAvailableWindowsProfiles(
70 includeDetectedProfiles: boolean,
165 return resultProfiles;
166 }
168 async function transformToTerminalProfiles(
169 entries: IterableIterator<[string, IUnresolvedTerminalProfile]>,
180 return (await Promise.all(promises)).filter(e => !!e);
181 }
183 async function getValidatedProfile(
184 profileName: string,
268 return validatedProfile;
269 }
271 function validateIcon(icon: string | TerminalIcon | undefined): TerminalIcon | undefined {
272 if (isString(icon)) {
275 return icon;
276 }
278 async function initializeWindowsProfiles(testPwshSourcePaths?: string[]): Promise<void> {
279 if (profileSources && !testPwshSourcePaths) {
296 });
297 }
299 async function getGitBashPaths(): Promise<string[]> {
300 const gitDirs: Set<string> = new Set();
335 return gitBashPaths;
336 }
338 async function getPowershellPaths(): Promise<string[]> {
339 const paths: string[] = [];
344 return paths;
345 }
347 async function getWslProfiles(wslPath: string, defaultProfileName: string | undefined): Promise<ITerminalProfile[]> {
348 const profiles: ITerminalProfile[] = [];
388 return profiles;
389 }
391 function getWslIcon(distroName: string): ThemeIcon {
392 if (distroName.includes('Ubuntu')) {
398 }
399 }
401 async function detectAvailableUnixProfiles(
402 fsProvider: IFsProvider,
439 return await transformToTerminalProfiles(detectedProfiles.entries(), defaultProfileName, fsProvider, shellEnv, logService, variableResolver);
440 }
442 function applyConfigProfilesToMap(configProfiles: { [key: string]: IUnresolvedTerminalProfile } | undefined, profilesMap: Map<string, IUnresolvedTerminalProfile>) {
443 if (!configProfiles) {
453 }
454 }
456 async function validateProfilePaths(profileName: string, defaultProfileName: string | undefined, potentialPaths: (string | ITerminalUnsafePath)[], fsProvider: IFsProvider, shellEnv: typeof process.env, args?: string[] | string, env?: ITerminalEnvironment, overrideName?: boolean, isAutoDetected?: boolean, requiresUnsafePath?: string): Promise<ITerminalProfile | undefined> {
457 if (potentialPaths.length === 0) {
497 return validateProfilePaths(profileName, defaultProfileName, potentialPaths, fsProvider, shellEnv, args, env, overrideName, isAutoDetected);
498 }
500 > export interface IFsProvider {
501 > existsFile(path: string): Promise<boolean>;
502 > readFile(path: string): Promise<Buffer>;
503 > }
504 >
505 > interface IPotentialTerminalProfile {
506 > profileName: string;
507 > paths: string[];
508 > args?: string[];
509 > icon?: ThemeIcon | URI | { light: URI; dark: URI };
510 > }
511 >
512 > export type IUnresolvedTerminalProfile = ITerminalExecutable | ITerminalProfileSource | null;