| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- console.log("Loading stub impls...")
- const { createStub } = require("./stub-utils")
- // Import the base vscode object from stubs
- const vscode = require("./vscode-stubs.js")
- // Extend the existing window object from stubs rather than overwriting it
- vscode.window = {
- ...vscode.window, // Keep existing properties from stubs
- showInformationMessage: (...args) => {
- console.log("Stubbed showInformationMessage:", ...args)
- return Promise.resolve(undefined)
- },
- showWarningMessage: (...args) => {
- console.log("Stubbed showWarningMessage:", ...args)
- return Promise.resolve(undefined)
- },
- showErrorMessage: (...args) => {
- console.log("Stubbed showErrorMessage:", ...args)
- return Promise.resolve(undefined)
- },
- showInputBox: async (options) => {
- console.log("Stubbed showInputBox:", options)
- return ""
- },
- showOpenDialog: async (options) => {
- console.log("Stubbed showOpenDialog:", options)
- return []
- },
- showSaveDialog: async (options) => {
- console.log("Stubbed showSaveDialog:", options)
- return undefined
- },
- showTextDocument: async (...args) => {
- console.log("Stubbed showTextDocument:", ...args)
- return {}
- },
- createTerminal: (...args) => {
- // In standalone mode, terminals are managed directly by Task.terminalManager (StandaloneTerminalManager)
- // This stub is provided for compatibility but should not be called directly
- console.log("Stubbed createTerminal:", ...args)
- // Return a minimal stub terminal object
- const stubTerminal = {
- name: args[0]?.name || args[0] || "Terminal",
- processId: Promise.resolve(undefined),
- creationOptions: {},
- exitStatus: undefined,
- state: { isInteractedWith: false },
- sendText: (text) => console.log("Stubbed terminal.sendText:", text),
- show: () => console.log("Stubbed terminal.show"),
- hide: () => console.log("Stubbed terminal.hide"),
- dispose: () => console.log("Stubbed terminal.dispose"),
- }
- vscode.window.terminals.push(stubTerminal)
- return stubTerminal
- },
- activeTextEditor: undefined,
- visibleTextEditors: [],
- tabGroups: {
- all: [],
- close: async () => {},
- onDidChangeTabs: createStub("vscode.env.tabGroups.onDidChangeTabs"),
- activeTabGroup: { tabs: [] },
- },
- withProgress: async (_options, task) => {
- console.log("Stubbed withProgress")
- return task({ report: () => {} })
- },
- registerUriHandler: () => ({ dispose: () => {} }),
- registerWebviewViewProvider: () => ({ dispose: () => {} }),
- onDidChangeActiveTextEditor: () => ({ dispose: () => {} }),
- createTextEditorDecorationType: () => ({ dispose: () => {} }),
- createWebviewPanel: (..._args) => {
- throw new Error("WebviewPanel is not supported in standalone app.")
- },
- }
- vscode.env = {
- uriScheme: "vscode",
- appName: "Visual Studio Code",
- appRoot: "/tmp/vscode/appRoot",
- language: "en",
- machineId: "stub-machine-id",
- remoteName: undefined,
- sessionId: "stub-session-id",
- shell: "/bin/bash",
- clipboard: createStub("vscode.env.clipboard"),
- openExternal: createStub("vscode.env.openExternal"),
- getQueryParameter: createStub("vscode.env.getQueryParameter"),
- onDidChangeTelemetryEnabled: createStub("vscode.env.onDidChangeTelemetryEnabled"),
- isTelemetryEnabled: createStub("vscode.env.isTelemetryEnabled"),
- telemetryConfiguration: createStub("vscode.env.telemetryConfiguration"),
- onDidChangeTelemetryConfiguration: createStub("vscode.env.onDidChangeTelemetryConfiguration"),
- createTelemetryLogger: createStub("vscode.env.createTelemetryLogger"),
- }
- vscode.Uri = {
- parse: (uriString) => {
- const url = new URL(uriString)
- return {
- scheme: url.protocol.replace(":", ""),
- authority: url.hostname,
- path: url.pathname,
- query: url.search.slice(1),
- fragment: url.hash.slice(1),
- fsPath: `/tmp${url.pathname}`,
- toString: () => uriString,
- toJSON: () => uriString,
- with: (change) => {
- const newUrl = new URL(uriString)
- if (change.scheme) {
- newUrl.protocol = change.scheme + ":"
- }
- if (change.authority) {
- newUrl.hostname = change.authority
- }
- if (change.path) {
- newUrl.pathname = change.path
- }
- if (change.query) {
- newUrl.search = "?" + change.query
- }
- if (change.fragment) {
- newUrl.hash = "#" + change.fragment
- }
- return vscode.Uri.parse(newUrl.toString())
- },
- }
- },
- file: (path) => {
- return {
- scheme: "file",
- authority: "",
- path,
- fsPath: path,
- query: "",
- fragment: "",
- toString: () => `file://${path}`,
- toJSON: () => `file://${path}`,
- with: (change) => {
- const modified = Object.assign({}, vscode.Uri.file(path), change)
- return modified
- },
- }
- },
- joinPath: (...segments) => {
- const joined = segments.map((s) => (typeof s === "string" ? s : s.path)).join("/")
- return vscode.Uri.file("/" + joined.replace(/\/+/g, "/"))
- },
- }
- console.log("Finished loading stub impls...")
|