mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-11-14 10:39:32 +01:00
fix(links): preserve workspace openers after lookup refusals
This commit is contained in:
1 parent
97d53f6621
commit
fd0e52496d
7 files changed
+80
-29
No files matched your search
@@ -2656,6 +2656,8 @@ function terminalPathLine(buffer, row, cols, maxRows) {
|
||||
if (!prev || rows + rowsOf(prev) > bound) break;
|
||||
first = prev;
|
||||
rows += rowsOf(prev);
|
||||
const tail = /[^\s"'<>|;&]+$/.exec(first.text.trimEnd())?.[0] || '';
|
||||
if (!tail.includes('/')) continue;
|
||||
const candidate = extend(first);
|
||||
if (candidate.parts[candidate.parts.length - 1].endRow >= base.startRow) extended = candidate;
|
||||
}
|
||||
|
||||
@@ -2342,12 +2342,11 @@ Object.assign(CodemanApp.prototype, {
|
||||
const alternative = !folder && logical.pathAlternatives?.find((candidate) => candidate.path === text);
|
||||
if (alternative && !verifiedSessionId) {
|
||||
return (async () => {
|
||||
let path = target;
|
||||
let registered = await self._registerExternalPreview(path, sessionId);
|
||||
if (registered.status === 404) {
|
||||
path = self._resolveLinkedFilePath(alternative.spacedPath, sessionId);
|
||||
registered = await self._registerExternalPreview(path, sessionId);
|
||||
}
|
||||
const original = await self._registerExternalPreview(target, sessionId);
|
||||
// Attachment policy must not gate the workspace's normal opener.
|
||||
if (original.status !== 404) return activateFilePath(target, false, sessionId);
|
||||
const path = self._resolveLinkedFilePath(alternative.spacedPath, sessionId);
|
||||
const registered = await self._registerExternalPreview(path, sessionId);
|
||||
if (!registered.attachmentId) {
|
||||
self.showToast(registered.error || 'Cannot open this file', 'error');
|
||||
return;
|
||||
|
||||
Reference in new issue
Block a user