From 8345fff6e95969bd2e649f07a896c36efc707c64 Mon Sep 17 00:00:00 2001 From: Mateusz Tymek Date: Sun, 11 Jan 2026 13:57:18 +0100 Subject: [PATCH] Simplify path logic --- main.js | 26 +++++++++++--------------- src/OpenCodeView.ts | 2 ++ src/ProcessManager.ts | 7 ++----- src/main.ts | 18 +++++++----------- 4 files changed, 22 insertions(+), 31 deletions(-) diff --git a/main.js b/main.js index 737000d..54916d4 100644 --- a/main.js +++ b/main.js @@ -170,6 +170,7 @@ var OpenCodeView = class extends import_obsidian2.ItemView { const iframeContainer = this.contentEl.createDiv({ cls: "opencode-iframe-container" }); + console.log("[OpenCode] Loading iframe with URL:", this.plugin.getServerUrl()); this.iframeEl = iframeContainer.createEl("iframe", { cls: "opencode-iframe", attr: { @@ -414,13 +415,12 @@ var OpenCodeSettingTab = class extends import_obsidian3.PluginSettingTab { // src/ProcessManager.ts var import_child_process = require("child_process"); var ProcessManager = class { - constructor(settings, workingDirectory, projectDirectory, onStateChange) { + constructor(settings, projectDirectory, onStateChange) { this.process = null; this.state = "stopped"; this.lastError = null; this.earlyExitCode = null; this.settings = settings; - this.workingDirectory = workingDirectory; this.projectDirectory = projectDirectory; this.onStateChange = onStateChange; } @@ -461,7 +461,7 @@ var ProcessManager = class { opencodePath: this.settings.opencodePath, port: this.settings.port, hostname: this.settings.hostname, - cwd: this.workingDirectory, + cwd: this.projectDirectory, projectDirectory: this.projectDirectory }); this.process = (0, import_child_process.spawn)( @@ -476,7 +476,7 @@ var ProcessManager = class { "app://obsidian.md" ], { - cwd: this.workingDirectory, + cwd: this.projectDirectory, env: { ...process.env }, stdio: ["ignore", "pipe", "pipe"], detached: false @@ -594,11 +594,9 @@ var OpenCodePlugin = class extends import_obsidian4.Plugin { console.log("Loading OpenCode plugin"); registerOpenCodeIcons(); await this.loadSettings(); - const vaultPath = this.getVaultPath(); const projectDirectory = this.getProjectDirectory(); this.processManager = new ProcessManager( this.settings, - vaultPath, projectDirectory, (state) => this.notifyStateChange(state) ); @@ -728,8 +726,7 @@ var OpenCodePlugin = class extends import_obsidian4.Plugin { return (_a = this.processManager.getLastError()) != null ? _a : null; } getServerUrl() { - var _a; - return (_a = this.processManager.getUrl()) != null ? _a : `http://127.0.0.1:${this.settings.port}`; + return this.processManager.getUrl(); } onProcessStateChange(callback) { this.stateChangeCallbacks.push(callback); @@ -745,18 +742,17 @@ var OpenCodePlugin = class extends import_obsidian4.Plugin { callback(state); } } - getVaultPath() { + getProjectDirectory() { + if (this.settings.projectDirectory) { + console.log("[OpenCode] Using project directory from settings:", this.settings.projectDirectory); + return this.settings.projectDirectory; + } const adapter = this.app.vault.adapter; const vaultPath = adapter.basePath || ""; if (!vaultPath) { console.warn("[OpenCode] Warning: Could not determine vault path"); } + console.log("[OpenCode] Using vault path as project directory:", vaultPath); return vaultPath; } - getProjectDirectory() { - if (this.settings.projectDirectory) { - return this.settings.projectDirectory; - } - return this.getVaultPath(); - } }; diff --git a/src/OpenCodeView.ts b/src/OpenCodeView.ts index 6100c02..89464e3 100644 --- a/src/OpenCodeView.ts +++ b/src/OpenCodeView.ts @@ -152,6 +152,8 @@ export class OpenCodeView extends ItemView { cls: "opencode-iframe-container", }); + console.log("[OpenCode] Loading iframe with URL:", this.plugin.getServerUrl()); + this.iframeEl = iframeContainer.createEl("iframe", { cls: "opencode-iframe", attr: { diff --git a/src/ProcessManager.ts b/src/ProcessManager.ts index 7e84aec..47699a7 100644 --- a/src/ProcessManager.ts +++ b/src/ProcessManager.ts @@ -9,18 +9,15 @@ export class ProcessManager { private lastError: string | null = null; private earlyExitCode: number | null = null; private settings: OpenCodeSettings; - private workingDirectory: string; private projectDirectory: string; private onStateChange: (state: ProcessState) => void; constructor( settings: OpenCodeSettings, - workingDirectory: string, projectDirectory: string, onStateChange: (state: ProcessState) => void ) { this.settings = settings; - this.workingDirectory = workingDirectory; this.projectDirectory = projectDirectory; this.onStateChange = onStateChange; } @@ -71,7 +68,7 @@ export class ProcessManager { opencodePath: this.settings.opencodePath, port: this.settings.port, hostname: this.settings.hostname, - cwd: this.workingDirectory, + cwd: this.projectDirectory, projectDirectory: this.projectDirectory, }); @@ -87,7 +84,7 @@ export class ProcessManager { "app://obsidian.md", ], { - cwd: this.workingDirectory, + cwd: this.projectDirectory, env: { ...process.env }, stdio: ["ignore", "pipe", "pipe"], detached: false, diff --git a/src/main.ts b/src/main.ts index d0d4a4e..1fcbc1b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -17,12 +17,10 @@ export default class OpenCodePlugin extends Plugin { await this.loadSettings(); - const vaultPath = this.getVaultPath(); const projectDirectory = this.getProjectDirectory(); this.processManager = new ProcessManager( this.settings, - vaultPath, projectDirectory, (state) => this.notifyStateChange(state) ); @@ -182,7 +180,7 @@ export default class OpenCodePlugin extends Plugin { } getServerUrl(): string { - return this.processManager.getUrl() ?? `http://127.0.0.1:${this.settings.port}`; + return this.processManager.getUrl(); } onProcessStateChange(callback: (state: ProcessState) => void): () => void { @@ -201,19 +199,17 @@ export default class OpenCodePlugin extends Plugin { } } - private getVaultPath(): string { + getProjectDirectory(): string { + if (this.settings.projectDirectory) { + console.log("[OpenCode] Using project directory from settings:", this.settings.projectDirectory); + return this.settings.projectDirectory; + } const adapter = this.app.vault.adapter as any; const vaultPath = adapter.basePath || ""; if (!vaultPath) { console.warn("[OpenCode] Warning: Could not determine vault path"); } + console.log("[OpenCode] Using vault path as project directory:", vaultPath); return vaultPath; } - - getProjectDirectory(): string { - if (this.settings.projectDirectory) { - return this.settings.projectDirectory; - } - return this.getVaultPath(); - } }