Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
eddede8
Esbuild the ts extension
mjbvz Feb 19, 2026
b3df34c
Don't break the chat view when session content provider fails to load
roblourens Feb 19, 2026
18695ba
Merge pull request #296198 from microsoft/roblou/sacred-quail
roblourens Feb 19, 2026
6be6f0b
Fix loading of wasm
mjbvz Feb 19, 2026
577d1de
Add tsconfig
mjbvz Feb 19, 2026
b1aeba0
Update terminal image setting description (#296146)
anthonykim1 Feb 19, 2026
881ce77
Bump `@vscode/vscode-languagedetection`
mjbvz Feb 19, 2026
7a3b018
Update other packages as well
mjbvz Feb 19, 2026
0a67236
fix issue where working never finishes + showing too much (#296179)
justschen Feb 19, 2026
73b9742
Merge pull request #296203 from mjbvz/dev/mjbvz/wittering-hyena
mjbvz Feb 19, 2026
0d26c20
Fix PromptFileParser when description contains `:` (#296205)
DonJayamanne Feb 19, 2026
9486004
mcp: fix tool calls not associated with chat session (#296206)
connor4312 Feb 19, 2026
849dd0c
improve model picker (#296152)
sandy081 Feb 19, 2026
eadcfc2
Add ability to fork conversations (from Chat or with /fork) (#296093)
pierceboggan Feb 19, 2026
0249c2a
Fix terminal-suggest for esbuild
mjbvz Feb 19, 2026
ec6ebb1
make sure to respect attachCSS setting for integrated browser (#296210)
justschen Feb 19, 2026
448d548
Merge pull request #296160 from microsoft/dev/mjbvz/esbuild-ts
mjbvz Feb 19, 2026
e4dd90d
Merge pull request #296220 from mjbvz/dev/mjbvz/electronic-pigeon
mjbvz Feb 19, 2026
8db7ca3
fix layout (#296228)
sandy081 Feb 19, 2026
c9224d8
render account menu at default anchor (#296090)
sandy081 Feb 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
148 changes: 147 additions & 1 deletion extensions/terminal-suggest/scripts/update-specs.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,130 @@
const fs = require('fs');
const path = require('path');

const upstreamSpecs = require('../out/constants.js').upstreamSpecs;
/** @type {string[]} */
const upstreamSpecs = [
'basename',
'cat',
'chmod',
'chown',
'clear',
'cp',
'curl',
'cut',
'date',
'dd',
'df',
'diff',
'dig',
'dirname',
'du',
'echo',
'env',
'export',
'fdisk',
'find',
'fmt',
'fold',
'grep',
'head',
'htop',
'id',
'jq',
'kill',
'killall',
'less',
'ln',
'ls',
'lsblk',
'lsof',
'mkdir',
'more',
'mount',
'mv',
'nl',
'od',
'paste',
'ping',
'pkill',
'ps',
'pwd',
'readlink',
'rm',
'rmdir',
'rsync',
'scp',
'sed',
'seq',
'shred',
'sort',
'source',
'split',
'stat',
'su',
'sudo',
'tac',
'tail',
'tar',
'tee',
'time',
'top',
'touch',
'tr',
'traceroute',
'tree',
'truncate',
'uname',
'uniq',
'unzip',
'wc',
'wget',
'where',
'whereis',
'which',
'who',
'xargs',
'xxd',
'zip',

// OS package management
'apt',
'brew',

// Editors
'nano',
'vim',

// Shells
'ssh',

// Android
'adb',

// Docker
'docker',
'docker-compose',

// Dotnet
'dotnet',

// Go
'go',

// JavaScript / TypeScript
'node',
'nvm',
'yo',

// Python
'python',
'python3',
'ruff',

// Ruby
'bundle',
'ruby',
];

const extRoot = path.resolve(path.join(__dirname, '..'));
const replaceStrings = [
[
Expand Down Expand Up @@ -94,3 +217,26 @@ for (const spec of upstreamSpecs) {

fs.writeFileSync(destination, content);
}

// Generate upstreamSpecs.ts with re-exports
function specToExportName(spec) {
return spec.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
}

function specToReExport(spec) {
return `export { default as ${specToExportName(spec)} } from './completions/upstream/${spec}';`;
}

const copyright = `/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/`;

const lines = [
copyright,
'',
'// This file is generated by scripts/update-specs.js',
...upstreamSpecs.map(specToReExport),
'',
];
fs.writeFileSync(path.join(extRoot, 'src/upstreamSpecs.ts'), lines.join('\n'));
124 changes: 0 additions & 124 deletions extensions/terminal-suggest/src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,130 +3,6 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/

export const upstreamSpecs = [
'basename',
'cat',
'chmod',
'chown',
'clear',
'cp',
'curl',
'cut',
'date',
'dd',
'df',
'diff',
'dig',
'dirname',
'du',
'echo',
'env',
'export',
'fdisk',
'find',
'fmt',
'fold',
'grep',
'head',
'htop',
'id',
'jq',
'kill',
'killall',
'less',
'ln',
'ls',
'lsblk',
'lsof',
'mkdir',
'more',
'mount',
'mv',
'nl',
'od',
'paste',
'ping',
'pkill',
'ps',
'pwd',
'readlink',
'rm',
'rmdir',
'rsync',
'scp',
'sed',
'seq',
'shred',
'sort',
'source',
'split',
'stat',
'su',
'sudo',
'tac',
'tail',
'tar',
'tee',
'time',
'top',
'touch',
'tr',
'traceroute',
'tree',
'truncate',
'uname',
'uniq',
'unzip',
'wc',
'wget',
'where',
'whereis',
'which',
'who',
'xargs',
'xxd',
'zip',

// OS package management
'apt',
'brew',

// Editors
'nano',
'vim',

// Shells
'ssh',

// Android
'adb',

// Docker
'docker',
'docker-compose',

// Dotnet
'dotnet',

// Go
'go',

// JavaScript / TypeScript
'node',
'nvm',
'yo',

// Python
'python',
'python3',
'ruff',

// Ruby
'bundle',
'ruby',
];


export const enum SettingsIds {
SuggestPrefix = 'terminal.integrated.suggest',
CachedWindowsExecutableExtensions = 'terminal.integrated.suggest.windowsExecutableExtensions',
Expand Down
6 changes: 2 additions & 4 deletions extensions/terminal-suggest/src/terminalSuggestMain.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import npxCompletionSpec from './completions/npx';
import pnpmCompletionSpec from './completions/pnpm';
import setLocationSpec from './completions/set-location';
import yarnCompletionSpec from './completions/yarn';
import { upstreamSpecs } from './constants';
import * as upstreamSpecs from './upstreamSpecs';
import { ITerminalEnvironment, PathExecutableCache } from './env/pathExecutableCache';
import { executeCommand, executeCommandTimeout, IFigExecuteExternals } from './fig/execute';
import { getFigSuggestions } from './fig/figInterface';
Expand Down Expand Up @@ -77,10 +77,8 @@ export const availableSpecs: Fig.Spec[] = [
pnpmCompletionSpec,
setLocationSpec,
yarnCompletionSpec,
...Object.values(upstreamSpecs)
];
for (const spec of upstreamSpecs) {
availableSpecs.push(require(`./completions/upstream/${spec}`).default);
}

const getShellSpecificGlobals: Map<TerminalShellType, (options: ExecOptionsWithStringEncoding, existingCommands?: Set<string>) => Promise<(string | ICompletionResource)[]>> = new Map([
[TerminalShellType.Bash, getBashGlobals],
Expand Down
Loading
Loading