From fa26ba842cf412811646c97c50e2a0934a73048f Mon Sep 17 00:00:00 2001 From: arookieofc <2128194521@qq.com> Date: Sun, 1 Nov 2026 11:16:44 +0800 Subject: [PATCH 01/27] fix(tests): update code action tests for the interactive apply path (#638) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit applyCodeAction now resolves the picked action and executes it (lspResolveCodeAction → lspExecuteCodeAction) instead of calling lspApplyCodeAction, but refactorThis.test.ts and runKind.test.ts still mocked and asserted the old command, so main's frontend tests failed (4 tests). The mocks now follow the new commands; safeDelete.test.ts's negative assertion still holds. Co-authored-by: a-rookie-of-C-language <186315048+a-rookie-of-C-language@users.noreply.github.com> --- src/editor/refactor/refactorThis.test.ts | 13 ++++++++----- src/editor/refactor/runKind.test.ts | 15 +++++++++++---- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/editor/refactor/refactorThis.test.ts b/src/editor/refactor/refactorThis.test.ts index e3b624d19..f49a316f3 100644 --- a/src/editor/refactor/refactorThis.test.ts +++ b/src/editor/refactor/refactorThis.test.ts @@ -14,9 +14,11 @@ const lspCodeActionQuery = vi.fn(async (request: number, _doc: number, _range: u ); const lspPrepareRename = vi.fn(async () => prepare); let onApply: (() => void) | null = null; -const lspApplyCodeAction = vi.fn(async () => { +// applyCodeAction resolves the picked action, then executes it (interactive command support). +const lspResolveCodeAction = vi.fn(async (_doc: number, action: CodeAction) => ok(action)); +const lspExecuteCodeAction = vi.fn(async () => { onApply?.(); - return ok(null); + return ok([]); }); const lspCodeActions = vi.fn(async () => ok([])); const cancelRequest = vi.fn(async () => undefined); @@ -31,7 +33,8 @@ vi.mock("@/platform/ipc", async (orig) => { ...actual.commands, lspCodeActionQuery, lspPrepareRename, - lspApplyCodeAction, + lspResolveCodeAction, + lspExecuteCodeAction, lspCodeActions, cancelRequest, languages, @@ -185,7 +188,7 @@ describe("Refactor This", () => { const items = (useLspPopup.getState().popup as { items: { label: string; run: () => void }[] }).items; items.find((i) => i.label === "Inline…")!.run(); await new Promise((r) => setTimeout(r, 0)); - expect(lspApplyCodeAction).toHaveBeenCalledOnce(); + expect(lspExecuteCodeAction).toHaveBeenCalledOnce(); items.find((i) => i.label === "Rename…")!.run(); expect(rename).toHaveBeenCalledWith(v); items.find((i) => i.label === "Safe Delete…")!.run(); @@ -240,7 +243,7 @@ describe("Refactor menu actions", () => { it("apply the single matching action, or offer a choice", async () => { query = answer([action("Move to a new file", "refactor.move.newFile")]); await runRefactoring(editor(), "move"); - expect(lspApplyCodeAction).toHaveBeenCalledOnce(); + expect(lspExecuteCodeAction).toHaveBeenCalledOnce(); expect(lspCodeActionQuery.mock.calls[0]![3]).toEqual(["refactor.move"]); closePopup(); diff --git a/src/editor/refactor/runKind.test.ts b/src/editor/refactor/runKind.test.ts index ab1b993a8..cbeb77e69 100644 --- a/src/editor/refactor/runKind.test.ts +++ b/src/editor/refactor/runKind.test.ts @@ -5,11 +5,17 @@ import type { CodeAction } from "@/bindings"; let answer: () => unknown = () => ({ status: "ok", data: [] }); const lspCodeActions = vi.fn(async () => answer()); -const lspApplyCodeAction = vi.fn(async () => ({ status: "ok", data: null })); +// applyCodeAction resolves the picked action, then executes it (interactive command support). +const lspResolveCodeAction = vi.fn(async (_doc: number, action: CodeAction) => ({ status: "ok", data: action })); +const lspExecuteCodeAction = vi.fn(async () => ({ status: "ok", data: [] })); vi.mock("@/platform/ipc", async (orig) => { const actual = await orig(); - return { ...actual, isTauri: () => true, commands: { ...actual.commands, lspCodeActions, lspApplyCodeAction } }; + return { + ...actual, + isTauri: () => true, + commands: { ...actual.commands, lspCodeActions, lspResolveCodeAction, lspExecuteCodeAction }, + }; }); const showHint = vi.fn(); vi.mock("@/editor/lsp/hint", () => ({ showHint })); @@ -32,7 +38,8 @@ let view: EditorView | null = null; afterEach(() => { view?.destroy(); showHint.mockClear(); - lspApplyCodeAction.mockClear(); + lspResolveCodeAction.mockClear(); + lspExecuteCodeAction.mockClear(); }); function run(fallback: (reason: "notReady" | "error" | "empty") => Promise) { @@ -56,7 +63,7 @@ describe("runKindAction fallback", () => { const fallback = vi.fn(async () => true); await run(fallback); expect(fallback).not.toHaveBeenCalled(); - expect(lspApplyCodeAction).toHaveBeenCalledOnce(); + expect(lspExecuteCodeAction).toHaveBeenCalledOnce(); }); it("falls back when the server is not ready or fails", async () => { From 9847fd2c01db19bf5f7b7c09b17eb3afc9ef5077 Mon Sep 17 00:00:00 2001 From: arookieofc <2128194521@qq.com> Date: Sun, 1 Nov 2026 11:31:53 +0800 Subject: [PATCH 02/27] feat(agents): dock a session in the Agents tool window (#588) Agent sessions can be opened in the Agents tool window beside the editor (Open in Tool Window / Open in Editor in the task menus, or by dragging between the editor and the tool window); opening in an editor tab stays the default. Fixes in review: - A docked conversation kept the previous task's subagent view after switching tasks: the session's local state is now keyed by task. - Moving a conversation between the editor and the tool window lost its scroll position: position and follow-output are kept per conversation (task or subagent). - In a short bottom tool window the message area shrank to a few pixels: wide windows place the task list beside the conversation, narrow ones cap the list height. - Drag and drop and list selection now go through the agents.dockTask / undockTask / openTask actions. Co-authored-by: a-rookie-of-C-language <186315048+a-rookie-of-C-language@users.noreply.github.com> --- e2e/agentsDock.spec.ts | 119 +++++++++++ src/editor/core/controller.ts | 10 +- src/editor/core/index.ts | 1 + src/editor/core/view/EditorArea.tsx | 53 ++++- src/editor/core/virtual.test.ts | 22 ++ src/features/agents/Agents.module.css | 73 ++++++- src/features/agents/AgentsView.test.tsx | 136 +++++++++++- src/features/agents/AgentsView.tsx | 244 +++++++++++++++------- src/features/agents/Session.module.css | 7 + src/features/agents/SessionEditor.tsx | 45 +++- src/features/agents/index.ts | 29 ++- src/features/agents/model.ts | 2 + src/features/agents/sessionState.test.tsx | 185 ++++++++++++++++ src/features/agents/store.ts | 28 ++- src/features/agents/taskActions.ts | 28 ++- src/features/agents/unread.test.tsx | 57 ++++- src/platform/locales/text/zh.json | 4 + src/workbench/contributions.ts | 42 ++++ 18 files changed, 982 insertions(+), 103 deletions(-) create mode 100644 e2e/agentsDock.spec.ts create mode 100644 src/features/agents/sessionState.test.tsx diff --git a/e2e/agentsDock.spec.ts b/e2e/agentsDock.spec.ts new file mode 100644 index 000000000..ab54ff5f8 --- /dev/null +++ b/e2e/agentsDock.spec.ts @@ -0,0 +1,119 @@ +/** Docking agent conversations between the editor and the Agents tool window by drag & drop. */ +import { expect, test, type Page } from "@playwright/test"; + +const TASK = { + id: "t1", + title: "Repro task", + status: "ready" as const, + isolation: "local" as const, + provider: "codex", + model: null, + cwd: "/dev/acme-api", + branch: null, + base: null, + baseCommit: null, + error: null, + createdMs: 0, + updatedMs: 0, + config: [], + commands: [], + usage: null, + queue: [], +}; + +/** Seeds one task in the agents store (no backend in plain-browser mode) and docks it. */ +async function seedAndDock(page: Page) { + await page.evaluate(async (task) => { + // Paths go through variables: knip can't resolve these browser-absolute URLs. + const storePath = "/src/features/agents/store.ts"; + const store = await import(storePath); + store.useAgents.setState({ + loaded: true, + error: null, + providers: [], + tasks: new Map([[task.id, task]]), + unread: new Set(), + docked: null, + }); + store.dockTask(task.id); + }, TASK); + await page.locator("span[title='Repro task']").first().waitFor(); +} + +test("drags the docked conversation back onto the editor", async ({ page }) => { + await page.goto("/"); + await page.getByRole("tree", { name: "Project" }).waitFor(); + // An editor pane, so the session tab has a content drop target to land on. + await page.getByRole("treeitem", { name: "README.md", exact: true }).dblclick(); + await page.getByRole("tab", { name: "README.md" }).waitFor(); + await seedAndDock(page); + + const title = page.locator("span[title='Repro task']").first(); + const to = await page.getByRole("tabpanel").first().boundingBox(); + const from = await title.boundingBox(); + await page.mouse.move(from!.x + from!.width / 2, from!.y + from!.height / 2); + await page.mouse.down(); + await page.mouse.move(to!.x + to!.width / 2, to!.y + to!.height / 2, { steps: 10 }); + await page.mouse.up(); + + await expect(page.getByRole("tab", { name: "Repro task" })).toBeVisible(); + await expect(page.getByRole("tree", { name: "Agent tasks" })).toBeVisible(); +}); + +test("drags the docked conversation back onto the empty editor", async ({ page }) => { + await page.goto("/"); + await page.getByRole("tree", { name: "Project" }).waitFor(); + // Docking closes the session tab; with no other tabs the editor is empty and + // must still take the drop (regression: the empty state had no drop target). + await seedAndDock(page); + await expect(page.locator("[data-editor-area] [role='tabpanel']")).toHaveCount(0); + + const title = page.locator("span[title='Repro task']").first(); + const to = await page.getByText("Drop files here to open them").boundingBox(); + const from = await title.boundingBox(); + await page.mouse.move(from!.x + from!.width / 2, from!.y + from!.height / 2); + await page.mouse.down(); + await page.mouse.move(to!.x + to!.width / 2, to!.y + to!.height / 2, { steps: 10 }); + await page.mouse.up(); + + await expect(page.getByRole("tab", { name: "Repro task" })).toBeVisible(); +}); + +test("docks a session tab dropped on the tool window", async ({ page }) => { + await page.goto("/"); + await page.getByRole("tree", { name: "Project" }).waitFor(); + await page.getByRole("treeitem", { name: "README.md", exact: true }).dblclick(); + await page.getByRole("tab", { name: "README.md" }).waitFor(); + await page.evaluate(async (task) => { + const storePath = "/src/features/agents/store.ts"; + const modelPath = "/src/features/agents/model.ts"; + const contributionsPath = "/src/workbench/contributions.ts"; + const store = await import(storePath); + const { TOOL_WINDOW } = await import(modelPath); + const { toolWindowService } = await import(contributionsPath); + store.useAgents.setState({ + loaded: true, + error: null, + providers: [], + tasks: new Map([[task.id, task]]), + unread: new Set(), + docked: null, + }); + toolWindowService().show(TOOL_WINDOW, true); + store.openTask(task.id); + }, TASK); + await page.getByRole("tab", { name: "Repro task" }).waitFor(); + + const tab = page.getByRole("tab", { name: "Repro task" }); + const to = await page.getByRole("tree", { name: "Agent tasks" }).boundingBox(); + const from = await tab.boundingBox(); + await page.mouse.move(from!.x + from!.width / 2, from!.y + from!.height / 2); + await page.mouse.down(); + await page.mouse.move(to!.x + to!.width / 2, to!.y + to!.height / 2, { steps: 10 }); + await page.mouse.up(); + + // Docked: the tab closes and the tool window gives itself to the conversation. + await expect(page.getByRole("tab", { name: "Repro task" })).toHaveCount(0); + await expect(page.getByRole("tree", { name: "Agent tasks" })).toHaveCount(0); + await expect(page.locator("span[title='Repro task']").first()).toBeVisible(); +}); diff --git a/src/editor/core/controller.ts b/src/editor/core/controller.ts index abc244eb5..be343fbf4 100644 --- a/src/editor/core/controller.ts +++ b/src/editor/core/controller.ts @@ -1458,6 +1458,11 @@ export class EditorController implements SlotHost { return [...out]; } + /** Input of the tab `tabId` in pane `paneId` (dragging a tab between views), null if there is none. */ + tabInput(paneId: string, tabId: string): EditorInput | null { + return useTabs.getState().panes[paneId]?.tabs.find((t) => t.id === tabId)?.input ?? null; + } + closePath(path: string): Promise { return this.removeGuarded((s) => { const keys = new Set(); @@ -1682,7 +1687,10 @@ export class EditorController implements SlotHost { { kind: "action", action: "project.rename", arg: path, label: "Rename File…" }, { kind: "separator" }, ] as MenuItem[]) - : []), + : [ + // Contributed groups for tabs without a file (e.g. "Open in Tool Window"). + ...menuGroupItems("editorTab", { paths: [], input: tab.input }), + ]), { kind: "action", action: "file.settings", arg: "editor.general.editorTabs", label: "Configure Editor Tabs…" }, ]; } diff --git a/src/editor/core/index.ts b/src/editor/core/index.ts index 68018d91d..3097ffdfd 100644 --- a/src/editor/core/index.ts +++ b/src/editor/core/index.ts @@ -44,6 +44,7 @@ export function activate(): void | (() => void) { focus: () => ctrl.focus(), openPaths: () => ctrl.openPaths(), openTabs: () => ctrl.openTabs(), + tabInput: (paneId, tabId) => ctrl.tabInput(paneId, tabId), activeInput: () => ctrl.activeInput(), onActiveInputChange: (fn) => ctrl.onActiveInputChange(fn), closePath: (path) => ctrl.closePath(path), diff --git a/src/editor/core/view/EditorArea.tsx b/src/editor/core/view/EditorArea.tsx index fd7394dce..bd4b709a3 100644 --- a/src/editor/core/view/EditorArea.tsx +++ b/src/editor/core/view/EditorArea.tsx @@ -13,6 +13,9 @@ import { setContext } from "@/platform/context"; import { useEditorPrefs } from "@/platform/editorSettings"; import { basename, dirname } from "@/platform/project"; import { + EDITOR_TAB_MIME, + acceptsEditorDrop, + dropOnEditor, getFileDecoration, prepareMenuGroups, textEditorWrapperFor, @@ -54,7 +57,7 @@ import { tx } from "@/platform/i18n"; export function EditorAreaView() { const layout = useTabs((s) => s.layout); const empty = useTabs((s) => Object.values(s.panes).every((p) => p.tabs.length === 0)); - if (empty && layout.kind === "pane") return ; + if (empty && layout.kind === "pane") return ; return (
@@ -62,6 +65,42 @@ export function EditorAreaView() { ); } +/** The empty editor still accepts drops: reopening tabs, opening files, feature drags (agent tasks). */ +function EmptyEditorArea() { + const ref = useRef(null); + const [over, setOver] = useState(false); + useEffect(() => { + const el = ref.current; + if (!el) return; + return registerDropTarget(el, { + accepts: (type) => type === EDITOR_TAB_MIME || type === FILES_DRAG || acceptsEditorDrop(type), + over: () => setOver(true), + leave: () => setOver(false), + drop: (data) => { + setOver(false); + const paneId = Object.keys(useTabs.getState().panes)[0]; + if (!paneId) return; + if (data.type === FILES_DRAG) { + void editorController().openFilesIn(data.payload.split("\n").filter(Boolean), paneId, "center"); + return; + } + if (data.type !== EDITOR_TAB_MIME) { + dropOnEditor(data); + return; + } + const p = parseTabPayload(data.payload); + if (p) editorController().moveTab(p.paneId, p.tabId, paneId, 0); + }, + }); + }, []); + return ( +
+ + {over && + ); +} + function LayoutView({ node }: { node: LayoutNode }): ReactNode { if (node.kind === "pane") return ; return ( @@ -78,9 +117,6 @@ function LayoutView({ node }: { node: LayoutNode }): ReactNode { ); } -/** MIME type of a dragged editor tab: `{"paneId","tabId"}` JSON. */ -export const EDITOR_TAB_MIME = "application/x-openidea-editor-tab"; - type DropZone = SplitEdge | "center"; /** Where a tab dropped at (x, y) over an editor goes: an edge (new split) or the pane itself. */ @@ -232,8 +268,9 @@ function PaneView({ paneId }: { paneId: string }) { if (!el) return; const zoneAt = (x: number, y: number) => dropZoneAt(x, y, el.getBoundingClientRect()); return registerDropTarget(el, { - accepts: (type) => type === EDITOR_TAB_MIME || type === FILES_DRAG, - over: (_, x, y) => setDropZone(zoneAt(x, y)), + accepts: (type) => type === EDITOR_TAB_MIME || type === FILES_DRAG || acceptsEditorDrop(type), + over: (data, x, y) => + setDropZone(data.type === EDITOR_TAB_MIME || data.type === FILES_DRAG ? zoneAt(x, y) : "center"), leave: () => setDropZone(null), drop: (data, x, y) => { const zone = zoneAt(x, y); @@ -242,6 +279,10 @@ function PaneView({ paneId }: { paneId: string }) { void ctrl.openFilesIn(data.payload.split("\n").filter(Boolean), paneId, zone); return; } + if (data.type !== EDITOR_TAB_MIME) { + dropOnEditor(data); + return; + } const p = parseTabPayload(data.payload); if (!p) return; const target = useTabs.getState().panes[paneId]; diff --git a/src/editor/core/virtual.test.ts b/src/editor/core/virtual.test.ts index ceb24d9e3..e4417eb4d 100644 --- a/src/editor/core/virtual.test.ts +++ b/src/editor/core/virtual.test.ts @@ -28,6 +28,9 @@ const { createMemoryBackend } = await import("./backend"); const { initialTabsState } = await import("./model/tabs"); const { serializeSession } = await import("./model/session"); const { useDocMeta } = await import("./model/document"); +const { registerMenuGroup } = await import("@/workbench/contributions"); +const { registerActions } = await import("@/platform/actions"); +const { resolveMenuItems } = await import("@/ui"); let ctrl: InstanceType | null = null; @@ -85,6 +88,25 @@ describe("virtual editor input", () => { .tabMenu(useTabs.getState().activePane, activeTab()) .some((i) => "label" in i && i.label === "Reveal in Project"), ).toBe(false); + + // Pathless tabs still get contributed groups, with the tab's input in the context. + const disposeAction = registerActions([{ id: "test.tab", title: "Test Item", run: () => undefined }]); + const disposeGroup = registerMenuGroup({ + id: "test.tab", + menus: ["editorTab"], + order: 50, + items: (_menu, { paths, input }) => + paths.length || input?.kind !== "virtual" + ? [] + : [{ kind: "action", action: "test.tab", label: "Test Item", arg: input.key }], + }); + try { + const items = resolveMenuItems(ctrl.tabMenu(useTabs.getState().activePane, activeTab())); + expect(items.some((i) => "label" in i && i.label === "Test Item")).toBe(true); + } finally { + disposeGroup(); + disposeAction(); + } }); it("does not open a tab when the server has no contents", async () => { diff --git a/src/features/agents/Agents.module.css b/src/features/agents/Agents.module.css index d4c0a47a9..ff72619d1 100644 --- a/src/features/agents/Agents.module.css +++ b/src/features/agents/Agents.module.css @@ -3,10 +3,22 @@ min-height: 0; display: flex; flex-direction: column; + container-type: inline-size; } -.view > * { +.content { flex: 1; min-height: 0; + display: flex; + flex-direction: column; +} +.content > * { + flex: 1; + min-height: 0; +} +/* A session editor tab hovers over the tool window: it will dock here. */ +.dropTarget { + outline: 2px solid var(--accent); + outline-offset: -2px; } .loading { @@ -124,3 +136,62 @@ align-items: center; gap: 5px; } + +/* A conversation docked in the tool window, above the task list. */ +.docked { + flex: 1 1 0; + min-height: 0; + min-width: 0; + display: flex; + flex-direction: column; +} +.dockedBar { + display: flex; + align-items: center; + gap: 6px; + padding: 2px 8px; + border-bottom: 1px solid var(--border); +} +.dockedTitle { + flex: 1; + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-weight: 600; +} +.dockedSession { + flex: 1; + min-height: 0; + min-width: 0; + display: flex; + flex-direction: column; +} +.tasks { + flex: 2 1 0; + min-height: 0; + min-width: 0; + display: flex; + flex-direction: column; + border-top: 1px solid var(--border); +} + +/* Keep the conversation usable in a short bottom tool window; the tree scrolls. */ +.docked + .tasks { + flex: 0 0 20%; + max-height: 160px; +} + +/* A wide bottom window has room beside the conversation, preserving message height. */ +@container (min-width: 600px) { + .content { + flex-direction: row; + } + .docked + .tasks { + flex: 0 0 220px; + max-width: 30%; + max-height: none; + border-top: 0; + border-left: 1px solid var(--border); + } +} diff --git a/src/features/agents/AgentsView.test.tsx b/src/features/agents/AgentsView.test.tsx index 9929b0c8d..a8ec9d370 100644 --- a/src/features/agents/AgentsView.test.tsx +++ b/src/features/agents/AgentsView.test.tsx @@ -1,18 +1,21 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; -import { act, fireEvent, render, screen, waitFor } from "@testing-library/react"; +import { act, fireEvent, render, screen, waitFor, within } from "@testing-library/react"; import type { AgentTask } from "@/bindings"; +import * as actions from "@/platform/actions"; import { registerActions } from "@/platform/actions"; -import type { EditorInput } from "@/workbench/contributions"; +import { EDITOR_TAB_MIME, type EditorInput } from "@/workbench/contributions"; import { confirmChecked, showError } from "@/workbench/messages"; -import { ContextMenuHost, hideContextMenu } from "@/ui"; +import { ContextMenuHost, dragSession, hideContextMenu } from "@/ui"; import { AgentsView } from "./AgentsView"; import { SESSION_KIND } from "./model"; -import { archiveTask, unarchiveTask, deleteTask, openTask, useAgents } from "./store"; -import { taskActions } from "./taskActions"; +import { archiveTask, unarchiveTask, deleteTask, dockTask, openTask, undockTask, useAgents } from "./store"; +import { taskActions, taskMenu } from "./taskActions"; +import styles from "./Agents.module.css"; const editor = vi.hoisted(() => ({ active: undefined as EditorInput | undefined, listener: undefined as ((input: EditorInput) => void) | undefined, + tabInput: undefined as ((paneId: string, tabId: string) => EditorInput | null) | undefined, })); vi.mock("@/workbench/contributions", async (original) => ({ @@ -25,6 +28,7 @@ vi.mock("@/workbench/contributions", async (original) => ({ editor.listener = undefined; }; }, + tabInput: editor.tabInput, }), })); @@ -34,8 +38,12 @@ vi.mock("./store", async (original) => ({ archiveTask: vi.fn(async () => {}), unarchiveTask: vi.fn(async () => {}), deleteTask: vi.fn(async () => {}), + dockTask: vi.fn(), + undockTask: vi.fn(), })); +vi.mock("./SessionEditor", () => ({ SessionEditor: () =>
})); + vi.mock("@/workbench/messages", () => ({ confirmChecked: vi.fn(async () => ({ checked: false })), showError: vi.fn(async () => {}), @@ -67,7 +75,10 @@ function task( }; } -const row = (id: string) => screen.getByText(id).closest('[role="treeitem"]')!; +const row = (id: string) => + within(screen.getByRole("tree", { name: "Agent tasks" })) + .getByText(id) + .closest('[role="treeitem"]')!; const select = (id: string, modifiers: MouseEventInit = {}) => fireEvent.mouseDown(row(id), { button: 0, ...modifiers }); const selectedTasks = () => @@ -83,18 +94,22 @@ const context = (id: string) => { let dispose: () => void; beforeEach(() => { vi.clearAllMocks(); + vi.spyOn(actions, "executeAction"); editor.active = undefined; + editor.tabInput = undefined; vi.mocked(confirmChecked).mockResolvedValue({ checked: false }); useAgents.setState({ loaded: true, error: null, tasks: new Map([task("one"), task("two"), task("three"), task("four")].map((t) => [t.id, t])), + docked: null, }); dispose = registerActions(taskActions); }); afterEach(() => { dispose(); hideContextMenu(); + vi.restoreAllMocks(); }); function setup() { @@ -142,6 +157,50 @@ describe("Agents selection", () => { }); }); +describe("Agents docked view", () => { + it("shows the docked conversation above the list and switches it by selecting a task", () => { + useAgents.setState({ docked: "one" }); + setup(); + expect(screen.getByTestId("docked-session")).toBeTruthy(); + expect(screen.getByRole("button", { name: "Open in Editor" })).toBeTruthy(); + expect(openTask).not.toHaveBeenCalled(); + select("two"); + expect(actions.executeAction).toHaveBeenCalledWith("agents.dockTask", "two"); + expect(dockTask).toHaveBeenCalledWith("two"); + expect(openTask).not.toHaveBeenCalled(); + }); + + it("hides the docked task from the list below", () => { + useAgents.setState({ docked: "one" }); + setup(); + const tree = within(screen.getByRole("tree", { name: "Agent tasks" })); + expect(tree.queryByText("one")).toBeNull(); + expect(tree.getByText("two")).toBeTruthy(); + }); + + it("gives the whole tool window to the conversation when the docked task is the only one", () => { + useAgents.setState({ tasks: new Map([task("one")].map((t) => [t.id, t])), docked: "one" }); + setup(); + expect(screen.queryByRole("tree", { name: "Agent tasks" })).toBeNull(); + expect(screen.getByTestId("docked-session")).toBeTruthy(); + }); + + it("undocks from the docked conversation's bar", () => { + useAgents.setState({ docked: "one" }); + setup(); + fireEvent.click(screen.getByRole("button", { name: "Open in Editor" })); + expect(undockTask).toHaveBeenCalledTimes(1); + }); + + it("opens tabs as usual without a docked conversation", () => { + setup(); + expect(screen.queryByRole("button", { name: "Open in Editor" })).toBeNull(); + select("two"); + expect(openTask).toHaveBeenCalledWith("two"); + expect(dockTask).not.toHaveBeenCalled(); + }); +}); + describe("Agents bulk actions", () => { it("deletes the right-clicked selection after one confirmation, excluding group headers", async () => { const tasks = [task("one", "running"), task("two"), task("three")]; @@ -221,3 +280,68 @@ describe("Agents bulk actions", () => { expect(showError).toHaveBeenCalledWith("Cannot delete agent tasks", "one: Cannot remove worktree"); }); }); + +describe("Agents task menu", () => { + it("offers to dock a task into the tool window", async () => { + setup(); + context("one"); + fireEvent.click(screen.getByRole("menuitem", { name: "Open in Tool Window" })); + await waitFor(() => expect(dockTask).toHaveBeenCalledWith("one")); + }); + + it("offers to move the docked task back to an editor", async () => { + useAgents.setState({ docked: "one" }); + setup(); + // The docked task is not listed; its menu lives on the docked conversation's header. + const menu = taskMenu([useAgents.getState().tasks.get("one")!]); + expect(menu).toContainEqual(expect.objectContaining({ action: "agents.undockTask", label: "Open in Editor" })); + await taskActions.find((action) => action.id === "agents.undockTask")!.run({ ctx: {}, arg: "one" }); + await waitFor(() => expect(undockTask).toHaveBeenCalledTimes(1)); + }); +}); + +describe("Agents drag & drop", () => { + // jsdom has no elementFromPoint; the drop target is found through it. + const pointAt = (el: Element) => { + const original = document.elementFromPoint; + document.elementFromPoint = () => el; + return () => { + document.elementFromPoint = original; + }; + }; + + it("docks a session editor tab dropped on the tool window and highlights while it hovers", () => { + editor.tabInput = (paneId, tabId) => + paneId === "p" && tabId === "t" ? { kind: SESSION_KIND, key: "agent:one", data: { task: "one" } } : null; + setup(); + const view = document.querySelector(`.${styles.view}`)!; + const restore = pointAt(view); + try { + const session = dragSession({ type: EDITOR_TAB_MIME, payload: JSON.stringify({ paneId: "p", tabId: "t" }) }); + act(() => session.move(10, 10)); + expect(view.className).toContain(styles.dropTarget); + act(() => session.drop(10, 10)); + expect(actions.executeAction).toHaveBeenCalledWith("agents.dockTask", "one"); + expect(dockTask).toHaveBeenCalledWith("one"); + expect(view.className).not.toContain(styles.dropTarget); + } finally { + restore(); + } + }); + + it("ignores editor tab drags that are not agent sessions", () => { + editor.tabInput = () => null; + setup(); + const view = document.querySelector(`.${styles.view}`)!; + const restore = pointAt(view); + try { + const session = dragSession({ type: EDITOR_TAB_MIME, payload: JSON.stringify({ paneId: "p", tabId: "t" }) }); + act(() => session.move(10, 10)); + expect(view.className).not.toContain(styles.dropTarget); + act(() => session.drop(10, 10)); + expect(dockTask).not.toHaveBeenCalled(); + } finally { + restore(); + } + }); +}); diff --git a/src/features/agents/AgentsView.tsx b/src/features/agents/AgentsView.tsx index 97b8885c6..7dafe617a 100644 --- a/src/features/agents/AgentsView.tsx +++ b/src/features/agents/AgentsView.tsx @@ -1,14 +1,27 @@ /** Agents tool window: tasks grouped by what they need from the user. */ -import { useEffect, useMemo, useState } from "react"; +import { useEffect, useMemo, useRef, useState, type PointerEvent as ReactPointerEvent } from "react"; +import clsx from "clsx"; import type { AgentStatus as Status, AgentTask } from "@/bindings"; -import { maybeEditorService, type EditorInput } from "@/workbench/contributions"; -import { EmptyState, Icon, IconButton, Spinner, T, Tree, showContextMenu } from "@/ui"; -import { SESSION_KIND, age, branchLabel, groupTasks, type TaskGroup } from "./model"; -import { openHome, openTask, useAgents } from "./store"; +import { EDITOR_TAB_MIME, maybeEditorService, type EditorInput } from "@/workbench/contributions"; +import { + EmptyState, + Icon, + IconButton, + Spinner, + T, + Tree, + registerDropTarget, + showContextMenu, + startPointerDrag, +} from "@/ui"; +import { SESSION_KIND, TASK_DRAG, age, branchLabel, groupTasks, sessionKey, type TaskGroup } from "./model"; +import { openHome, useAgents } from "./store"; import { taskMenu } from "./taskActions"; +import { SessionEditor } from "./SessionEditor"; import styles from "./Agents.module.css"; import { basename, useProject } from "@/platform/project"; import { useTx } from "@/platform/i18n"; +import { executeAction } from "@/platform/actions"; export function AgentsHeaderActions() { return ( @@ -25,6 +38,18 @@ const nodeKey = (n: Node) => (n.kind === "group" ? `g:${n.group.status}` : n.tas const sessionTask = (input: EditorInput | null | undefined) => input?.kind === SESSION_KIND ? (input.data as { task?: string } | undefined)?.task : undefined; +/** The task of an editor tab drag payload (session tabs only), null for anything else. */ +const sessionPayloadTask = (payload: string): string | null => { + try { + const p = JSON.parse(payload) as { paneId?: unknown; tabId?: unknown }; + if (typeof p.paneId !== "string" || typeof p.tabId !== "string") return null; + const input = maybeEditorService()?.tabInput?.(p.paneId, p.tabId); + return input?.kind === SESSION_KIND ? ((input.data as { task?: string }).task ?? null) : null; + } catch { + return null; + } +}; + export function TaskStatusIcon({ status }: { status: Status }) { switch (status) { case "needsInput": @@ -51,6 +76,7 @@ export function AgentsView() { const tasks = useAgents((s) => s.tasks); const unread = useAgents((s) => s.unread); const providers = useAgents((s) => s.providers); + const docked = useAgents((s) => s.docked); const [collapsed, setCollapsed] = useState>(() => new Set(["g:archived"])); const [selected, setSelected] = useState>(() => { const task = sessionTask(maybeEditorService()?.activeInput?.()); @@ -69,8 +95,29 @@ export function AgentsView() { }), [], ); - const roots = useMemo(() => groupTasks(tasks.values()).map((group) => ({ kind: "group", group })), [tasks]); + // The docked conversation is already shown above; listing it again is noise. + const roots = useMemo( + () => groupTasks([...tasks.values()].filter((t) => t.id !== docked)).map((group) => ({ kind: "group", group })), + [tasks, docked], + ); const expanded = useMemo(() => new Set(roots.map(nodeKey).filter((k) => !collapsed.has(k))), [roots, collapsed]); + // Dropping a session editor tab anywhere on the tool window docks it. + const viewRef = useRef(null); + const [tabOver, setTabOver] = useState(false); + useEffect(() => { + const el = viewRef.current; + if (!el) return; + return registerDropTarget(el, { + accepts: (type) => type === EDITOR_TAB_MIME, + over: (data) => setTabOver(sessionPayloadTask(data.payload) != null), + leave: () => setTabOver(false), + drop: (data) => { + setTabOver(false); + const task = sessionPayloadTask(data.payload); + if (task) void executeAction("agents.dockTask", task); + }, + }); + }, [loaded, error]); if (!loaded) return (
@@ -79,80 +126,125 @@ export function AgentsView() { ); if (error) return {error}; const providerName = (id: string) => providers.find((p) => p.id === id)?.name ?? id; + // While a conversation is docked, clicking a task switches it instead of opening a tab. + const showTask = (task: string) => void executeAction(docked ? "agents.dockTask" : "agents.openTask", task); + const dockedTitle = docked ? (tasks.get(docked)?.title ?? docked) : null; + const dragTask = (e: ReactPointerEvent, task: string) => + startPointerDrag(e, e.currentTarget, { type: TASK_DRAG, payload: task }); return ( -
- - aria-label="Agent tasks" - roots={roots} - getKey={nodeKey} - getLabel={(n) => (n.kind === "group" ? n.group.label : n.task.title)} - getChildren={(n) => - n.kind === "group" ? n.group.tasks.map((task) => ({ kind: "task", task }) as Node) : undefined - } - isExpandable={(n) => n.kind === "group"} - expanded={expanded} - onExpandedChange={(_next, node, open) => - setCollapsed((c) => { - const s = new Set(c); - if (open) s.delete(nodeKey(node)); - else s.add(nodeKey(node)); - return s; - }) - } - selected={selected} - onSelectionChange={(sel, lead) => { - setSelected(sel); - if (sel.size === 1 && lead?.kind === "task" && sel.has(lead.task.id)) openTask(lead.task.id); - }} - onActivate={(n) => n.kind === "task" && openTask(n.task.id)} - onContextMenu={(n, sel, e) => { - if (n?.kind !== "task") return; - const selection = [...sel].flatMap((id) => { - const task = tasks.get(id); - return task ? [task] : []; - }); - showContextMenu(e, taskMenu(selection)); - }} - renderNode={(n) => - n.kind === "group" ? ( - - - {n.group.label} +
+
+ {docked && ( +
+
+ dragTask(e, docked)} + > + {dockedTitle} - {n.group.tasks.length} - - ) : ( - - - - {n.task.title} - - {unread.has(n.task.id) && ( - - )} - {project?.workspace && ( - - {basename(n.task.projectRoot ?? project.root)} - - )} - - {providerName(n.task.provider)} - {n.task.isolation === "worktree" ? ` · ${branchLabel(n.task.branch)}` : ""} - - {age(n.task.updatedMs ?? 0)} - - ) - } - empty={ -
- No agent tasks yet - + +
+
+ +
- } - /> + )} + {/* Docked with nothing else to list: give the whole window to the conversation. */} + {(roots.length > 0 || !docked) && ( +
+ + aria-label="Agent tasks" + roots={roots} + getKey={nodeKey} + getLabel={(n) => (n.kind === "group" ? n.group.label : n.task.title)} + getChildren={(n) => + n.kind === "group" ? n.group.tasks.map((task) => ({ kind: "task", task }) as Node) : undefined + } + isExpandable={(n) => n.kind === "group"} + expanded={expanded} + onExpandedChange={(_next, node, open) => + setCollapsed((c) => { + const s = new Set(c); + if (open) s.delete(nodeKey(node)); + else s.add(nodeKey(node)); + return s; + }) + } + selected={selected} + onSelectionChange={(sel, lead) => { + setSelected(sel); + if (sel.size === 1 && lead?.kind === "task" && sel.has(lead.task.id)) showTask(lead.task.id); + }} + onActivate={(n) => n.kind === "task" && showTask(n.task.id)} + onContextMenu={(n, sel, e) => { + if (n?.kind !== "task") return; + const selection = [...sel].flatMap((id) => { + const task = tasks.get(id); + return task ? [task] : []; + }); + showContextMenu(e, taskMenu(selection)); + }} + renderNode={(n) => + n.kind === "group" ? ( + + + {n.group.label} + + {n.group.tasks.length} + + ) : ( + dragTask(e, n.task.id)} + > + + + {n.task.title} + + {unread.has(n.task.id) && ( + + )} + {project?.workspace && ( + + {basename(n.task.projectRoot ?? project.root)} + + )} + + {providerName(n.task.provider)} + {n.task.isolation === "worktree" ? ` · ${branchLabel(n.task.branch)}` : ""} + + {age(n.task.updatedMs ?? 0)} + + ) + } + empty={ +
+ No agent tasks yet + +
+ } + /> +
+ )} +
); } diff --git a/src/features/agents/Session.module.css b/src/features/agents/Session.module.css index 9fa61ba0e..5b104f185 100644 --- a/src/features/agents/Session.module.css +++ b/src/features/agents/Session.module.css @@ -16,6 +16,13 @@ border-right: 1px solid var(--border); } +/* The conversation hugs its content; spare space stays below the composer + instead of inside the chat. */ +.streamArea, +.stream { + flex: 0 1 auto; +} + .header { display: flex; align-items: center; diff --git a/src/features/agents/SessionEditor.tsx b/src/features/agents/SessionEditor.tsx index 7e756a179..00d2ae510 100644 --- a/src/features/agents/SessionEditor.tsx +++ b/src/features/agents/SessionEditor.tsx @@ -70,7 +70,13 @@ import styles from "./Session.module.css"; export function SessionEditor({ input }: { input: EditorInput }) { const id = (input.data as { task: string }).task; + return ; +} + +function TaskSession({ id }: { id: string }) { const task = useAgents((s) => s.tasks.get(id)); + // The tool window bar above already shows the title of a docked conversation. + const docked = useAgents((s) => s.docked === id); const entries = useAgents((s) => s.entries.get(id)); const changes = useAgents((s) => s.changes.get(id)); const project = useProject((s) => s.project); @@ -113,7 +119,7 @@ export function SessionEditor({ input }: { input: EditorInput }) { if (!task) return ; return (
setFocusedSession(session)} onBlurCapture={(e) => { if (!e.currentTarget.contains(e.relatedTarget as Node | null) && focusedSession() === session) { @@ -129,6 +135,7 @@ export function SessionEditor({ input }: { input: EditorInput }) { changes={changes ?? null} changesOpen={changesOpen} onToggleChanges={() => setChangesOpen(!changesOpen)} + docked={docked} /> {view && } @@ -193,6 +200,7 @@ function Header({ changes, changesOpen, onToggleChanges, + docked, }: { task: AgentTask; entries: AgentEntry[] | null; @@ -200,6 +208,8 @@ function Header({ changes: AgentChange[] | null; changesOpen: boolean; onToggleChanges: () => void; + /** The tool window bar above a docked conversation already shows the title. */ + docked?: boolean; }) { const project = useProject((s) => s.project); const projectName = project?.workspace ? basename(task.projectRoot ?? project.root) : null; @@ -215,9 +225,11 @@ function Header({ }} > - - {task.title} - + {!docked && ( + + {task.title} + + )} @@ -372,11 +384,29 @@ interface StreamProps { function Stream({ task, entries, subagent, onOpenSubagent, finding, findFocus, onCloseFind }: StreamProps) { const ref = useRef(null); useSelectionBoundary(ref); - const stick = useRef(true); + const key = entriesKey(task.id, subagent?.id ?? null); + const positions = useAgents.getState().scrollPositions; + const position = useRef(positions.get(key) ?? { top: 0, stick: true }); + const restored = useRef(false); useLayoutEffect(() => { const el = ref.current; - if (el && stick.current) el.scrollTop = el.scrollHeight; + if (!el || entries === null) return; + if (position.current.stick) el.scrollTop = el.scrollHeight; + else if (!restored.current) el.scrollTop = position.current.top; + restored.current = true; }); + useLayoutEffect(() => { + const el = ref.current; + if (!el) return; + const observer = new ResizeObserver(() => { + if (position.current.stick) el.scrollTop = el.scrollHeight; + }); + observer.observe(el); + return () => { + observer.disconnect(); + if (restored.current) positions.set(key, { ...position.current, top: el.scrollTop }); + }; + }, [key, positions]); const waiting = entries?.some((e) => e.type === "permission" && !e.chosen); const lastUser = entries?.findLast((e): e is UserEntry => e.type === "user"); // Forks and undo apply to the task's own turns, not a subagent's conversation. @@ -391,7 +421,8 @@ function Stream({ task, entries, subagent, onOpenSubagent, finding, findFocus, o tabIndex={-1} onScroll={(e) => { const el = e.currentTarget; - stick.current = el.scrollHeight - el.scrollTop - el.clientHeight < 40; + position.current = { top: el.scrollTop, stick: el.scrollHeight - el.scrollTop - el.clientHeight < 40 }; + positions.set(key, position.current); }} // Copy, plus Quote for a selection: replies to it in the composer. onContextMenu={(e) => { diff --git a/src/features/agents/index.ts b/src/features/agents/index.ts index 84d5ec9db..a126567bd 100644 --- a/src/features/agents/index.ts +++ b/src/features/agents/index.ts @@ -9,6 +9,7 @@ import { executeAction } from "@/platform/actions"; import { lazyComponent } from "@/ui"; import { isVirtualUri } from "@/platform/virtualDocs"; import { + registerEditorDropHandler, registerEditorKind, registerMenuGroup, registerSettingsPage, @@ -17,7 +18,7 @@ import { toolWindowService, } from "@/workbench/contributions"; import { AgentsStatus } from "./AgentsStatus"; -import { HOME_KIND, REGISTRY_PAGE, SESSION_KIND, TOOL_WINDOW } from "./model"; +import { HOME_KIND, REGISTRY_PAGE, SESSION_KIND, TASK_DRAG, TOOL_WINDOW } from "./model"; import { sendPaths, sendSelection } from "./references"; import { focusedSession } from "./sessionFocus"; import { connect, disconnect, openHome, useAgents } from "./store"; @@ -79,6 +80,12 @@ export function activate(): () => void { icon: () => "toolwindow-agents", restorable: true, }), + // A task dragged from the tool window onto the editor opens as a tab (or undocks). + registerEditorDropHandler({ + accepts: (type) => type === TASK_DRAG, + drop: ({ payload }) => + void executeAction(useAgents.getState().docked === payload ? "agents.undockTask" : "agents.openTask", payload), + }), registerStatusItem({ id: "agents.status", align: "right", priority: 3, title: "Agents", component: AgentsStatus }), registerMenuGroup({ id: "agents.send", @@ -89,6 +96,26 @@ export function activate(): () => void { ? [{ kind: "action", action: "agents.sendToAgent", arg: menu === "projectView" ? paths : undefined }] : [], }), + registerMenuGroup({ + // Session tabs have no path; "Open in Tool Window" docks them beside the task list. + id: "agents.tab", + menus: ["editorTab"], + order: 50, + items: (_menu, { paths, input }) => { + const task = input?.kind === SESSION_KIND ? (input.data as { task?: string } | undefined)?.task : undefined; + return paths.length || !task + ? [] + : [ + { + kind: "action", + action: "agents.dockTask", + label: "Open in Tool Window", + icon: "open-in-tool-window", + arg: task, + }, + ]; + }, + }), registerActions([ ...taskActions, { diff --git a/src/features/agents/model.ts b/src/features/agents/model.ts index 38ad27cef..25b628d42 100644 --- a/src/features/agents/model.ts +++ b/src/features/agents/model.ts @@ -5,6 +5,8 @@ export const SESSION_KIND = "agent-session"; export const HOME_KIND = "agent-home"; export const HOME_KEY = "agent:new"; export const TOOL_WINDOW = "agents"; +/** MIME of a dragged agent task (a tree row or the docked conversation bar): the payload is the task id. */ +export const TASK_DRAG = "application/x-openidea-agent-task"; /** Settings › Tools › Agents: the ACP Registry. */ export const REGISTRY_PAGE = "tools.agents"; diff --git a/src/features/agents/sessionState.test.tsx b/src/features/agents/sessionState.test.tsx new file mode 100644 index 000000000..74dae983e --- /dev/null +++ b/src/features/agents/sessionState.test.tsx @@ -0,0 +1,185 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +import { act, fireEvent, render, screen, waitFor, within } from "@testing-library/react"; +import { registerActions } from "@/platform/actions"; +import type { AgentEntry, AgentTask } from "@/bindings"; +import { AgentsView } from "./AgentsView"; +import { SessionEditor } from "./SessionEditor"; +import { entriesKey, SESSION_KIND, sessionKey, type SubagentEntry } from "./model"; +import { disconnect, useAgents } from "./store"; +import { taskActions } from "./taskActions"; +import styles from "./Session.module.css"; + +const backend = vi.hoisted(() => ({ entries: new Map() })); +vi.mock("@/platform/ipc", async (original) => ({ + ...(await original()), + commands: { + agentEntries: async (id: string, sub: string | null) => ({ + status: "ok", + data: backend.entries.get(sub ? `${id}/${sub}` : id) ?? [], + }), + agentChanges: async () => ({ status: "ok", data: [] }), + vcsBranchInfo: async () => ({ status: "ok", data: { head: "main" } }), + }, +})); +vi.mock("@tauri-apps/api/webview", () => ({ + getCurrentWebview: () => ({ onDragDropEvent: () => Promise.resolve(() => {}) }), +})); +vi.mock("@/workbench/contributions", async (original) => ({ + ...(await original()), + editorService: () => ({ closeInput: vi.fn(), openInput: vi.fn() }), + toolWindowService: () => ({ show: vi.fn() }), +})); + +const task = (id: string): AgentTask => ({ + id, + title: id, + provider: "codex", + status: "ready", + isolation: "local", + model: null, + cwd: "/project", + branch: null, + base: null, + baseCommit: null, + error: null, + createdMs: 0, + updatedMs: 0, + config: [], + commands: [], + usage: null, + queue: [], +}); +const subagent: SubagentEntry = { + type: "subagent", + id: "child", + title: "Explore task A", + description: null, + status: "done", + error: null, + prompt: null, + reply: null, + tools: 0, + activity: null, + startedMs: 0, + endedMs: 1, + cancellable: false, +}; +const input = (id: string) => ({ kind: SESSION_KIND, key: sessionKey(id), data: { task: id } }); +const stream = () => document.querySelector(`.${styles.stream}`)!; + +const scrollTopDescriptor = Object.getOwnPropertyDescriptor(HTMLElement.prototype, "scrollTop"); +afterEach(() => { + vi.restoreAllMocks(); + if (scrollTopDescriptor) Object.defineProperty(HTMLElement.prototype, "scrollTop", scrollTopDescriptor); + else Reflect.deleteProperty(HTMLElement.prototype, "scrollTop"); +}); + +beforeEach(() => { + disconnect(); + backend.entries = new Map([ + ["A", [{ type: "agent", text: "Answer A" }, subagent]], + [entriesKey("A", "child"), [{ type: "agent", text: "Child answer" }]], + ["B", [{ type: "agent", text: "Answer B" }]], + ]); + useAgents.setState({ + loaded: true, + tasks: new Map([task("A"), task("B")].map((t) => [t.id, t])), + entries: new Map(backend.entries), + }); +}); + +describe("session state across tasks and hosts", () => { + it("returns to the task conversation when the docked task changes after opening a subagent", async () => { + const dispose = registerActions(taskActions); + try { + useAgents.setState({ docked: "A" }); + render(); + fireEvent.click(screen.getByRole("button", { name: /Explore task A/ })); + expect(await screen.findByText("Child answer")).toBeInTheDocument(); + expect(screen.queryByRole("textbox", { name: "Message" })).not.toBeInTheDocument(); + fireEvent.mouseDown(within(screen.getByRole("tree", { name: "Agent tasks" })).getByText("B"), { button: 0 }); + expect(await screen.findByText("Answer B")).toBeInTheDocument(); + expect(screen.getByRole("textbox", { name: "Message" })).toBeInTheDocument(); + expect(screen.queryByText("Child answer")).not.toBeInTheDocument(); + expect( + screen.queryByText("Subagents take their instructions from the agent that started them."), + ).not.toBeInTheDocument(); + expect(document.querySelector(`.${styles.subagentBar}`)).toBeNull(); + } finally { + dispose(); + } + }); + + it.each([false, true])("retains scrolling and follow-output (%s) when moving in both directions", async (stick) => { + // Give jsdom measurable scroll geometry; each host has a different viewport. + let viewport = 400; + let height = 2000; + vi.spyOn(HTMLElement.prototype, "scrollHeight", "get").mockImplementation(() => height); + vi.spyOn(HTMLElement.prototype, "clientHeight", "get").mockImplementation(() => viewport); + const tops = new WeakMap(); + Object.defineProperty(HTMLElement.prototype, "scrollTop", { + configurable: true, + get(this: HTMLElement) { + return tops.get(this) ?? 0; + }, + set(this: HTMLElement, top: number) { + tops.set(this, Math.max(0, Math.min(top, height - viewport))); + }, + }); + const view = render(); + await screen.findByText("Answer A"); + stream().scrollTop = stick ? height - viewport : 230; + fireEvent.scroll(stream()); + expect(useAgents.getState().scrollPositions.get("A")).toEqual({ top: stick ? 1600 : 230, stick }); + view.unmount(); + viewport = 150; + useAgents.setState({ docked: "A" }); + const dock = render(); + await screen.findByText("Answer A"); + expect(stream().scrollTop).toBe(stick ? height - viewport : 230); + height = 2400; + act(() => + useAgents.setState({ + entries: new Map(backend.entries).set("A", [ + ...backend.entries.get("A")!, + { type: "agent", text: "More output" }, + ]), + }), + ); + expect(stream().scrollTop).toBe(stick ? height - viewport : 230); + dock.unmount(); + viewport = 400; + useAgents.setState({ docked: null }); + render(); + await screen.findByText("Answer A"); + expect(stream().scrollTop).toBe(stick ? height - viewport : 230); + }); + + it("keeps task and subagent scroll positions separate", async () => { + useAgents.getState().scrollPositions.set("A", { top: 120, stick: false }); + useAgents.getState().scrollPositions.set("A/child", { top: 70, stick: false }); + useAgents.getState().scrollPositions.set("B", { top: 340, stick: false }); + const view = render(); + await screen.findByText("Answer A"); + expect(stream().scrollTop).toBe(120); + fireEvent.click(screen.getByRole("button", { name: /Explore task A/ })); + await screen.findByText("Child answer"); + expect(stream().scrollTop).toBe(70); + view.rerender(); + await screen.findByText("Answer B"); + expect(stream().scrollTop).toBe(340); + view.rerender(); + await screen.findByText("Answer A"); + expect(stream().scrollTop).toBe(120); + }); + + it("restores after entries load and clears positions on project disconnect", async () => { + useAgents.getState().scrollPositions.set("A", { top: 230, stick: false }); + useAgents.setState({ entries: new Map() }); + render(); + await waitFor(() => expect(screen.getByText("Answer A")).toBeInTheDocument()); + expect(stream().scrollTop).toBe(230); + act(() => disconnect()); + expect(useAgents.getState().scrollPositions.size).toBe(0); + }); +}); diff --git a/src/features/agents/store.ts b/src/features/agents/store.ts index 459b6c657..776093b0e 100644 --- a/src/features/agents/store.ts +++ b/src/features/agents/store.ts @@ -15,13 +15,14 @@ import type { import { useProject } from "@/platform/project"; import { defaultTaskProject } from "./project"; import { call, commands, isTauri } from "@/platform/ipc"; -import { editorService, notifications } from "@/workbench/contributions"; +import { editorService, notifications, toolWindowService } from "@/workbench/contributions"; import { bypassDefaults, canSend, emptyDraft, toPrompt, type ComposerDraft, type FileRef } from "./composerModel"; import { withQuote } from "./conversation"; import { HOME_KEY, HOME_KIND, SESSION_KIND, + TOOL_WINDOW, attentionChange, entriesKey, isBusy, @@ -53,6 +54,8 @@ interface AgentsState { /** Entries of the tasks (and subagents) opened in this window, by `entriesKey`. */ entries: Map; changes: Map; + /** Scroll position and follow-output preference by conversation, shared by both hosts. */ + scrollPositions: Map; providers: AgentProvider[]; draft: Draft; composers: Map; @@ -62,6 +65,8 @@ interface AgentsState { history: string[]; /** The composer asked to take focus (`seq` tells repeated requests apart). */ focus: { key: string; seq: number } | null; + /** Task shown inside the Agents tool window instead of an editor tab. */ + docked: string | null; } const DRAFT_KEY = "openidea.agents.draft.v2"; @@ -100,6 +105,8 @@ export const useAgents = create(() => ({ lastComposer: HOME, history: load(HISTORY_KEY, []), focus: null, + docked: null, + scrollPositions: new Map(), })); export function updateDraft(patch: Partial) { @@ -202,6 +209,8 @@ export function disconnect() { unread: new Set(), entries: new Map(), changes: new Map(), + docked: null, + scrollPositions: new Map(), }); } @@ -227,7 +236,7 @@ function onEvent(e: AgentEvent) { composers.delete(e.id); const unread = new Set(s.unread); unread.delete(e.id); - useAgents.setState({ tasks, composers, unread }); + useAgents.setState({ tasks, composers, unread, ...(s.docked === e.id ? { docked: null } : {}) }); void editorService().closeInput?.(sessionKey(e.id)); break; } @@ -349,6 +358,21 @@ export function openTask(task: string) { void editorService().openInput({ kind: SESSION_KIND, key: sessionKey(task), data: { task, title } }, { focus: true }); } +/** Shows the conversation inside the Agents tool window, closing its editor tab. */ +export function dockTask(task: string) { + useAgents.setState({ docked: task }); + toolWindowService().show(TOOL_WINDOW, true); + void editorService().closeInput?.(sessionKey(task)); +} + +/** Moves the docked conversation back to an editor tab. */ +export function undockTask() { + const docked = useAgents.getState().docked; + if (!docked) return; + useAgents.setState({ docked: null }); + openTask(docked); +} + /** Opens the New Task page; `prompt` pre-fills it. */ export function openHome(prompt?: string) { const project = useProject.getState().project; diff --git a/src/features/agents/taskActions.ts b/src/features/agents/taskActions.ts index b846a4436..3549cda81 100644 --- a/src/features/agents/taskActions.ts +++ b/src/features/agents/taskActions.ts @@ -4,7 +4,7 @@ import { tx } from "@/platform/i18n"; import type { MenuItem } from "@/ui"; import { showError, confirmChecked } from "@/workbench/messages"; import { isBusy } from "./model"; -import { archiveTask, unarchiveTask, deleteTask, forkTask, openTask, useAgents } from "./store"; +import { archiveTask, unarchiveTask, deleteTask, dockTask, forkTask, openTask, undockTask, useAgents } from "./store"; const canArchive = (task: AgentTask) => !isBusy(task.status) && task.status !== "archived"; const canFork = (task: AgentTask) => canArchive(task) && !!task.capabilities?.fork; @@ -68,6 +68,22 @@ export const taskActions: Action[] = [ if (typeof arg === "string") openTask(arg); }, }, + { + id: "agents.dockTask", + title: "Open Agent Task in Tool Window", + category: "Agents", + hidden: true, + run: ({ arg }) => { + if (typeof arg === "string") dockTask(arg); + }, + }, + { + id: "agents.undockTask", + title: "Open Agent Task in Editor", + category: "Agents", + hidden: true, + run: () => undockTask(), + }, { id: "agents.forkTask", title: "Copy Agent Task to a New Task", @@ -115,10 +131,20 @@ export function taskMenu(tasks: AgentTask[]): MenuItem[] { const multiple = tasks.length > 1; const archived = tasks.filter((task) => task.status === "archived").length; const archivable = tasks.filter(canArchive).length; + const docked = useAgents.getState().docked; return [ ...(!multiple ? ([ { kind: "action", action: "agents.openTask", label: "Open", arg: task.id }, + docked === task.id + ? { kind: "action", action: "agents.undockTask", label: "Open in Editor", icon: "editor-only" } + : { + kind: "action", + action: "agents.dockTask", + label: "Open in Tool Window", + icon: "open-in-tool-window", + arg: task.id, + }, { kind: "action", action: "terminal.openAt", label: "Open in Terminal", icon: "terminal", arg: task.cwd }, ...(task.capabilities?.fork && task.status !== "archived" ? ([ diff --git a/src/features/agents/unread.test.tsx b/src/features/agents/unread.test.tsx index 3c78162e1..52dfb0491 100644 --- a/src/features/agents/unread.test.tsx +++ b/src/features/agents/unread.test.tsx @@ -1,11 +1,13 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { act, fireEvent, render, screen } from "@testing-library/react"; import type { AgentEntry, AgentEvent, AgentTask } from "@/bindings"; -import { useContributions } from "@/workbench/contributions"; +import { dropOnEditor, useContributions } from "@/workbench/contributions"; import { AgentsView } from "./AgentsView"; import { AgentsStatus } from "./AgentsStatus"; import { activate } from "./index"; -import { connect, disconnect, markVisible, useAgents } from "./store"; +import * as actions from "@/platform/actions"; +import { TASK_DRAG } from "./model"; +import { connect, disconnect, dockTask, markVisible, undockTask, useAgents } from "./store"; const backend = vi.hoisted(() => ({ channel: null as { onmessage: (event: AgentEvent) => void } | null, @@ -13,6 +15,7 @@ const backend = vi.hoisted(() => ({ notify: vi.fn(), openInput: vi.fn(), closeInput: vi.fn(), + showToolWindow: vi.fn(), })); vi.mock("@tauri-apps/api/core", async (original) => ({ @@ -36,6 +39,7 @@ vi.mock("@/platform/ipc", async (original) => ({ vi.mock("@/workbench/contributions", async (original) => ({ ...(await original()), editorService: () => ({ openInput: backend.openInput, closeInput: backend.closeInput }), + toolWindowService: () => ({ show: backend.showToolWindow }), notifications: () => ({ notify: backend.notify }), })); @@ -222,3 +226,52 @@ describe("agent unread indicators", () => { } }); }); + +describe("docking a conversation in the tool window", () => { + it("shows the task in the tool window, closing its editor tab, and undocks back to one", async () => { + act(() => dockTask("one")); + expect(useAgents.getState().docked).toBe("one"); + expect(backend.showToolWindow).toHaveBeenCalledWith("agents", true); + expect(backend.closeInput).toHaveBeenCalledWith("agent:one"); + act(() => undockTask()); + expect(useAgents.getState().docked).toBeNull(); + expect(backend.openInput).toHaveBeenCalledWith( + expect.objectContaining({ kind: "agent-session", key: "agent:one" }), + { focus: true }, + ); + }); + + it("undocks a removed task", async () => { + act(() => dockTask("one")); + emit({ type: "removed", id: "one" }); + expect(useAgents.getState().docked).toBeNull(); + }); + + it("drops a dragged task into the editor: undocking when docked, opening a tab otherwise", () => { + const dispose = activate(); + const execute = vi.spyOn(actions, "executeAction"); + act(() => dropOnEditor({ type: TASK_DRAG, payload: "two" })); + expect(execute).toHaveBeenCalledWith("agents.openTask", "two"); + expect(useAgents.getState().docked).toBeNull(); + expect(backend.openInput).toHaveBeenCalledWith( + expect.objectContaining({ kind: "agent-session", key: "agent:two" }), + { focus: true }, + ); + backend.openInput.mockClear(); + act(() => dockTask("one")); + act(() => dropOnEditor({ type: TASK_DRAG, payload: "one" })); + expect(execute).toHaveBeenCalledWith("agents.undockTask", "one"); + expect(useAgents.getState().docked).toBeNull(); + expect(backend.openInput).toHaveBeenCalledWith( + expect.objectContaining({ kind: "agent-session", key: "agent:one" }), + { focus: true }, + ); + dispose(); + }); + + it("drops the dock when the project changes", async () => { + act(() => dockTask("one")); + disconnect(); + expect(useAgents.getState().docked).toBeNull(); + }); +}); diff --git a/src/platform/locales/text/zh.json b/src/platform/locales/text/zh.json index 9d644f86e..daff493a2 100644 --- a/src/platform/locales/text/zh.json +++ b/src/platform/locales/text/zh.json @@ -1359,10 +1359,12 @@ "Open console for tool output": "为工具输出打开控制台", "Open documents": "打开的文档", "Open in Browser": "在浏览器中打开", + "Open in Editor": "在编辑器中打开", "Open in Find Tool Window": "在“查找”工具窗口中打开", "Open in Find Window": "在查找窗口中打开", "Open in Opposite Group": "在相对组中打开", "Open in New Window": "在新窗口中打开", + "Open in Tool Window": "在工具窗口中打开", "Open in Terminal": "在终端中打开", "Open in editor": "在编辑器中打开", "Open moved files in editor": "在编辑器中打开已移动的文件", @@ -4816,6 +4818,8 @@ "Add to .git/info/exclude": "添加到 .git/info/exclude", "Delete Agent Tasks": "删除 Agent 任务", "Open Agent Task": "打开 Agent 任务", + "Open Agent Task in Editor": "在编辑器中打开 Agent 任务", + "Open Agent Task in Tool Window": "在工具窗口中打开 Agent 任务", "Archive Agent Tasks": "归档 Agent 任务", "Delete {count} agent tasks? Their branches and files outside worktrees are kept.": "是否删除这 {count} 个 Agent 任务?它们的分支及 worktree 以外的文件将保留。", "Also remove their worktree folders": "同时删除它们的 worktree 目录", diff --git a/src/workbench/contributions.ts b/src/workbench/contributions.ts index 9348884fb..74f44beb4 100644 --- a/src/workbench/contributions.ts +++ b/src/workbench/contributions.ts @@ -19,6 +19,7 @@ import { } from "react"; import type { FileMatches, SearchQuery, RunConfig } from "@/bindings"; import type { MenuItem } from "@/ui/Menu"; +import type { DragData } from "@/ui/pointerDrag"; import type { TreeReorder } from "@/ui/Tree"; import { create } from "zustand"; import { useShallow } from "zustand/react/shallow"; @@ -501,6 +502,9 @@ export interface OpenEditorTab { lastActive: number; } +/** MIME of a dragged editor tab: the payload is `{ paneId, tabId }` as JSON. */ +export const EDITOR_TAB_MIME = "application/x-openidea-editor-tab"; + export interface EditorService { openFile(path: string, options?: OpenOptions): Promise; openInput(input: EditorInput, options?: OpenOptions): Promise; @@ -518,6 +522,8 @@ export interface EditorService { openPaths?(): string[]; /** Every open tab, files or not, most recently active first (Switcher). */ openTabs?(): OpenEditorTab[]; + /** Input of the tab `tabId` in pane `paneId` (dragging tabs between views), null if there is none. */ + tabInput?(paneId: string, tabId: string): EditorInput | null; /** Input of the active tab (any kind), if any. */ activeInput?(): EditorInput | null; /** Calls `fn` whenever the active tab changes; returns the unsubscribe. */ @@ -632,6 +638,40 @@ export const maybeEditorService = (): EditorService | undefined => services.edit /** Creates terminal widgets; provided by the terminal feature. */ export const embeddedTerminal = (): EmbeddedTerminalFactory | undefined => services.embeddedTerminal; +/** + * Handles a pointer drag dropped on the editor content: features register handlers for + * their own drag types (e.g. an agent task dragged from the tool window) without the + * editor depending on them. The editor shows its center drop-zone for accepted types. + */ +export interface EditorDropHandler { + accepts(type: string): boolean; + drop(data: DragData): void; +} + +const editorDropHandlers: EditorDropHandler[] = []; + +/** Registers a handler for drags dropped on editor content; returns the unregister. */ +export function registerEditorDropHandler(handler: EditorDropHandler): () => void { + editorDropHandlers.push(handler); + return () => { + const i = editorDropHandlers.indexOf(handler); + if (i >= 0) editorDropHandlers.splice(i, 1); + }; +} + +/** Whether any registered handler takes this drag type. */ +export function acceptsEditorDrop(type: string): boolean { + return editorDropHandlers.some((h) => h.accepts(type)); +} + +/** Hands a drag dropped on editor content to its registered handler, if any. */ +export function dropOnEditor(data: DragData): boolean { + const handler = editorDropHandlers.find((h) => h.accepts(data.type)); + if (!handler) return false; + handler.drop(data); + return true; +} + /** Editor-backed results, recomputed on rerun without reading files from disk. */ export interface FindResultsSource { title: string; @@ -897,6 +937,8 @@ export interface MenuGroupContext { text?: string; /** Editor menu: 0-based caret line; gutter menu: the clicked line. */ line?: number; + /** The tab's input, when the menu is for an editor tab without a path. */ + input?: EditorInput; } export interface MenuGroupContribution { From ad80e903e3004c3f97c3a749fb3848175ebbd185 Mon Sep 17 00:00:00 2001 From: arookieofc <2128194521@qq.com> Date: Sun, 1 Nov 2026 11:38:26 +0800 Subject: [PATCH 03/27] feat(settings): add "Show tool window badges" (#637) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Counts on the tool window stripe icons (changed files on Commit, problems, agent tasks needing input, running processes) can be turned off in Settings › Appearance & Behavior › Appearance › Tool Windows. On by default; the setting is stored in appearance settings and survives restarts. Co-authored-by: a-rookie-of-C-language <186315048+a-rookie-of-C-language@users.noreply.github.com> --- crates/ide-core/src/settings.rs | 17 ++++++++ src/bindings.ts | 1 + .../settings/__tests__/behavior.test.ts | 6 +++ src/features/settings/model/behaviorSchema.ts | 3 ++ src/features/settings/pages/behavior.tsx | 5 +++ src/platform/locales/text/zh.json | 2 + src/workbench/toolwindows/ToolWindows.tsx | 4 +- src/workbench/toolwindows/badges.test.tsx | 43 +++++++++++++++++++ 8 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 src/workbench/toolwindows/badges.test.tsx diff --git a/crates/ide-core/src/settings.rs b/crates/ide-core/src/settings.rs index 5900f7e80..f9390f0da 100644 --- a/crates/ide-core/src/settings.rs +++ b/crates/ide-core/src/settings.rs @@ -292,6 +292,7 @@ pub struct AppearanceSettings { pub editor_antialiasing: String, pub show_tool_window_bars: bool, pub show_tool_window_names: bool, + pub show_tool_window_badges: bool, pub widescreen_tool_windows: bool, /// Status bar widgets shown (`true`) or hidden (`false`) by the user /// (status bar context menu); widgets not listed use their default. @@ -338,6 +339,7 @@ impl Default for AppearanceSettings { editor_antialiasing: "greyscale".into(), show_tool_window_bars: true, show_tool_window_names: false, + show_tool_window_badges: true, widescreen_tool_windows: false, status_bar_widgets: BTreeMap::new(), main_toolbar: None, @@ -719,6 +721,21 @@ impl Settings { mod tests { use super::*; + #[test] + fn tool_window_badges_default_on_and_round_trip() { + let old: Settings = serde_json::from_str(r#"{"appearance":{"showToolWindowNames":true}}"#).unwrap(); + assert!(old.appearance.show_tool_window_badges); + assert!(Settings::default().appearance.show_tool_window_badges); + for enabled in [false, true] { + let mut settings = Settings::default(); + settings.appearance.show_tool_window_badges = enabled; + let json = serde_json::to_value(&settings).unwrap(); + assert_eq!(json["appearance"]["showToolWindowBadges"], enabled); + let restored: Settings = serde_json::from_value(json).unwrap(); + assert_eq!(restored.appearance.show_tool_window_badges, enabled); + } + } + #[test] fn main_menu_style_defaults_and_round_trips() { let old: Settings = serde_json::from_str(r#"{"appearance":{"compactMode":true}}"#).unwrap(); diff --git a/src/bindings.ts b/src/bindings.ts index a70080cf7..20ee0eba2 100644 --- a/src/bindings.ts +++ b/src/bindings.ts @@ -1434,6 +1434,7 @@ export type AppearanceSettings = { editorAntialiasing?: string, showToolWindowBars?: boolean, showToolWindowNames?: boolean, + showToolWindowBadges?: boolean, widescreenToolWindows?: boolean, /** * Status bar widgets shown (`true`) or hidden (`false`) by the user diff --git a/src/features/settings/__tests__/behavior.test.ts b/src/features/settings/__tests__/behavior.test.ts index de00873e7..3f2cff405 100644 --- a/src/features/settings/__tests__/behavior.test.ts +++ b/src/features/settings/__tests__/behavior.test.ts @@ -21,6 +21,12 @@ describe("appearance & behavior settings", () => { expect(validateAppearanceExtras({ theme: "system" }).syncWithOs).toBe(true); }); + it("defaults Show tool window badges to on and honours the stored value", () => { + expect(validateAppearanceExtras({}).showToolWindowBadges).toBe(true); + expect(validateAppearanceExtras({ showToolWindowBadges: false }).showToolWindowBadges).toBe(false); + expect(validateAppearanceExtras({ showToolWindowBadges: 1 }).showToolWindowBadges).toBe(true); + }); + it("formats dates with an override pattern and pretty dates", () => { const d = new Date(2026, 0, 5, 14, 7); expect(formatPattern(d, "dd.MM.yyyy")).toBe("05.01.2026"); diff --git a/src/features/settings/model/behaviorSchema.ts b/src/features/settings/model/behaviorSchema.ts index 6ee7b326f..37fadb745 100644 --- a/src/features/settings/model/behaviorSchema.ts +++ b/src/features/settings/model/behaviorSchema.ts @@ -33,6 +33,7 @@ export interface AppearanceExtras { editorAntialiasing: Antialiasing; showToolWindowBars: boolean; showToolWindowNames: boolean; + showToolWindowBadges: boolean; widescreenToolWindows: boolean; } @@ -84,6 +85,7 @@ export const DEFAULT_APPEARANCE_EXTRAS: AppearanceExtras = { editorAntialiasing: "greyscale", showToolWindowBars: true, showToolWindowNames: false, + showToolWindowBadges: true, widescreenToolWindows: false, }; @@ -134,6 +136,7 @@ export function validateAppearanceExtras(raw: unknown): AppearanceExtras { editorAntialiasing: oneOf(a.editorAntialiasing, AA, d.editorAntialiasing), showToolWindowBars: b("showToolWindowBars"), showToolWindowNames: b("showToolWindowNames"), + showToolWindowBadges: b("showToolWindowBadges"), widescreenToolWindows: b("widescreenToolWindows"), }; } diff --git a/src/features/settings/pages/behavior.tsx b/src/features/settings/pages/behavior.tsx index ed4f12ae9..f2a1732a0 100644 --- a/src/features/settings/pages/behavior.tsx +++ b/src/features/settings/pages/behavior.tsx @@ -284,6 +284,11 @@ function ToolWindowsGrid() { <> + } right={ diff --git a/src/platform/locales/text/zh.json b/src/platform/locales/text/zh.json index daff493a2..f66b845de 100644 --- a/src/platform/locales/text/zh.json +++ b/src/platform/locales/text/zh.json @@ -1985,6 +1985,8 @@ "Show the parameter info popup in": "在以下时间后显示形参信息弹出窗口", "Show the selected coverage suite in editors and the project view": "在编辑器和项目视图中显示所选覆盖率套件", "Show tool window bars": "显示工具窗口栏", + "Show tool window badges": "显示工具窗口角标", + "Counts on the stripe icons, e.g. changed files or agent tasks needing input": "侧栏图标上的数字,如变更文件数、等待输入的智能体任务数", "Show tool window names": "显示工具窗口名称", "Show value tooltip on code selection": "选中代码时显示值提示", "Show value tooltip on mouse hover": "鼠标悬停时显示值工具提示", diff --git a/src/workbench/toolwindows/ToolWindows.tsx b/src/workbench/toolwindows/ToolWindows.tsx index 3d874c903..d957e2a7d 100644 --- a/src/workbench/toolwindows/ToolWindows.tsx +++ b/src/workbench/toolwindows/ToolWindows.tsx @@ -359,8 +359,10 @@ function startStripeDrag(e: PointerEvent, id: string) { } function StripeBadge({ useBadge }: { useBadge: () => number | string | null }) { + // Settings › Appearance › Tool Windows › "Show tool window badges". + const showBadges = useProject((s) => s.settings?.appearance?.showToolWindowBadges) !== false; const value = useBadge(); - if (value === null || value === 0 || value === "") return null; + if (!showBadges || value === null || value === 0 || value === "") return null; return {typeof value === "number" && value > 99 ? "99+" : value}; } diff --git a/src/workbench/toolwindows/badges.test.tsx b/src/workbench/toolwindows/badges.test.tsx new file mode 100644 index 000000000..1a6741e63 --- /dev/null +++ b/src/workbench/toolwindows/badges.test.tsx @@ -0,0 +1,43 @@ +import { act, render, screen } from "@testing-library/react"; +import { afterEach, beforeEach, expect, it } from "vitest"; +import { create } from "zustand"; +import { useProject } from "@/platform/project"; +import { ToolWindowStripe } from "./ToolWindows"; +import { resetToolWindowLayout, useToolWindowLayout } from "./store"; + +beforeEach(() => { + resetToolWindowLayout(); + useProject.setState({ settings: null }); +}); + +afterEach(() => useProject.setState({ settings: null })); + +it("hides stripe counts immediately and restores the current count when enabled", () => { + const useCount = create(() => ({ count: 3 })); + render( + null, + useBadge: () => useCount((s) => s.count), + }, + ]} + />, + ); + const button = screen.getByRole("button", { name: "Git" }); + expect(button).toHaveTextContent("3"); + act(() => useProject.setState({ settings: { appearance: { showToolWindowBadges: false } } })); + expect(button).not.toHaveTextContent("3"); + act(() => useCount.setState({ count: 7 })); + expect(button).not.toHaveTextContent("7"); + act(() => useProject.setState({ settings: { appearance: { showToolWindowBadges: true } } })); + expect(button).toHaveTextContent("7"); + act(() => useCount.setState({ count: 0 })); + expect(button).not.toHaveTextContent("0"); +}); From 7a58d9f253297e4e73afe9a151fff2ca8d290e3c Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sun, 1 Nov 2026 12:08:44 +0800 Subject: [PATCH 04/27] fix(java): bundle Lombok agent with Equinox config lookup fix (#642) lombok.config was ignored in Java builds (e.g. lombok.accessors.chain=true produced void setters), and jdt.ls wrote those classes into target/classes, breaking later Maven builds. Root cause: Lombok calls getModuleClassLoader(boolean), which newer Equinox removed; the exception is swallowed, Lombok resolves the wrong source path and finds no lombok.config at all, so every config key falls back to its default. Affects every Java project using lombok.config. Fix: ship Lombok 1.18.48 with the upstream fix projectlombok/lombok#4059 (lombok-1.18.48-openidea.1, embedded in the app, no download) as the jdt.ls agent; the versioned path also resets the jdt.ls workspace so stale output is rebuilt. A user-configured agent still takes precedence. Return to Maven Central once an official release includes the fix (source and checksum in plugins/lombok/README.md). Verified on macOS: 5 clean builds with chained setters, identical output to official 1.18.48 without lombok.config, the app rebuilds already-poisoned target/classes, and Run works. Windows and Linux not run. Fixes #565 --- THIRD_PARTY_LICENSES.md | 8 ++ crates/ide-sdk/src/java.rs | 14 +++ crates/ide-sdk/src/lombok.rs | 23 +++- crates/ide-tools/src/bundled.rs | 28 +++++ crates/ide-tools/src/lib.rs | 25 ++++- crates/ide-tools/src/registry.rs | 19 ++-- crates/ide-tools/src/sources.rs | 1 - crates/ide-tools/src/tests.rs | 55 ++++++++++ plugins/lombok/LICENSE | 104 +++++++++++++++++++ plugins/lombok/README.md | 71 +++++++++++++ plugins/lombok/SHA256SUMS | 1 + plugins/lombok/lombok-1.18.48-openidea.1.jar | Bin 0 -> 2051359 bytes 12 files changed, 332 insertions(+), 17 deletions(-) create mode 100644 crates/ide-tools/src/bundled.rs create mode 100644 plugins/lombok/LICENSE create mode 100644 plugins/lombok/README.md create mode 100644 plugins/lombok/SHA256SUMS create mode 100644 plugins/lombok/lombok-1.18.48-openidea.1.jar diff --git a/THIRD_PARTY_LICENSES.md b/THIRD_PARTY_LICENSES.md index 9a377fecd..94751e75a 100644 --- a/THIRD_PARTY_LICENSES.md +++ b/THIRD_PARTY_LICENSES.md @@ -1,5 +1,13 @@ # Third-party licenses +## Project Lombok + +`plugins/lombok/lombok-1.18.48-openidea.1.jar` contains Project Lombok v1.18.48 with the Equinox +classloader fix from [projectlombok/lombok#4059](https://github.com/projectlombok/lombok/pull/4059). +Copyright (C) 2009-2021 The Project Lombok Authors. MIT license and bundled component +notices are retained in [plugins/lombok/LICENSE](plugins/lombok/LICENSE) and inside the jar. +Source tag, patch commits and build instructions: [plugins/lombok/README.md](plugins/lombok/README.md). + ## JetBrains IntelliJ Platform icons `src/ui/expui/**` contains SVG icons from the IntelliJ Platform "new UI" (expui) diff --git a/crates/ide-sdk/src/java.rs b/crates/ide-sdk/src/java.rs index 755778568..bf86f5815 100644 --- a/crates/ide-sdk/src/java.rs +++ b/crates/ide-sdk/src/java.rs @@ -717,6 +717,20 @@ mod tests { configure_jdtls(&mut plain, Path::new("/p"), Path::new("/data"), &[], None, None, JDTLS_MIN_JAVA, &[], None); let data = |c: &LanguageServerConfig| c.args[c.args.iter().position(|a| a == "-data").unwrap() + 1].clone(); assert_ne!(data(&cfg), data(&plain), "a separate workspace, so everything is rebuilt with the agent"); + let patched = Path::new("/managed/lombok-1.18.48-openidea.1.jar"); + let mut fixed = jdtls(); + configure_jdtls( + &mut fixed, + Path::new("/p"), + Path::new("/data"), + &[], + None, + None, + JDTLS_MIN_JAVA, + &[], + Some(patched), + ); + assert_ne!(data(&cfg), data(&fixed), "the patch must rebuild classes compiled with the official agent"); let before = cfg.clone(); configure_jdtls(&mut cfg, Path::new("/p"), Path::new("/data"), &[], None, None, JDTLS_MIN_JAVA, &[], Some(jar)); assert_eq!(cfg, before, "idempotent"); diff --git a/crates/ide-sdk/src/lombok.rs b/crates/ide-sdk/src/lombok.rs index f8958bc40..67c383385 100644 --- a/crates/ide-sdk/src/lombok.rs +++ b/crates/ide-sdk/src/lombok.rs @@ -1,6 +1,6 @@ //! Lombok for jdtls: ECJ only generates Lombok members when the language //! server's JVM runs `-javaagent:lombok.jar`, so a project using Lombok gets the -//! newest jar available, managed (installed by the IDE) or in the Maven / Gradle caches. +//! app-provided jar, or falls back to the newest release in the Maven / Gradle caches. use crate::home_dir; use std::path::{Path, PathBuf}; @@ -18,7 +18,7 @@ pub enum LombokAgent { Missing, Found { jar: PathBuf, - /// `None` for the managed jar (the latest release when installed). + /// `None` for the app-provided jar (its version is shown by the tool registry). version: Option, }, } @@ -64,7 +64,7 @@ pub fn agent_in_args<'a>(args: impl IntoIterator) -> Option std::io::Result { + let Method::Bundled { filename, bytes, .. } = spec.method else { unreachable!("bundled tool") }; + let dir = root.join(spec.name).join("bin"); + // The agent path participates in the JDT LS workspace key: upgrades must + // discard incremental state compiled with the previous agent. + let path = dir.join(filename); + if std::fs::read(&path).is_ok_and(|old| old == bytes) { + return Ok(path); + } + std::fs::create_dir_all(&dir)?; + let nonce = std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH).unwrap_or_default().as_nanos(); + let temporary = dir.join(format!(".{filename}-{}-{nonce}.tmp", std::process::id())); + let result = std::fs::write(&temporary, bytes).and_then(|_| std::fs::rename(&temporary, &path)); + if let Err(error) = result { + let _ = std::fs::remove_file(&temporary); + // Another window may have installed the same bytes concurrently. + if !std::fs::read(&path).is_ok_and(|old| old == bytes) { + tracing::warn!(tool = spec.name, %error, "Bundled plugin unavailable"); + return Err(error); + } + } + Ok(path) +} diff --git a/crates/ide-tools/src/lib.rs b/crates/ide-tools/src/lib.rs index d5cd36c0d..51272bf6c 100644 --- a/crates/ide-tools/src/lib.rs +++ b/crates/ide-tools/src/lib.rs @@ -10,6 +10,7 @@ //! [`tools_bin_dirs`] on the process `PATH` at startup. pub mod archive; +mod bundled; pub mod jdk; pub mod platform; mod process; @@ -146,7 +147,7 @@ fn managed_bin_dir(root: &Path, spec: &ToolSpec, platform: Platform) -> Option

{ Some(root.join(spec.name).join("venv").join(if platform.os == Os::Windows { "Scripts" } else { "bin" })) } - Method::Rustup { .. } | Method::PipUser { .. } | Method::PipTarget { .. } => None, + Method::Bundled { .. } | Method::Rustup { .. } | Method::PipUser { .. } | Method::PipTarget { .. } => None, } } @@ -389,9 +390,12 @@ fn is_bundle(command: &str) -> bool { command.ends_with(".jar") } -/// Path of an installed plugin bundle (`//bin/`), if present. +/// Path of an app-provided or installed plugin jar. Embedded jars are materialized on demand. pub fn managed_bundle(app_data: &Path, name: &str) -> Option { let spec = registry::find(name)?; + if matches!(spec.method, Method::Bundled { .. }) { + return bundled::install(&tools_dir(app_data), spec).ok(); + } let jar = spec.commands.first().filter(|c| is_bundle(c))?; let path = tools_dir(app_data).join(spec.name).join("bin").join(jar); path.is_file().then_some(path) @@ -542,6 +546,7 @@ impl Tools { fn method_missing(&self, method: Method) -> Option { let need = |ok: bool, msg: &str| (!ok).then(|| msg.to_string()); match method { + Method::Bundled { .. } => None, Method::Rustup { .. } => need(self.which("rustup").is_some(), "rustup is required (https://rustup.rs)"), Method::Npm { .. } => need( self.which_any(&["npm", "pnpm"]).is_some(), @@ -604,7 +609,8 @@ impl Tools { }; let (status, path, version) = self.detect(spec); let unavailable_reason = self.unavailable_reason(spec); - let can_uninstall = status == ToolStatus::Installed; + let bundled = matches!(spec.method, Method::Bundled { .. }); + let can_uninstall = status == ToolStatus::Installed && !bundled; Some(ToolInfo { name: spec.name.to_string(), display_name: spec.display.to_string(), @@ -615,7 +621,7 @@ impl Tools { path: path.map(Into::into), version, install_method: Some(self.install_method(spec).label().to_string()), - can_install: unavailable_reason.is_none(), + can_install: unavailable_reason.is_none() && !bundled, unavailable_reason, can_uninstall, install_hint, @@ -654,6 +660,12 @@ impl Tools { } fn detect(&self, spec: &ToolSpec) -> (ToolStatus, Option, Option) { + if let Method::Bundled { version, .. } = spec.method { + return match bundled::install(&self.root, spec) { + Ok(path) => (ToolStatus::Installed, Some(path), Some(version.to_owned())), + Err(_) => (ToolStatus::Missing, None, None), + }; + } let main = spec.commands[0]; let managed = managed_bin_dir(&self.root, spec, self.platform).and_then(|d| self.exe_in(&d, main)); if let Some(path) = managed { @@ -782,6 +794,9 @@ impl Tools { let method = self.install_method(spec); emit(InstallEvent::Line { text: format!("Installing {} via {}…", spec.display, method.label()) }); match method { + Method::Bundled { .. } => { + bundled::install(&self.root, spec)?; + } Method::Rustup { component } => { let mut c = self.command(self.which("rustup").expect("checked")); c.args(["component", "add", component]); @@ -1188,6 +1203,8 @@ impl Tools { let cancel = CancellationToken::new(); let quiet = |_: InstallEvent| {}; match self.install_method(spec) { + // App-owned resources remain available for every project/window. + Method::Bundled { .. } => {} Method::Rustup { component } => { let rustup = self.which("rustup").ok_or_else(|| IdeError::unavailable("rustup not found"))?; let mut c = self.command(rustup); diff --git a/crates/ide-tools/src/registry.rs b/crates/ide-tools/src/registry.rs index 8bac71906..d23f6db3b 100644 --- a/crates/ide-tools/src/registry.rs +++ b/crates/ide-tools/src/registry.rs @@ -31,6 +31,8 @@ pub enum ReleaseSource { #[derive(Clone, Copy, Debug)] pub enum Method { + /// An app-owned plugin jar, materialized without a network download. + Bundled { filename: &'static str, version: &'static str, bytes: &'static [u8] }, /// `rustup component add `. Rustup { component: &'static str }, /// npm / pnpm packages installed into `/node_modules`; the first is the primary one. @@ -56,6 +58,7 @@ pub enum Method { impl Method { pub fn label(&self) -> &'static str { match self { + Method::Bundled { .. } => "Bundled", Method::Rustup { .. } => "rustup", Method::Npm { .. } => "npm", Method::Go { .. } => "go install", @@ -578,15 +581,13 @@ pub static TOOLS: &[ToolSpec] = &[ display: "Lombok (jdtls agent)", kind: Plugin, commands: &["lombok.jar"], - // Newer than the Lombok a project pins: old ones fail inside current ECJ. - method: Method::Release { - source: ReleaseSource::MavenCentral { group: "org.projectlombok", artifact: "lombok" }, - assets: &[ - any_arch(Mac, "lombok-*.jar"), - any_arch(Linux, "lombok-*.jar"), - any_arch(Windows, "lombok-*.jar"), - ], - locate: &["lombok.jar"], + // Equinox removed getModuleClassLoader(boolean), breaking lombok.config lookup. + // Return to Maven Central once an official release includes lombok#4059. + // Source commit, build instructions and checksum: plugins/lombok/README.md. + method: Method::Bundled { + filename: "lombok-1.18.48-openidea.1.jar", + version: "1.18.48-openidea.1", + bytes: include_bytes!("../../../plugins/lombok/lombok-1.18.48-openidea.1.jar"), }, fallback: None, version: V, diff --git a/crates/ide-tools/src/sources.rs b/crates/ide-tools/src/sources.rs index 09ec12a4b..2337bc75c 100644 --- a/crates/ide-tools/src/sources.rs +++ b/crates/ide-tools/src/sources.rs @@ -434,7 +434,6 @@ mod tests { assert_eq!(d.version, "1.18.48"); assert_eq!(d.name, "lombok-1.18.48.jar"); assert_eq!(d.url, "https://repo1.maven.org/maven2/org/projectlombok/lombok/1.18.48/lombok-1.18.48.jar"); - assert!(select_asset(&[d.name.as_str()], find("lombok").unwrap().asset_rules(), LINUX).is_some()); assert!(maven_pick("g", "a", "").is_err()); assert!(maven_pick("g", "a", "../x").is_err()); } diff --git a/crates/ide-tools/src/tests.rs b/crates/ide-tools/src/tests.rs index e6aa29c27..00a3c55ea 100644 --- a/crates/ide-tools/src/tests.rs +++ b/crates/ide-tools/src/tests.rs @@ -43,6 +43,61 @@ fn find<'a>(list: &'a [ToolInfo], name: &str) -> &'a ToolInfo { list.iter().find(|t| t.name == name).unwrap_or_else(|| panic!("{name} not listed")) } +#[test] +fn bundled_lombok_replaces_legacy_installs_on_every_platform_without_downloads() { + for os in [Os::Mac, Os::Linux, Os::Windows] { + for arch in [platform::Arch::Arm64, platform::Arch::X64] { + let env = Env::new(); + let legacy = env.root.join("lombok/bin/lombok.jar"); + fs::create_dir_all(legacy.parent().unwrap()).unwrap(); + fs::write(&legacy, b"old official agent").unwrap(); + fs::write(env.root.join("lombok").join(MANIFEST), r#"{"version":"1.18.48"}"#).unwrap(); + let tools = Tools::with_paths(env.root.clone(), OsString::new(), Platform { os, arch }); + let info = tools.info("lombok", &[]).unwrap(); + let path = managed_bundle(env.root.parent().unwrap(), "lombok").unwrap(); + assert_eq!(info.status, ToolStatus::Installed); + assert_eq!(info.version.as_deref(), Some("1.18.48-openidea.1")); + assert_eq!(info.path, Some(path.clone().into())); + assert_eq!(path.file_name().unwrap(), "lombok-1.18.48-openidea.1.jar"); + assert!(!info.can_install && !info.can_uninstall); + assert_eq!(tools.unavailable_reason(registry::find("lombok").unwrap()), None); + assert_eq!(fs::read(&legacy).unwrap(), b"old official agent", "other windows may still use it"); + } + } +} + +#[test] +fn bundled_lombok_is_available_offline_and_repairs_missing_or_corrupt_files() { + let env = Env::new(); + let data = env.root.parent().unwrap(); + let agent = managed_bundle(data, "lombok").unwrap(); + let checksum = include_str!("../../../plugins/lombok/SHA256SUMS").split_whitespace().next().unwrap(); + assert_eq!(sources::sha256_file(&agent).unwrap(), checksum); + for contents in [None, Some(b"incomplete jar".as_slice())] { + if let Some(contents) = contents { + fs::write(&agent, contents).unwrap(); + } else { + fs::remove_file(&agent).unwrap(); + } + assert_eq!(managed_bundle(data, "lombok"), Some(agent.clone())); + assert_eq!(sources::sha256_file(&agent).unwrap(), checksum); + } + assert_eq!(fs::read_dir(agent.parent().unwrap()).unwrap().count(), 1, "no temporary jars left behind"); +} + +#[test] +fn concurrent_windows_get_the_same_complete_bundled_lombok() { + let env = Env::new(); + let data = env.root.parent().unwrap(); + std::thread::scope(|scope| { + let windows: Vec<_> = (0..8).map(|_| scope.spawn(|| managed_bundle(data, "lombok").unwrap())).collect(); + let paths: Vec<_> = windows.into_iter().map(|window| window.join().unwrap()).collect(); + assert!(paths.iter().all(|path| path == &paths[0])); + let checksum = include_str!("../../../plugins/lombok/SHA256SUMS").split_whitespace().next().unwrap(); + assert_eq!(sources::sha256_file(&paths[0]).unwrap(), checksum); + }); +} + #[test] fn version_parsing() { assert_eq!(parse_version("rust-analyzer 1.85.0 (4d91de4e 2025-02-17)").as_deref(), Some("1.85.0")); diff --git a/plugins/lombok/LICENSE b/plugins/lombok/LICENSE new file mode 100644 index 000000000..465d9bf8f --- /dev/null +++ b/plugins/lombok/LICENSE @@ -0,0 +1,104 @@ +Copyright (C) 2009-2021 The Project Lombok Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +============================================================================== +Licenses for included components: + +org.ow2.asm:asm +org.ow2.asm:asm-analysis +org.ow2.asm:asm-commons +org.ow2.asm:asm-tree +org.ow2.asm:asm-util +ASM: a very small and fast Java bytecode manipulation framework + Copyright (c) 2000-2011 INRIA, France Telecom + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. + +------------------------------------------------------------------------------ +rzwitserloot/com.zwitserloot.cmdreader + + Copyright © 2010 Reinier Zwitserloot. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +------------------------------------------------------------------------------ + +projectlombok/lombok.patcher + + Copyright (C) 2009-2021 The Project Lombok Authors. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +------------------------------------------------------------------------------ diff --git a/plugins/lombok/README.md b/plugins/lombok/README.md new file mode 100644 index 000000000..701198345 --- /dev/null +++ b/plugins/lombok/README.md @@ -0,0 +1,71 @@ +# Lombok agent for JDT LS + +`lombok-1.18.48-openidea.1.jar` is the app-provided Java agent for JDT LS. It includes +[projectlombok/lombok#4059](https://github.com/projectlombok/lombok/pull/4059), which restores +`lombok.config` lookup after Equinox removed `getModuleClassLoader(boolean)`. + +The jar is embedded by `ide-tools`, so every platform receives the same bytes without a download. +Both Java server startup and launch diagnostics obtain it through `managed_bundle`. Tool detection +reports the same version and path, replacing older IDE-installed official agents automatically. +An explicit user `-javaagent` still takes precedence. Project Maven/Gradle dependencies are unchanged. +The filename includes the patch version because JDT LS workspace keys include the agent path; +changing agents must rebuild classes produced by the old agent. Old jars remain for running windows. + +Replace this temporary bundle with an official Maven Central release once that release includes +#4059. Restore the registry's Maven Central install method and remove the embedded jar. Keep the +workspace migration test when changing its path. + +## Provenance and build + +- Repository: https://github.com/projectlombok/lombok +- Base tag: `v1.18.48` (`b48657c83ce44d027984f539bd36048293ce5e8e`). +- Cherry-picked commits from PR #4059, in order: + - `2d535482a913de46c27d06c5b0b294918ede3f9c` + - `3098f4dd78b5349c2f382e7310e64db810dd380b` +- Upstream version: `1.18.48`; `openidea.1` identifies this distribution of the patched agent. + Upstream's own `java -jar ... --version` still reports `1.18.48`. +- SHA-256: `10f5cd1a32b946d3ff1c075735b94f35fffdbac11dea2be29d24dbf591dd51a4` +- License: [MIT, including bundled component notices](LICENSE), also retained inside the jar. +- Build environment: macOS arm64, OpenJDK 23.0.1, Apache Ant 1.10.15, upstream Ivy setup. + +Build using the upstream Ant entry point described in its contributing guide: + +```sh +git clone https://github.com/projectlombok/lombok.git +cd lombok +git checkout -b openidea-1.18.48 v1.18.48 +git fetch https://github.com/chagong/lombok.git fix-equinox-bundle-wiring +git cherry-pick 2d535482a913de46c27d06c5b0b294918ede3f9c 3098f4dd78b5349c2f382e7310e64db810dd380b +ant dist +cp dist/lombok.jar /path/to/openidea/plugins/lombok/lombok-1.18.48-openidea.1.jar +``` + +The changelog context conflicts because the first commit adds a release-note line under the +older development heading and the second removes it. Resolve mechanically by adding then removing +only that line, retaining the complete v1.18.48 changelog. The final source diff from v1.18.48 changes +only `src/eclipseAgent/lombok/launch/PatchFixesHider.java`, `test/core/src/lombok/TestEclipse.java`, +and `test/core/src/lombok/launch/PatchFixesHiderTest.java`; no other Java source changes were made. +In the build checkout, the two remote resolvers in +`buildScripts/ivysettings.xml` were reordered to try Maven Central before Eclipse staging; the +local resolver and all dependency coordinates were retained. The JVM was configured to use the +local HTTP/HTTPS proxy for downloads. Ant's timestamps mean a rebuild need not be byte-identical; +`SHA256SUMS` records the checked-in artifact and is verified by the Rust regression tests. + +## Validation + +A parent POM with DTO and application modules uses Lombok 1.18.46. Root `lombok.config` enables +`config.stopBubbling = true` and `lombok.accessors.chain = true`. + +On macOS arm64 with JDT LS 1.63.0 / Equinox 3.25.0, server OpenJDK 25 and project JDK 21: + +- Official 1.18.46 and 1.18.48 agents generated `void` setters; the following Maven incremental + build reused the DTO classes and failed with `void cannot be dereferenced`. +- This agent passed five fresh project/workspace builds. `javap` confirmed setters returning + the DTO class; the following Maven incremental install passed. +- Without `lombok.config`, both official 1.18.48 and patched agents built successfully and produced + identical `javap` output, including default `void` setters. +- Upstream `PatchFixesHiderTest` passed both the standard OSGi and legacy Equinox lookup tests. + +Windows and Linux runtime validation has not been performed. Rust tests cover source selection +for both supported architectures on all three OS variants, offline provisioning, corruption +repair, concurrent windows, explicit user overrides, and JDT LS workspace migration. diff --git a/plugins/lombok/SHA256SUMS b/plugins/lombok/SHA256SUMS new file mode 100644 index 000000000..67cbcd675 --- /dev/null +++ b/plugins/lombok/SHA256SUMS @@ -0,0 +1 @@ +10f5cd1a32b946d3ff1c075735b94f35fffdbac11dea2be29d24dbf591dd51a4 lombok-1.18.48-openidea.1.jar diff --git a/plugins/lombok/lombok-1.18.48-openidea.1.jar b/plugins/lombok/lombok-1.18.48-openidea.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..d8a4dce2f125b3bacac7dabbc14b37ac3eade3ec GIT binary patch literal 2051359 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

-<*P1ji zzTMlu$K#1T8l;31eY`<`;s_hUG#NiMgqHgbxcdx5lNiOvku)Ax{|feKjx+2s&v<2l zg`J!~D`J|Wy$~;QX!0}26Ix|*(~88ok}j&BpbqDGHLxmZwt&mpXOpJpCg;N48bnaQ zA#R*KuZ*{aPPs@{iqB9LL7x$ojjLAsm^)U7E!L{4@nc+>Q)}8r#Y^pBXoh$wX!R@zAuL7d6_EN-}@f^a6rCEF= zmaph{0*FaE96fve@^;z@K5trYIlbOKBiA30IwmB3<{Wd28H`iUMHHJH39*&>L*0a0 zvog>MB}rZoX6I8jDf5Z>UNEsH^(lNQX0-ZG(3KhT>Gx%rrETSjQq0#QAK9d8&7zzf zLmPQVt5dSpjo@^hRdx^hIVEJ-H<1+i^Y@?j^XcVXoTiaQeFl7?)?Ndp^U36=X9p1G zY($k-TK0ld=P-7Dk(K$g9hrthM=rwU-fE$AXWyEhcvY`_+*f7KK2B48P^?Uf*HTud zks8Acpk5LY*_BAB8`?P^EKc!`l0US4CAk$pgMiEXeUHQLZ~!uWbUY+b`tWd;;$5TO z7fX9?Ui2B*OY>rgu)(&!qK{m89AxRp&~DaTkc^jC0dFOWK^m z`38Sx;3^f1B`;^z(7C}GFRgCF3=DvnFHPg5iA^rY?>iGxSGZ89hh;s5uaa$ zI$U{rt#_vr8iy+MOpE2! zf1^veoJM!tgO_H#-Ko3&4iog-1u`ZoPb?NdTWuN6NG4+3Xlcsb8Zs1e5)W~T4+hn+oovJz*BcFX?+rvN!54DKJnqqtGnxJST zmu&Mq??9#JYS7JQebc6(U!eSoh-0L(v<@4b6nJr*9(oyHlVu!sI#F$-JXWcAWZrq| z8q=I)TgoK;^S9#>BC`SXG+8!hy4C9z%(P^?>@ikpr6gE8-wHY+)E>i>0t93OUMChr zZ6yFX#TtmQ%~9@UN6=xs@h|yK$C>nN^iUp}Z{RfO$gEjB!4HZ4%u{lhNjvEte(y_`q(3-#^mdlLuY0X1Aj+tif1rd29=vdL~uO1ZX5e}koI(mMl)2X^62 z9EkI@mZ4$KXzNThq1*)a zQWqHvG6VVE%o|t8D#YeTb9KIshH?&HTT=R3G|tQg^hFUra6DBzAKQfRIAY1!%Dy8> zs-={xIGtkCgPQ6K4La1}y2=r>e)cy=&D@*{d`B zvf%2>mASu437jqXamLTtiMgXjj%a@$8SeroI6sP*aRZ-~SDvlb-WG@bu(&mxvEh@PMkIv(bDYe8Ll)b(M(iy1%@nFAH5Wy7&TixY0< zC(Lq;#z$lDbBdmgpPb`R%Sv%~wc^lNCLEDZK0ZV0^^V+5_rTvR4vOY#NC*_}`lFQk zwX^T{sntx*e_;n%UQ+H8pNp?-fR z6^cF}T1p3AuUvArGIGx(aFjsKOquse{BgXW&{&!u&vThKasRri68E-sD4E=KBZwOy8c@vb`l?&w z6Eipajut8EFt>fs;re}zII_Vx_$vzwDQH%}J9=yOW#-7n2yMtEq@^huDvZZX>B zHxd{hc@FG$h1Kee!yB2dC)Z$b@=domPW1l;~L;X#_{1$sN%i_F;eIVUsnqD zGFF9>y|b&7^B1kHASO@n`(LclJ#NnT$oCV5ZG>UJiV4(DdWdh^AqDTY=|uV8!fr~X z{0Xd(dUAX)0&;66>6Ch}`&Hm*K;bvxhR)!!7O`8%doMNzXxC#SM(Jxv;s;hF@_Ee& zgq4z4=3AJQ}YbXAxUH6uu3$z&`V63@?6=sZLy*ezi`H8ssi3x6~ zAWPWj@HmgTS&gw-Ol*p;qwnbZ^w29N!5srvk7>Qir0se53+x++A!J=k@|57qPE5L& zcU^Qjojg3JTD9z#%Y|(MLd1r$EO8mdz_12qRge;G3myAvrfq{;OvBgYKbo3vs;8dt+50}i4phVp~R%*A;gf(~C%sZM5g&A19t8&|Te zL5q`_(Yh{c-{mN|MmvnyZB>46!qZpXq%3*Pu}Q@>#!|H53KdHFw_Hg}9gbo&#=R5j z8OOe()uy{axghr*X*T*Zi?1MPa@@|Rt?-`*u>#&e6R>i0D56-*R{Z+_^~-PqI1Q(P zWz?3ZF7FpFFk_dIt3^dZ3~?T3SDxI<%QOa_O}T5ulHuB8=TKN@3qcYh?Y! z1vYpO+h2?)P?RHhl~Y0ptce)9M?8GunWFc=Cjuwidr6id$Z5AaCOXGFU{|)5^(&vm2AT%PhLT$>@)aj#B^2!7-&#-E;$Tw|X( z;bQl#BO=H8O(J@R>k^%tOzh-cGZl6d5BLA|teSfCBzY(J9H?gQ&$uQYm>Uz6?0XaF zhx%$h?<;x)Q^WYB4?(Pif*BlLtplSFoKHuj~LE? z%I7D#AGSfM+zw;OgOGlO;j>k$keoIc(n69*q&UlS4mdt5Fn7Rcx`_O0IcWUqOb#b1w&8FE^x$fC{_eoH7MU( zvGC59l9Lnz%cN>>TD?3hT4APt*)h*R7te7IGgwL-6yGg?(@9SFy2de(5yqIMvDi zOEOK)6N0mVbb}=GuO5o%YkyY#=XBN@$>6KSmtjgtZF}|3vwjwd>E{+PNKt#%s|!Fq zdCZqSYJLy(c=2I6gh+N5S z|77iWcVsA>QMG0DfT1XJ3n;9EcsoM7Ke#~(9kJc-$b_=|^}jEBRqh!X3i)}}IuXuJ z?DYn(ge126?oK+}QahX={C;L^bIS`{GhL^yL5ZzI*;(Vj8hu;G6NP%V(hEPs;}xyh^g!A0C{sMM(zn*b8G-R$1R>upxVHh zcUN!geiyFO5L5*Y$x{z=+^*V=7!!7C8OY3YT5JwB(skH&*qe3KiWVG^(=600j##~r z^jSVEumF!iS~Nd>1vJihmTkG$ll`2YgZS*tcjs7{HKitY$NNTSCpHY*Ak^;tA?*k0 zUYQY3K(oQ5mtaaY2F7F2*TDV55M2P~3&!V^3Ma5y+Fo&StnG${%XPqW%MqWVMRsS% z7UAIShCNZr6_$s{Cz1FQPu|2Odq3psMC^03n^MH~{LV1e*UBDm{PsX{)o{AJh z_ShX)Hvu@Oz7dwj2$G-EfBEije#PA-%c$xG4@3=BhNx2>W z78iwGcsa_4vlk;hkN#Sg-r%RLnWa~Ms8A-vk9A-3(JvF-ij=oZe5XtGol?G z*UolVYXnmP0?X5MH7A`>%p?e#g~4f4ZX;q(Pr*k|d|g|Ad@?8>#-eIWTPZuQMrze5 zu5HGEUootkJ2jrDogQl5vh069G4^LCSTYSj-;M!ULR5QpOZQ1mFk4eDv4^YhtBo12 zqY$MqcSpP7z-VKOqxwb{sh{o!7Ve+p=kKwrUWFv?m;IeE#uhmK>&6y2ln*yt?sT5< z`;d{^ugG7mKGlVjQxTCWj|cZ$J~1A)ba;8j#sXWxPbKPqyjCuJuHUj{E%1GHoxRIP zF+sVeU~pGTJHd^TI33I<(4{7=skvM9A18t|B~KS>l>({3Y?1?hv>a_kw(N@7U1^1t zz;=r}0@gy1wzXyk?Wa@=W|qG5m;(jR1&nP{Yk-dIq^q-Jvq+r*%2IN zYgu|4h9o;X)No0%i{Z!9)xYZ~J7m;V zML-uK{8%#r`~%}Ui9o4CykPmlgnxImjW6`np__-c!CrPeF&V5v!8MU7i!8A}=d6QAe}Bk|1?F>*$_HIiEP2zp6vK zx~9W9U+au%snbZdJ`0EbDpwdBqY``;EQ3s5t+30sImRP+8WMMOiMU>urG4_|$nzZGDWS{IL z%vm$~a}^h~P;G2zW!pB=T4bGmmgPibPi(;OUz)-f?4G#Vde>VJ_B*{p`yg8v+EM}@@H7g3 zMWVc=8$cuYpw<^`#WT{>(8*PBmX?VFXx&Nx#4qbXoT~=(XRIuzgUhT)rj5KLtc)VE z9c}7_-Dd0$;3o;3t!#d~={{UUe(6LJ#vDq$^Ra8@@+Lv!j!B63+vo7>y9AsENmuLB zHDYKR96i+pTNT@K9gG4DW)^v!R_{lU+_M zXi@byhIor<_8O?HjZ-{h2*}je1^6Lu|0(c;R39iRe%<22 z1yku0qN{RQgF0|o+uy%!XW#`OG88rM94TRxB|#ak;V~5PG8DBl6nSIMk(JF%g@mqY z?=0izOW3Ff@lEV=QiUOo#|CPx^8TSdLex%kwmUH1-!8zIL zM39MP;R=@yN*9hUk2rk9ZAW}&GPKTU^>j>m)h!iFrWVcdx}PSF`>7jO=GxCY+SZ#` zOxs}50qBKC`So6yXvz%bYPc9PhKm@rB@)+oca~Bc_w2${KLsTCmk(DnEeT_xXc?G; z_^_bg3~3Gu&yB}IE4cXj)&gbwRtE^eM z$W8FxGYYp6O(o~IMJUSmio%6ksPmz7l&eCGs;{Z19*5Hy0mz=~~x=9cXTjK@^Tz)G=&Wf}d~Z;?cJWr(A=k3^}2q=LiN8 zS(XC?36V?Hh$4OR5UJ;XWDYfzx|H}pPqxT1#o$iEC{IUci@UJnM4CKn(~KbeR4$n< z%OT|xEbu*FAXirJBcas=E%*@>(6nUx-N~8!D4n_$G$9Ve$@EN4SGD53!jLlb4E0@u zKGci_72Gyx^LmgvHqkLgmRAYQ^jCcO`VcA)~5nHqU!eBLc=J(2nzK3uiG(in#u6aFqI;cg*>dHC!BGoFkGdV1SX_~e?OH?#8jD(uf zyBAIi9qyu^T-?~5(SrOw#EkCsKD%CZ85xG5MW)_fUOB;$Z?HMKM>E!DpZY8% zT`QaqGUb{`54=%1>)ABSnXT=0E0lW%hYJQTW;r*h8_0#dLXvNEBcj}Os`mSJ`!>o& zemUYv_Q(n?E?UkAg|8ZquiGJ17hGD!7luE!ry{oC^w)^$Lf4s=FN4mSJ9&Scgy}Y4 z^&($%I;K4eJ`;!UK3PBY2CsEHD!&N{3{C%CAXb*`R-E)t=A)^4A5e)>F6HxD(wfDg zEfz8p#2PTc1e_8J(q_5l2-%cA61u*o88vuy?NT9G~jHbe=3zy33SKYT`raT`KzavyVrWBjT?3`8v zIzO+a*+~R9gS^69(Y48z?)b}EcHb>X%Kd4Byo7v+ITgT_e+}YKXH0;151kj{sc{Xl z!pt6(-J^z^>O-n(`;=*bx^fG|@Z0^sy(@Rj?Me8tmHFVo9mR2}vwAzi?Q>R*BID+g zd^|6)QCis;X!a+@{hj&QzYXU1Xov22re+JCrx#w_HD<$zM*$c#DPHP#&X{HYfw)7c z^n#C6hzK0g{Eyu3FOrq|F4$$~H^#LI$I?f5{sc`B-UX+p!5e#5(Fc^ltU);U^T*$2 z?wR85$c{%3-Ptwq=>o!&iFxJ|%?itlf}@i%OsUy|C?Gxz#nnvh2{+ITt_v(+S9)@c z^oTN5w=4|d80y?OjSWI$#sTl$UJKmi*kfZF0t{D(kIUggYkd#j3da@zo{M4>fy^%)X2d7sJj7%PeFbRK zF3oc7kh1PO^dVwaE;g%_*I64#I@5lQB;bP+@YA)0(OLXxDn*fc0Hb*>vdpr_dAjB1 zN)Vp^$$;@z0Z7bMp7P&)D4}zs*{k|@fQ3Dheb#Qz`waY@?=eqh2fg|QnfAzZCHJ*U zb0)Zzw$(b6hH)%d+0Podb!11hI1h7Q0RJWBvg6nBUioS`Beh~53T{t(@A$4hv~_NB zFz-!aaMTs@jdOt`PO^515Z`C*>wj>Zi*&;1d;X1wbK`#dCi=gb+Eh1l`Tt=B{}cN! z{uBN$nzg)q2?0c3J?FOO9_)-}Ro@(uir zK;WY???Odc8Q}UG){ohWU)Y1c|18kyU}9D7`hooN0^V5tx6kd9y2XU-ChOVn4nKOX zJp2Q$F7CekURi#bJ-0?d2O_Y!yY~_+nBI4#;49iLbuT!kwU0P1XIKqrZ&mPP7A;EzRK~gZ*Ab8X*}t?=3&El0J=$tC%PB zn-%hppu6m}?L3j15DpBM!-^{u(|JZ99TB(!??_V@QW&>wDHL(!)5?@`zqA=J+lE4N z&LGGEX=IK)GC5~518+d)xF$_YaK}3?mkz$B;Me7Gu9Ys)=D#V{2X9D{4k}?DOCBQj zAD8P{>?OO5<>5Giy(jqQ1z4-Hc90r*O``G?N+hVL zn?OeXtAktlhL?vfT8waaSUs;G4FrM5FBxL?B%$V2wQuT9alILCTkwOY@L^6u*p+P} zhNAU@vewlKu~kzjW=In*oO%(_5!)y9M`sNwi`{BLB^Q`xat|2|MC7w(_!+J$sR)C! ze~cr0E0XR@!{lbh-(?l7>xUfg@TmH+*c~k`ig5v*m~sFLNG4%0C!{nZyhsMXC1&6O zyYg_IJ7ov`h77VN)EYpqZ?NV_5lPdS*T!gcM+|4E(x%b8oeIkQWx#71NWpc?i$xE) zW{w-b)e}o`g{qPI+`KNUhJ{sI^pI5PX70L-w1;1%GCRhi&~rj{`5R=Z70sk!{`2dw z*>_uwbd7XUJVk$>IP@T;^e5(wR)X3V|{@*gP+#L zgGSQr8!nrjF>o23>+TZo>F_D3Qj}H0HA5q5pwfkRKz8Cn8Y7Igf;5-`F!Ny)SZsE}QN`aqTt1Q-h^?neBeIo6emznp)*GjL65ss#U$1M=sj* ze7qZ=UGE|7UvowkSjV3cFndY^_k+;y$&Io?lWn67j-$mW;j z%E_tFL!y0(zT%;bSbHqR{K4DXIvHIkE{YrNG=xriNPmCR+g|lXL-LO#^1NTwj?HaD zP5Wk9-{?Hs*v(96>2DEdXc~GQjV16XL##&|Pn<0UxAGP9kw+fIx1|;BO;gAz=Gk(a zqT9HW3kCHl($Q|u+NdYkY{3tCq^p59JP4U3TeNQXEg6+B34ok@59Ra6bAA*`a<;xn zTo?)njEkUu+?CdJDjU7b%rmlD*BkcU$oI#PcvVLE9==di_!u?jC7YT2;joReE-Z-! z8Wn|)pV$EP4K0&Y>ua@LylKIq4&f3}e<9{N?T}D4h+S2l6M@Y6+zCl(r?KJBZK4J3 z-n_O45)|1pVXi7G)$jDo8vg;0+f)nl*pS>Mm)wiwOc?gf8&d+J5z^i9;riu=7+ca8 zK0EUl;)W~ZHF{Dzk5PF4C}#YP%kcdft6?oJns_apgRxM* zDb4hW@;aI8UT3Z~K=46puh0q4*JR`-Oibmv#Xs9-wokmj)Beg;=~2BYTjFdihA(Y> zg%LCNAYG59(7K5oD^`sIuG(pb?Uj~-DxOPwwdeh3#ZcaUHtz`V@qc^4NVS(D7X}DX zdZrY>wg`mI>~&d*gyh|FCL?p)7|_e_xTP`+5tL$u`V?H_SXyhZtZ~KhN;wYq!ADg3 zMWps~aG2!QiepR-`jWK3u`=X`bm>M&+#*mjIcjV|P1WcbJ|JTAv|0yR8U=A;&&>F&@Unkht_{G{ku5C{8l)l)1qDR}e)je|ZIF>h zrU?asim>O63&e4)L>6wD*HJ`PdzcwA2PPB3sd8h73)?e0IEL|cE57GkRKr;11%9-_ zczH{D)5}yAR7t3xh*df>GN~;Ywa>*e9q?6YE)6Ji?I4?xKhkG8GUt&fw;1cKhT$Y% z^n|;79@Xy=3%PF$j2weDd&1+f1PRSx)`GkB+ObefC=DjhwWpGLZLW1*JEMvAxVFj{ zSOV9*aQcaOa=tvo9>-rii74@JUX3rYX0}9{{0Q3-`rvX6IIx@w$ntk%>1tGO%(1wy zQG$XUz^FXgYS}{rLS^1Zl}0&B!mZQunPO91-eo-rE=x8Yp4e}R*zyL~{?wom4FlMG z+XOK!HBol5wc51xHDnvf!A+h|{R|gSF4ZI&*9g5WcPUBb{?yra%A1?PU>;C$(DAeC zwugc(vuetiBp4f(vxO9~#VABYW~HDVcaZ=Z{4JMXu+oN>@#LR9rrFhltQs-4d%3N4 z$@JnKSoOddh88^oJ>ch0oqe+cQEnkghCHq}X#?pEed9ge-qDe`K4BWwH-tqqBCdb{ zUpk2ciER)w_#MIV+SMM61oFyMikUN`q2K5AJ@ke@$>G0*rVEKK9-8=Iy%$rqZL!tD zKonk>mg*e*JvkN26;1?rL?%2i9UWc8%*2*8`ZwaU1liFa{@V5(`|n+#MH+++Nc^u7#{buS=znZr{3rNd{3rf@-_`Zi)-_NCqmkI6 z#EcWfWPVYEV6LNfQk<01mWzKcXbvO`mtPA9O7s{)k$X`j#DC2Ti|{9T^UVuA76@0& zcPBa_###Mrs_gc8%HHhk4EVZx%lmd|EH&`Ws0KuI=?xPa#^Ze9Z6p`s?lK`;?K7T!{~ zPQvd?o}Rkgl$I6^611>X!ezKLxJY^T@ZWkj)~ZtAVS$)oaB1Ul^xSdC9>qVgI+0{p zCUP0^`TIQ<0@l+J&lE*QQ@<>jfK=tbGMq}HZ)L?HMOQJ-b%B?N!Hz?{-@{yEKqmjp zl>PDZ$q1KwA?1avUK?mPbujSTUZ;mF_E&TpyZO&k1T=AjJow9zTw=f19x+m1FFi-ZZma;7Ojmvd{I3O~vFdaF$lB+7nQaOJQ2$bS2 zNKE=v8~^BoZS8cbp7GfDFjk5h!n|}O38n4>j0OcN^$pJZ#OX%smhJa2zPu6Miz=}V z-Kk798N)yEIKo^?T zKfn3b;x*T&ImO3(kh=Qy2Mhi!pDfd^wf%Bo502qcXMyIV(!q8Wk!Tu;BN?_ZA#D$9 ziJPC=dQJmTpq~yy_(a0};zI0FxZecAD*e=L3CTD73NCD~=N8#iPg9I`{_nA{-!Jpp zNNzE;=fH}hmxB2aSWip03I1EV_QM}3{On*}Zn5Rnoi+F5w~6$IXeCobgw3Ohd_k?j z_~Z=Eb8rSJ5HpMTh6j{A$VF)9$q0#R|s*-H1{T*ohJLpV} zz;dw`<}ctDe9<+6Yvz78`;e|7zE=maN*mh1j*D*}+a&$5+!AaO?vUnlrWNM;50eRW z-5w)3@FJ%Qk2+u&%*FoS*tV}xJfynpsqO*sl8t_R3)W{C^l1#w`{x{zMfUA}5|9JiX)A}#|)BP`U z{+$`s7qLDsfu>ugo}?_Mq~9Yjt=Txf2ZNfqDX|sznIuhK+FIRYHM|L?5r&< zEmdgg%Hhn@HTO{#{Q+y1weeWi(M_|re(L_Z*L>Z4+mhchr2_jPzuIhn+HjeA%K1kY zV^;dQ0y%wqcy5JG>)n;Mt)u2r#$i>RRSwY4NIV~-j={6JfM*$)M0DDd1{6if=mm4bvmzNgH69` z)t-bCu)A7b!(noV7Mjah*Nwz@;0mIteV@TZz)N716krHgPs%k7;32ImIvHe|w{*(O zu$^|U`{TTd$%HLt7#9cb=|_V_(}=hbX6)41A``2dJaJGq!;;oPT|Uc-atGCPQSTYe zDy^wh>#Aj~G(0fd1K=IjlnF&}Wf-&#%y3->C6YwfX$@EvkrCK6qQ#whrfsMuiXN|& zfm{P6k{Fr?6A4VpEw92hNnL30;v}G=){-PG^H*^j#u#&9OV-GgSBNj8@yFD&D^sY0 zE!^r7enVEc0{d;@Y9!Is=pF5IFLX;IB!n^{Q_r*ly#w(g%d8O3Pmbe9+~Kl83zdfy z=?qv|YO|)EGr;c_=AM7(Bm?#GAR%$El^(x`3&Fp(h8K2Enl}h9(K|Ys#m%>mw;qi0 ze8gm}lM4XcQf2XvfwQzPf^f~Mw)m55OqH%x!|mXW8KOs71rcc6>{?S37?rID9buf{ zrHTx#gKKI9{x-7-zjF6;NfQP6r8uYif1_DMBr?Dx8__{K6QS}{pFncasHN&ll}#!> zCHhvu+4^?|0$s43$-Kt+BlaU7#(4~i_PQ;}gn6APtPtqZ?6T~A5Y{-F;DI@^k|RSa zzzWF&4FLTZU4BcnzpG(%m|Q~*tc`*c_14I(gF!AE*?rl9Oo&@_l}-!5y8$r5)wL}< z+9K1(JT}a#g2A-tgeTN1mXhDasHdGlpB2AcjqmMgreL6z1}~-lz$ldkX@0sAC*)i= zA5jEcx&W8EGa4O<3asnea+eRvaW{-cK?Bni4^B3fh&PIm#}gMfPY$m;gnZzd&^2SI zAtx<7kQ=U&5XMJ4Y)*v{oY=_k?K+8blpTP9I#fy$L0tL)r$?~a$h9T)xtt9I%Y1CA z;vbu5t40?j+{7bbndh{#J6PynFNrS|q)fV(CDH_0OOB~BIV$Gr@o2j(@9-fl-!=f< zY%vzY5w-jHVt7z~l;oeZ5p%N)HUL;u;k=b|-N>lzMUY6QPr$K9@2g!s0FW@O&)nTH&B z{Z$ybSfPHKiX=AVJzK_9_{Kju*G1pe#mN+hl&L)CbVMl3kQG3n=2Ps}k?BBm*F0{G&|<=XI?>PJF7w{zm3tG6rCn#i`k3 z$_mr3e-^o@soT$AN<38;_VtW}nLOqUll~AR@i$7CBRo?uOHhr_yv_{M^lDZ3rG*nM zAs;;SlTVKi-2FM9u$daD#%sWyPljMPJL$E#nCokk18RLDlFMR*@W z$`f{)P*TCVK&0aTLX+6SrIt{a#qJ|L2$K@ZWw^{!!TmcGb6v zS9nBIsHv6~e)Y!?@IZqvsbkGX)$Q7v5RE}qy8}#dJ)kpVv$PxZ(yEN0R~-(;uO9Hu zyr$)zI@&_QJ1u^f%tGdK4{RbO>ioX95;|Vb-KM$M$_l550Jex2%l zs#{?#IV%wL=$AgEqWOT^@l=p+Zdxmq>@AD%ND}bEg5QZeaJ>6DgX@h_Ak4xN)kpUk zyL&4xO_yH>mO4x5NVL6Nn2EgT?8_wt`nHw>_TQzDPurn4Yu7d4YfxvcsXnYtftXY-e!O>6J;(VUOmG` zkQIE3|NHW|^9tzj&785imFjo;XrUen%$ZgVQdPkxY}kd@XX z#GN*L;#y`6&3)W2iqFE?7n`&rxeyYl-su!9dEx&eOuXKzv6h%G8#JQqip%W*CFBE} z$KSu_QHcxcx*OaadP+m>^_TjGr)In#B@50pSLMx;LKd!V!)}{LKF3LEx9${c50auv zDeWYZ)o)S#`+f~98rGK`aO2A8+woj{)~9hKam?e7x!s|CK=e)VZP_NZc#}(A5~B?ecdGTT*!4OFK;;_5WpgCcOEpbqA8;(yIzTwy3q=5?O$KqA^E9&Y;Zy_ z{0BauytYTQaz^sTb0<L8h^i+3gkR|%F zHa8x1zOag1D&mBO{oaXqh}w}gcmLxH^D4n)x&YIuvmM!4oD~HdsePivXaHK!+*Z*jOmQ&97sf z+uvW&J3YU^j>(C4h!W#k@xiS7b~VDhUj0i4p60&tu_<4{9V7EZ`=1lpSS#Sg8lWK{ z-jQooAvlr?@>=S^se@)#eWjHB8${eSPE?yvw2UXB5x!lTl=hNmZ#sM(o*?_Vz3FR0q0Zk`mG)6TzxYq~zv$MmQ6m80`Xhs(8``WZ(-hxJ>f)=)d$+=C zB%#7{p;9EvRt}3lilj1hI(f{CS-cjI5HauJNL5Zf!@SQ_1QS`fzAvDBf_=sA`MBf2 z$}rRJ@w8{VY;~nkPy6t`Eerqs0NWu1e$T{>J2@N=(vCXoGRBO$vAV>JGFhvr8{q_K zQ6IJu|6m`;HS^C(O0376W@3mA8u(Y{9xJIia4A1`<;%-z8%Le8wK^b_V^0mkb1#-3 zaBlXD2km(~HLfrZkiw(3fPHm#fB6x-}|~V*wis zkN-GE%KLNVj8mASH)5>P;&DQTg65)$oYy1GfZ)qgGV!__v+}{dab^~Ckqe$e+*#=g zN+qS{f_a?;kG$qOK{!#o;rzxDxPue3H-ih7R5^L%b^Ag;VX_KZqiEz9P6sV~Re2=T zDEl9mS0>^IM^W+r{c{fWj9`C2AK_-ImB=PvTJY=_J7KW=Bx7LZ&KmULN8T|+?MD2V zR(f)in#Z~ap%yPQIWKl4v9@Q}ejnX3*hRQ~q&R%A$rR^aGXrX-SxI;w4rmUOp71hLw$E~1@ z&ME2GGD%D5=n?ue4-h(jr!alZ6Si`AJ%*CTvx=raEs2^RZ`n6$Y}Ku6RtlhZi@jEp z+t;k4^+JWdx{(~L(^@A->}B9^F|OuS98TJ-fxO3d6lC7d;J5xS&fYn?vgX|uPSSC@ zW81cE+eyc^ZQHhO+qP{xosO+9Id|NH_xIg9&bf2!_19i&u0876RjXD#Pt6IiN}6W7 zP8s^^3?bIo-sPOE>r9BRL(IY=G`{Goq_;sI*qY1*10t+-XLRFvNBKc22w5|((X-%* z`cz~+9lTeFMny5rNsM9|e0{+>970cOzs*TS6(JlVb4@{0!d5fc^%?K0aw+On6TY}9 z%DTbPBfoNgVd?tLY!$vqYLR`zCy=FbPklbD#AHQWnLqAKbIAgO*oG>^8Fi|IQW^wJ z5|>okJNqt zfL*{qf<*VXhh?Aapjp$N0ZP2lpzMW|r5Qe723>~xv$#%6OFoZGGVUf!;2a^%D;3X- zY-g7K)9WYs3TXer)J-PI!;j0bO+HCBxLZhWpyJeaLd;LMvxo(4Vfn@!UJ%k=rODk%knt5r53#~1 znSWc`dIoJC_3t#ogJ7E9qVjKjZA7fP*f7Vqgg>WILxKppo)XDz@8HltX$7}+8GrnN zR$C?K5~$b(Y7bWttBSc*9{AdkHJ@r3SMQ*A<8_-mV45hame;-aMu74j6P_F}vEo3& z))FGo(6kG#bsI?{wkCM)n@!6r`{UM^6pu@am*z7x)=}fRc4(JtS-06ZfKcA29itG7 zVA)^B9?Np%{@t=_-mz-fX3^O*+o3>N<_;x-hfkCmCck)@?*0li-ugu;w<3^kze+RZ z9^$f4RVRB!;HntBetKqJr-~R*1we1-W z_|OS;S%PAWpfwOo;vBAu-_1SKC6yyZ+QwI794ib|y$*o9UJ3jOvEui=&(W}UXL zHBzr|D=mVcWrV^ zwS!-(ns)un)(vDuMzwOt>_28-w6q(4%XBZ&Uv{F1Qa{@4`U{clObOSoG-d}$O`$1& z#m%iF`ZvwVdW9hfhh8DIsN9tuDL#`66oS^HL>w{*4Z<9KtlyK zK1C_Wy<@pNg}IrreK|pU{rasXX#Svz%$g0bYCe@Uhgd8r8fkz?B53!oMH2hw7(Adx z9KTWwZvrEuq`G1>G<%=r2yIY<_9H5@-B9o^B*LRXvP@KDX}v6*s4vkou$e> zWBO3qzvNFpQB0USyTt6{n5Ld5LJw~Y)PtuxVl2nVp2T}SJtlKf9%^qTBaV5;C;pzy z15}x!Bzlc(`q~sq0~SC25ND4T>6#K;u8j^n7rUvk7woQxF`Xw|&Ln82ATO#uCgZY; z3;kQV-elwHJBSPV5=fOzMledHO>yXvPvYo1H}}cxN5r<=pcYquw*E9i?153}36Dam zmAfgi#!$C;$5BoD*_qab`HZ2Ww(HRH0U1tHTT#Tre%e}8WGy(Hr7Y-mG-PaU_HtBF z{|6_5I6~cvOcC5&5@Dl&rx&5*kBFiw6jqb}xOFhv)&?$1ESCLHOMM3vW+$H7H&1CL}w5ECjACvx#FK>nXMbbQNQ;H z*N1Un6-bbZR}Bh2jpeDmy@5rD1GPaGf-0=NxXq3iAoE!`6$-oXg$}F{GMm7QmkbI4 zOeF%g!!va?I`4a|O8x{Agai`zEKcIXRUYFkSVo+80HHclwL)2bkZ?q$J^{*)fA^^Q zUl|-fR$IHhFA25ZUuuvX{|__1e+(1fG~f89{6=8>zp1hXeVWc$AOKMnVge=1*{hkr zLu&Z8n1+&y=fV>`Vz`Snv1%D`lV5;s6ubl9CNe$;DYSryA>qa%CVf5dK-EnmM4Wop1M<+^sCwS*ydo+!YA!)$d%H9 zfV|JF%5mB8P~ZbRBsY?SpK!J?*@_I}LdZPR(g6;~IzG)QCrE$U*P%mOQLUL9#o7zZ zx#^9>pKh=$Q%f6TnR^Ca%%^3X<;&S$8GsD;tK4Y92qvcW%&ghp;8EBu(xK6Qc;Tee zwa|32i1WRDu2Fys}_^&Y@d!&-b*SLfP4f_f41DZ8TCAdSXhyF!7Vus zXaD^$ z77abnqBOgc*`bOJX$Huv@4l^j0d11cd z{~zxHH2T(-|88*fuP0;t>&b4;rVjRob{5vw|KW%GuNM;i-!Ig+G_W)Lw!i)NdxHaL zMu>A#s%mdXeI*(3;Qu9S@%=;p^S%FrLcr2M{@=(5=@cCP)mZ79>l@#^-{?%zbig!3 z8~(Je(_a0FM=5ryECnWJ7=Hu>Y(B46XsUoORw9)ir&t-kDdx1cntCx|v8HGO7bYG{ z142YauA`fqpvT4Bc!xPwiG7i{?6TXrtc8|s>_p$5o*9s_9~2XKr^LiBwdbj7k;lUHdjTyBEW*cCWLL`m}A<2XvDVb43&N9C-VH1BS9KH`5b(NGK zITO1-6w-GP?~05Q-WS#vrH=(Yykn!iGx!@DD>@&E#DyJYaFliJsvi|QdKUsYGi;af zQKl{pXYfk#r_Ak}D}{`!sV$h}rlFJjm)3m4%W*QXHr@;hWqsY|RS z3*&U&{uE|?Qt4iKkS0p?E$$3v`%aQ*^QcO-HdFS_Q;i|{#0azdze<$qSau5=O;`m) z?BypHM+~2M&4;Sx zW9=i}`=sX9Sm7-FbZm%8m#=&uOQ@=gH&UA&Mv~ZXCHYw!541}sVrxSF3oXd(*GZUV zIpJTmaGZxCU*ga8W-li>rWdo5WI{N2)kwn)jG(H; zjZh7W8?^NL*W{+=TI?cYcl<%kP?6aAdZyWK6*<2<7TO5QW_TE>YPe;&&Dawpg-FaD zrW=1R#Z*9;8uQIdsL*g5Ay+i8m(X1n*@-^^Zx(I}tFc(J)8(=MW>|hS@CxkCgmM)De)J|I`|wy@LcnutKCu!=k_O=lBSKrFt(J z-Yal9FD2Oq`k1IAN*ijUKIlN~>DT2al@^?f&EdNMsG;ik&y-e7!2RTb>B1gO3Rrki zsT2^ld_#kN2Lq1kqQ+A;wqv~P_}j3;1I0Wl36~$%;x16#@ixBcl`iUi9HjEf$>zyd z)b8zBj>!&YW<~tTyzL&G<%RWjYIG}C3FP)t@mTgj@O&Jk1C*&A(TmnM4{BSPv6&Tn zBlZRAvz7`?P|qFQBIz`Fq`RIP@Fq}@Wpi)BGKEGe17%X};-hf#4}j`XX+h-a^A0&x z;ReaJVtv6+T!&OA9=$V4>s2$?pjF@wRh@H+v6M<(O4T9WS!I0EY~sh4Qdp2B$b3Q_ zTgq5l+U>|1R%vBC#09*gGb|-cynMriozCLyQnYKYFDD$ehL(oi`48^M^Br~kOstD= z8dmU)@?#pxwIYiMQR?=i*)hA)YVy9c=uGaVV-vBn4W_JNLqxQB2e)N>wob*$$88;d z8RxjLDNkNVHCqpj-s>>zC+1wxh9Un{6l(}0lmZCDxlx@6kzPq6Co|kc=fzL}ESbNE4B%hkDJKMC@`Oy^597mTA>3!_vGF*9o zZ(S+z7NI0#2&dWr-ExKo`$_8lEH>vKbc;dQE~%n1>IOGzfasVXg|bR&w#%eFpl*A2 zjB^CD_Ufy5pn@X}{xPJu#720b`zFXFBay9PCF2?7qLT<>TTtIkbI^R1URS!UR6f1H!zITJ0>;EK63 z%QpMaX!N64BcoVTf<3Zg!^-UVuwMAbpGwnKv2O@pkYYP}VpoUiapHz`O2~z95r)r= zP4)B3$T+%ltiK2(mc8_k)-)f|VJ9}+i^Rc&v7)K<47pku zZ;pl(cNE7(O3H3jE|C0%25`)6acOI5sg5wm>O)*oI6;=#hqDDW9%Oh@&2X&clFUtW zu}UgCnE<=wy7y zq`p-lH`#8dzwkXwJZBp5Lkzc1K|H3T(Hh2yL-Q!nFbty~x`aC@uBV4M7x=0||&Rrs+e5z?sx~+(K?&m^n}rtzb@3=9m`-%mop0acR+yv;E;CxOPjo zdxAc!5oPm87VQjf9w5>{#F<&QNBe}w+1uU=TOqA#bImNGxg~3OcHP`Nc5KdGzI1ba z2Rn>3)O|xs*Z3VmubI>4Ju~^TC%+`5M|RGymF1`+pLy@bdE|9LGD1EM9Xn{<`uWrE zL(<0@=s(*Qd_VuIdrzN{zADpA836#;{_DK=zw!M4$E^38j$0XA;o zx4Ma+uWXL#(w77~<7r$fvE{rIduG$Trv%Co&m$LAli|Mf@$1m`@#Ek2ufm1tE{)E+ z=;A5(Ss$?Yyh9TXZGr+Yr({x?kH zgY_VH@VRF^?{7?Eg8j6rZ1cmHT}-&D6EDj(JEV2e zH8%e2I)Bv|ZuKm;v~qGIQW_S_&$_6awZ=k{Az zIv+gBALKaBgfp#57hP#f#)4s)VbvS~P5?Z5C~~MOib}YSt$`>gweCfb6;T~WT=;N3 zt)X~5U&sCh7kJr8aH(`wZ&r{7vz?v6g*?a)H=kLXXKWG)Z#&7vP)*UN5l`M_GVbWC zW7527!z5rn+#HnsIva1D+AkP$-1vcoMZ|m|M5sq?i%l$_DX8DLI)P{vN1V8rE^?g} zRdOQa#}M*hf2j>W2c{9ZxWn!rx%ZV4*fHu0k-3@4&K81(MUyer-G!U34kVo=YAcqO z*@LMO_)1zGax}kr3gyMnOivk1^3zZEq~QiMTfF`fDF=t1=|LrBv|8z+@Y{<5vP{8( zv5a^gkkY`(%E(;kLp2ayk9XqgldvI4iohA?sy|_a6Bq1VY4m(xH)AoyM`>*~vUVu* z6+jKYTmtM07m!uekyC3c$3u$qb64sN)W0^N@OvjbgKzLB*Z#WNA@(l@WDEm!KAe#x z|6b~tU70vy$~-l}&ywl8nt(5wNLA})MpS}!BV6VOz%Wlt9mLaDH`gGXtJ0`Ia#F#p zrH2I{)2~iWk@Tw~{p86R?j(qfu;|UIw8;QUtDrbAHq|E~b^H?|JcqmSD_DlbF{n?+ zSdC}@GI;jqPXSg_pH3%;pD0cc6n*@AneffH5>)8jZ4|LXT3yI;l<3{~h@i_^NF4n^ z@GSgmDg3H%#;HaL)|h*~LbD^%oXzMq(8Eq*v8?JEq((jAtYeII0OSyb>Q;X)>e&)R zhk1hvC=NK%CYrTSf^AD&%zYkuWaEY!*v#s86fGjDMv~O*f{7+c+WX*l#-ZxeGC*S8 zOznJu<K_^_L3ASey-*LVSiE^>mHA-HUwqLZP~3iE70KbaB^>N1Z6{v*IOFcvhLY`o z(3yUkhbQ|h;100GJnGJH)W9V9cU-~)k=!w(vuTIsF;<7dv1W(*zVmrU@HWGV=_)VP zLAT2OfUV{+%&mw+SG@E2 zn_QQ`e)Opa%68@LFr8HN{ILVO_^^YUU)I7YEA|_NZ+9>c1laxg8yTO~I%-1cJE~@M z>yI~6O3-Vhfqq-GzBKJ67`>(ZTVvo}ysgN9!|PZ3)-jmRv$GynrHk29Oiu_vFo0E! zP4~`VX&;IT<2l<8dZ2C`ZH^sr`;^Q1XYlQ48OoXYyF)EA`oe&o zqic2Vp4dK#W3VSaR}bZ5tJrsew;E}hxpMaRn5`fZXs((tc%0d1IWNiM;b(hEDA28N zR>UwN0@p7llx0V0oJpm_~e{ zr}>K@?;%5mvUmRZV@K|>=wE;rcL_WY??UmyV>ma?dG^4{I_qjiUdkk|QmDdB%-X;?Kc#wtf5QC9#uhAZnWF;_CIcZ)^PvGaKJ9OnV*TLad!eMhMi;VJ zHfabYu&)iA?B21{CSPq}|C1xz!)^07YaJTM5TlEn7n?A4D2VEco^#(5{(H4TD4! z%o*Tl+SJGH<1k$WM0vwzJjCBsR7lui2M-!YsvPjYB#d*Xqy>)r1kN^Z-L6c?({WOd z?%VLpV2CCU(3wF8cZ1Lt)j307mcw7n!Pe!BMonG49!+KV!0Q^VYAUCe1nUSAs5cfZ zDRsC(XsG8PcBL0p_-`doV>e5wA=t&U@`d&So!p@0NDTO7b5VavOOQ}D93BRakkJP3 zur|~+0kqxQDWyXb&6oa?i|uZX`KVU9Fd0~BEm~ZV-30LIQ8uHOUq+T8j9in2M7K@5 zH~<;JJb>iI!~VS!hU!q7q;!J5zHVT*JYw^yB?qeoczZe@k22$=+~(+m=s8*lhyGRwCI(kTAt@ZJ4k5B)pyQ zzU6P-Ahvq>xcge9b-sUMKkd)0x&;Jjzq-(I%|yh=_Utsn;?{1AV@ zDy<=RO?WM4hfOkx-WC=AirN!?!pu1wi!fb2B3(WzbHEa468Z#GRqJo=Egc(Bn+vxqxp6G9~cJ`*;4p6wq~0q@Ivz1flB=IBmK$ajdXS zM_dm;sr=}95>fw+417h0(gK z@3;{|MFB_C{GO~(_o*6Q1GNFMF;D3}W|RWhM8F6$3oHAhcMiKaIN}shL5Px{FEt9q+^^iA7Vk#cFOl_}F8&pm1{`kDF^$KYB zx3PZtuSK(njjZ7gu%@E#a6?$A7RT0n<>R0)c3Nz_L?a|vvroEb%qv(<crJ5;Pjp8H zK{UWl;YP-OxN<{6k@vYa&+DVE-eR6(j|*Ga3F(f_H(_XpKzgVj-W~)l%5V!30d|a! z8|~Hh#@Xph_t;QL^Z=s$1`1li+xc;j=sXCBj-1e|$T#cxfut&Xh=-0r>K`$74M&+y zM8W5B{>K~o_QRJ}JFb`0UUp&}Qm3khR;CeFh8rN8CjAE|J)M{V-7@E22fPHwciF$i ztx2eyzH^aWjMf6U{-y#}yKarLXUQs$&m=&Gw}xCOl^CXkSztR@V5ab#FYGQhsMr~P zFqZ*TcRdnQJse%2mrul86GV65GR4EKvE0MU^T(}`Q8!NPLoBlh9u!=q6=p1yyLJbF zwd7!v1+HUde_V`?tVXBaqm0z;t^3dyF{=v#k1)0Q&8b*dq=)e7=&9s|i-e^2Fivk# zkq-aJ_NF_zBt-r8!umlxDlNi5$3<~AltXl)LrY;Ssy*r&(Sbr*zL+?h0(gc5TumPI z=g)AM8IUIuGn=+90@Y;5@Ula;cYU2jZb|NTk?nIjc}@8ZFcm-J=&5;`xFpFHXW-8# zM7uMTQ!|qjPY39aPa@G>(?Wk`m(#(JD|``-xo)yceDNM*Dc5G5&4h~|Jw{WWz(her z)}mAhfKlXR62LB^LdqD@8-m)haJVSHqt$Mhb013J_aIaQ$evewsNo#5iJs5=W*KK# z()x5e$jiR|oFVDISHp8CcfrP~m6)wB!!13yo5HRUJf?Oa%KmbH_IC}A)t7)~8a!y0WaL`##S^A38^Vw@F8@wv|7%;^Fm@4G^j|pzV zMup5~k#u+_T}?D{sn(As{_Q61_#ptdwdXD8q762??Q^9Sc%|ikr4@YDb^l4-f&CPc z>YlWpp$BdoJFV43NV5(+sfwm}x~k;#n}u!6jMf(zif)Cfq;8y!sVg`siHc$Qk8w#s z;mENGyO_#>Zn+bvl4^D0%cVtPdCAy?qr0XE>B)S@-)ALkIp8?a+G$f_m=2SG|m-bhF&)DT&CtT4|!BB zwK`Vj(U^;wnxM2nUowde+gM6jwLolL{SKa3mPe4^$ZK86Ht3zWL_9h&mxj!kSd=R6 zPO+k5TtDy-YsmD%HCf1$_wdQE$ctfqiuH7?{iUh_R(I{%7Vev7xr)7qd_{AEY?+eS zsIUlu_N6en$5TG*SvHj%dzv4pL%hD@x{G8kohq!W~Iw-6E07~4~0<_I1!I*bO z3Zv$PCxZGXHTbFeBJ3DJwM3#w3ic0w@J> zmljQNxC_zu?xtg=YTI$4V;DO%KxRV+2o95MgvT0yhj8t(zW4t0b>dli+H`$Q1B*%T z2{AB=5aX2sN#O4fBXDWp9S@WCMDf)ey!{l9?5JQ$?QLJX6I`M^v})~sfM}^)@F;7-qxq*Erp6)+GMGvc(UOjA%vhXR zYQoZILKa7Ty+`(On?+(8WvV@aLy%$T7Bp>+nS7V@?SnA#xY&d}yNK;gNUhJfByf6; znOh`#xA>ISJGEkwyM`c|Q-_}RGW z`1zPzxg!Ao)pV^8-i{73uU&EP!Kca8WQ*uW11?l&(cBC33(}iR)d!VJ zVym7y1bzhiwf`M<;B>z;o_onkzq_nn=}JF~LNl7X3(cA+lDmb7ZPV{9nYvAxZRO;s z5b#u&fLWDOju3R{bp}%6?HCsWj!--KwbARQ;nQt7>7&F)v*I=f#jEY+ycjIhC3U(J zu%}NvNSXSS5>RLOPN#7xsy>;5;D{ITlKMt?Z6dA(r-lzkA@wmU#tZ%)$@UeuDUB0U z6TDa~BTjn^jkyju={|PidwZ?gs9QGp=a8Gff%W`z@c6ES0S5YO&+(8SoKr z%ui_Ld-t?q?}Fzy5=C(DTu?8t#a``LzK@~?jUS_Diu^qMsgsOZLvu2+77SrVXzz&m zpeJu6q#dbMeE#otRx&y=e}#t&{Rrn3|}RkFQDsI1&?`iXn;J-Ef66^9okngYCzV+?m=>&RFm4>>);8(2trX1{HtmM-+?KTl zePAGq&m8iv%)IB=v6f-nwvi;~0-r7aF4;Dyw)a*)AY|GYm`Tnaf^yoj$QB&@)_^45$kJ&viH7`3LlTNJ5maBAMl{;~#Z5|L6RJ zprO6KovDq3skPNVG7#T1-}t8dMqn(53=kh;;52Sa7>x%bGAL85$^OvVm;oMMuLyu; zMbK{0&(uu3`g+tiQ{)c-?}Y2BKv@etI%jFSF846|?k*l~z>OVReu6%)fFHhV8fh88 zQPkCL3T(->u}<(Xe#=gF6tXxi8x&_I{gMQ^lCE4(Ypdr#$gF>lnNJe59EwDO{#H2h zA$t+qw84{pMzqNITI8~J-NW1*L?}an=6~Gw*SK#Zvyy3}iSy+49Jsb_Gbh*`+0YRL znPpnFCxd4s_J=CC^3A8LLLJUMy-Nj0bl6f4kbg;#>fc<8<7`aPpV=}JApxfqo{q<< z0RbU-nR}qfA(i9}mHFLoqv`s861S&MC_*?|=(fjH!vbDG3b)2ga2-@ zxvzuuzncRRa?!VNG%)<9tL`_)H~u34oznjn03jPBAvt|rU0JBSNDMOygropqZy*x^ zrirZ>ym|&BXXLL};VVFoFUhA+z1q;hiHrk}Tck%XkFL%iCp);j3_V&tp8S@04pRaB zx8b8Y)X4Y?eG`4L5{apraAySR#c}T9?j>-YqM5@Pn#hE^CMg)j@Lr0kX=Yu_L+rZ= zOlZ3Y(Nb^7yD?bl_^!^cI0sv1M9J7czlw49Kcoa%sXytFPa`r(rpI1I?e{YG4-wo; zmd-`|sdpPN|Ei^;Fb)UGt`T~8DpT((s-N?x4v>YX%wHL!1{{sqvt-sg1SprfG37G* z%3d2!RtJ;?kehKU)qHq@tz21;H>YQn(x0vLIl+JhJ zS#U8U>sC%fa2(5ugO;Jmb`PfE?Z<@C;Dui=(3(}g9hyH#fFL> z{R!ZtSo+Z)>msd8Ln+(133|fY$H_VGK8aOAJr(ucy0-QNe=mDki#KjmT0bZCo%m0 z8>YT#zwv#GZ)D0zN%Zr=dMd1g>YJOJQ-t_!y#e_9xs=?=Ba!z?G(K9^4I~<<#91Qs z;v9-y?Z8}#gvOJ)!E(B+rn*kN>O5S$A0qX9jlmPTt9-+J$ukoMWrCbZrbQ85=vlBQ z8L~L2nZI){R0kA(>*Al_x)CZyCn`6|oLD@w=n;3Qo{V6uDxQ`!a}g(i5hnx$RX22` z5F?~&g^5jwj3LXVzhoFb}!$!57H~(BB8S5$hpAOU8j? z9n}>-`gSy8eyxwdryAmu-+3S6wGc2!{ctU^tB>RrCT>HyK ziKd1#0xMvmoeg&z3ORl`$Yz~Sj8!VXQ!_&ymsY&gVBUSa6djs*p^)8DzI;u&jx|_s zub&^FcR)p;p)oPpOCS&ZPW!pQ@ol)$FG>Psvu-0alZ`FOzGM9$L&oMR&QX>+O zNIybef^1Dq@@Ddzszq});@!wAA@6iB_|isL6t zsiyw?aoojXo%FN!^3{`P((^IPeX8|1>mtiN_;}0njTA1kG;_aDT&u#qa!SHMtL(Ow zJ-hgpK684xRr>glefhkjZ~Rxs+<3W*Be&&|u>Ue@$I@5gH2s$qolB7U7wlQj%-n6#+U?0UyCA*vA(J;HTd-TuUi6dP5Nh!MApLzsR zV#f1nqyl57v61=be0!9dYx)gb;5{V`p><_+;LNW8KrMg<#`Y6 zM5Dja`SVb>KL_+KqrZv8UMb9J6yM$hb@%RI2qnlsT@?X!rScF=8vpvp=*?b!My7GR z(d*sVALM>SzN&l!@$V+xUN30XTb1NwY>w@A$#XP$9WK#*G)MINYn6M!wA+X`>aynIslc36K6C61;t4| zsSCGDM?-nl0`4Z5R_!)=K;poy#=CsG41812D|7mG57ZVKjrNsM-God{W<|*!pF%zC?Yio7$$z;rqy9tPU~mD!YAz zI`QHzx`lx};ro3M%>F5QjC1~mkm+4^JMHk%I@PU%zPM0RR%I&Tsi0|YEhzn_&RwRKP+g||4p+(eFO1ZfIP{3=uRy&B@BB-F;Tq>`{(kPF#NA}cE2%N zi2-#t{vGD>Qi3&($Fa;@K~7XCk^InBtj^3@og4<#bg1-U|Hx1snweokE8y|fbh>@O z5|f-Rl9gJlHw~n`Xu8h#UBMD2{h|VV4o={Bnqh5%4}Ms(fX0-D8OdRNBznP+P#Dr^ z;4n%A=)U%$0x-V(!}9$${#utjB6Qog`7Bk&iO;R^sX-$1dLr-Yg1X+kt)2&+@_}J9 z@CD2h{WN9`1XF;V5F(B%6_`w5J-QNsbxKbQbWfEA9=xt3sXAtaxL7SW*e)#D{kX@D z)6LIgsn6~(UvRMshq{H8urUo+Na^4=74U_ly8}55IW|s$X>3qVA$;`sQE5Y*SR?;< zAA^ORgJwPTIi%C)X(SlG3QjKfighP8OsCN+AtlxTq6PVz!VL^~scE=XEUYh|V6G~* zwA6`P6w+NuNda5Y*vUFcnVs#E^FemV%OyT`%^RR(_Q zNz+YULVVMU1?u>N%7DZ{HHBlj(IX8`5pj2Dx~qn#rV0C%y_yalL{M_rumv|XW*Tt; z>ySH%2h4g`R!SKn@)D9SWn)Ho8DM;fC%I?vyu!*K&_ur_D+N3)9@LOmH4p&b|;PQbh~*_X51-F{-Ta&UZkSh+>;cn^RtZuO|jKGp*sAgIE0=)m1+s z9A@hqD@Z&no{bQ<1oc|{8!ezhvN3i*}IKy&fg?5y$x@wpIL~x#DjD57z%YlOYcDNP`OXh zVI@pvL%w$BCb;S?@v>60+HeLTsu7Y88>%FWZRhqAW93$#y{X504|j`X9Ekf8fBJr! z++e(s#AoH?6L*h#8>P{0kTIO;k_AhCKz$;yz1$6=D6F@My7VlgK-~wy=YEB>aataX zJrCGp2c#=O(N?=*JozMa$iIvCr}wUngK^Eg$}Cdka{+C|{bZPmQOUA+FY#yOCp5{f zcgmZL+gw3)?ymQ>I%$wh>|9D299@?WOtDbO{4(ChLA>M6bsU_>)p(8!CI(|8cl`E| zx5RDK=x4686!v%_v1eu!o~ZCh4LFqvAtHGCo3__-L2<6xOVG*d&s-k9VaY7YPU8ZW zaN~3b4I_$G>p2!(@v5Y)+qv@CEvUJ4l1}5nnQAdr7vn)sB;SCOp@aB4Y6Xt5zO*if z@#hS=jpcP5nI|_O4nOhYF3TjE>FdQO{?HrNJDh;O6a!Ec<(@O5z;0!-*eYznrT2Fo zfja6l$Aro@TdN2)uCFh7xuX0(f5GLbQ?^BfN=6Q77!P749vYMnKnsF;Oi5948yl4I zx)|%=Qr{SWa}6)3&Pz@fw(dS&=87{ka&ki<4TgPm*_05(fWI8bpN9Js9D!%x~X8bQkXYGA2ewq2T}n z0;mX5TPl(U&=@I5RFRLdbfN%g*Y88e+a_wXjd^NeXq?%zm_jjjO6Bp9lA)2IfnIJF zSRuVcDsIa_Aw5qjF>89E$aKDtrGLT5tiFI{ePOH-@)WP=`1beQZMs@wi$$X{fxy%I z-F$KwF-jQ1RAPgTustdDsU(}_n6bGhfv}IghJRvEfAJFF3LGd-ExB=G*YuquAq>AZ z>hUF}c3_L|MbU9XFCe=vrnZn&;bD#*TwxpIu#M`3Eq%IEk@65D6OtEnQwC%yZ_0gE znRrGjw?%tLB^bRR68N(j@53C9h(@Wqr#31XeZW&tS#ha)AQGddJbnmvr6RH%3|wp)L$)FW8<2dNET&~<;e#ALG!q$BKyxowP4=C0N8bcK zN^S%VYkDko;i$*pN^%$gyDyGa5#b%Ui-l)x)hbp@?_JMZ}9RUrR{q08-zp ziBL5f{JjwfxvrH+dCiUyB72pB7XKV}SfLdYGNvg8lEG?Q*ztTyK3&-#coY%#@{`7CYmVN|*G-2~G|ko02KT&` zI9OMHn#uE~#${?GT8V&;b&^9R&LO|!)M1QCMKi`$fGcpHIjoF9(s0}8Fd0e6eAB=l zzB;x=J6@V{WREy(uIuKAFmW4}T#X?^r6yCUa@OLOfJq3;VF=Z zc;u>+TrIc)`s4g`>@WvV=TI7y(Q(tGdKKi@eTBavVcar^Dn_odW6kVmze#vj){|wG zXrE0Ol;GtckjCQy>9~Sog`@Q&%z0i0?Q&JLH~cc6i)n`(m3p(Aj=Oceqt~|)9^M!p z9#8vVpSJsWM33BK zo+bo`ZhnY_z6))Uh?+Ym#*{a1YV!YGdgy>3Gq-$9h$(K=q`~WK+$6=zZ|nrm@$dk+ z-TR>f$o))Y(1cwi7hHM;8~K3Znw8_{q+$!#f)ou{zo&OaP7PSTSG%LAafTahA2SSf zgXX6}Jc0o1nujZ67en$|4n3Pd{s=2Yg{Qp;D}|AF>V87s{R%tTV`Buh+-9DY_uIXs z=145<9(7W<^McwQr?}McZ~kA7lL-1|^ACjrKt4B_xFt?eglJh;ciX^Mh%yUj2nMX*vg9st=nyfU-`7y#N~pcW)tpdJmVm|}orAlhjl7sMP09|kI) z+^}6OfUz z83e-(Q3Mn@1SJe`yu26l8}48;&#TFEZ-Y!$ZRa-q4~B%N9>7WVvQ>*3($6z!B`HhUI8#{jtt;(_xyx^C4 z=0drqfSeoBoE7d5XCM>*ogSzKFYfJ38`kI-3?`qx0FPAB+35G5_(iSV4$Y8EPnTJ_Y!vN(& zXfrcP?(&C~D`pI@4{UOZF4)W$ytS6)tPWBpwxztr9TfGU_&a=I3=)VyJyAwm_Hg)y zte4VYC(^@|B-sb$UoS-OkczOX82+)rA?NSWy|@hvj(-b6o#h1>6x>^e?C+slbaX zCEZQ9*a4C8#jwrx4;P0`gVfB^8@J`=g8nq#&Mjecx<;q;g=OEGFs=a} zJe8Ypc4i~bE+X=MimydJ5Zt-GkWQ7z^axb@TWdwPv;x}N6C}?RyRvyor&fe_u*Nsd zez`&Hq{*nvSkKP$wnun@F|?hcuZeaS^XNQS4&?RR>;$VLPEZjS^6UZQ&$*Iy0;&zI zk(|ipeSiHL_l@u5zq7~r zzP;z#S!<3t$LyV}HHYmA%a(XNQ4Jf*db?3vx9V%;W2L-*Zu59Em3_m@hR z&Zw}8x~P_>Xe<(Tvq>p^J?iIL;+H8aVY;MQl|P`lr&29dNjeEBd!-j-_>Dr|6wIZ3 z(qcj*+8(Hiuy3zF(D|=<~O{6R(g%I0QS&@4Rm)s6=@QShBT!nF2o5T? zuI=?Zk7~RV`>DN?7%xXmARyv4NJmNGJ^iaWMd5qIH|7+Z8bX9|^T_Of=}?a)Zt=D2 zFIz%2*rjPX#UczCztVRI7*ozw6layDTPh++4|UKu_A-?wUGg^6#PW6%`pFFeSx^&?V4!Vt^o{!J1izv>+a=~v)) zfQ|#LN-?U=75=Mi^b(|*_^lT%#T|a3QxWo&yyoP`iDre4tW)ZSPii&jV3xn<7M&Md zY$wv5K*;fcud95l1+b@0Uodz4HQb=LZ%rlU3A+sJ#@?zv9+6-t~LO%OdI@0Q)`KxdAjhQE-K55v+rvZJ1t zxR;;Ox+`PA^0>8#Vi1s?d#isdxL6x4nSVvEfFWnBr+BXST=LIP=RCt)FsZ^+0`=Eu z^^)!wF}{0NpqF=zpk1xnb&Qg@q82MN=79=xlm;nP3uliRi;XL8kd}y5Pj=vO!e`N1%xffPCMchb23Z1J200z1x)SR867pjqnZ*9h>rlJ}Z zSugU}@LEV2FjG~FThPOXu;6KtZwzr$P4f-Jqum;|3*S4MZe65C!*%0iN8{YA*9qxG zd1{$fK}S-m?O}$g;&4M`w@N!Z;6m=GrD*yVdFuhGx8jFO;g19FRe3GXk{^E|m5kBy zJF*Kqu6tVLt4byu9P=*JO%pMSUbGao4#=4gmJU+dA7#5O@cpsQF5pj2>fi8JOD3#( z|I(_UUaIJ>9Vw%%2Zj>igh(v9Quy_k2)sLS#j*U_*KlL#iYb|1Z@pU|;o<0?J95jG zuDOER8%?`&$d$!|e0zPY7}tY}R?yzMM>=yf6i@PWwOwQ+>e)ThAOrk>Zg zAs2B4a}&_)_hq!~r4Z3OVJ*up0iczUJj=9;uwgkfBt9Q;lFpw3vE zJY+!PYI-AscJ{X(TM^+n$u^a5pDy4}Yk;KSvUk|=kv2xaMpwCs){=rri;6rd?Jv*F ztYiiXY}#taPFILT**tk+VieC2NN2uF*UTIOE0j>xO=*U@Cp9By&=`MWRe17 znW_sHMEHXrKVv<$g3l2)j2~RMMCI`ipSZp^~&=a-#F$+ZL15nzG6Sm zGYu{mUy)rkRc_*@5beIW6*M_F-XzW{n1cCWP%gt=j3XOU23s*QA8o1s{@Bf~A4k!9XTO+1iLFKnZJs9rA9a@V8tk$qnQFL|8*@&J6pc zX`^*Jm{n1T(imCr(jUu%Ht@q|s;HwKYoBPTwrw_-6b@Q0%xk5Is`xr$SZ1{p`tPkfKn# zqwTr)5fa3GzoX+W#UCtjagv!d$s(R~NZj5K1VmJ4MqRw6PfndJPcI)&z^~c9f!2ZA zfdc#{=BM&EqGlwHC2#5tcH&3lL8=h_cIvMdeKO_pjDJ{%RY^1JiwQEN0TC_q4(gsD zcM`Q^RUM>EX@jb}T(4kXberNSb>NC(Tvnb~@H3fG4D&M^Zui_AvQ23^88y0WpM034 zNd)@U7`YnjVVDlHyJDL|H#ZY2TIUzrRZ-kV2@V;wTY{!FGA>LYlcT3?5^Fq|@!-_G zt??pJSbUaPn%_1aYvQJw(K(NFS+R2XBDv3YfBdsXq|XrTjr{B8e3uvekNbobOusC& zOusbNe@J)#PmRJi;lJGNIPUKnh2Tx(DvR46s-(j9TH!*aM#`|Wy;{%WUpBbmB+rIrHs zfI+Dllr38~bIJfLdA6MsHWOBuICC>hxO$g*MrXIGf-N9&CNi+!w#Nkgsy!bt6^FN} z&OYr@mlOD<8>Qn1OB@a;l-R0%SWdTB8@$D8t()-4VPIs93a+s{ES(I4{}cHvAL8xb z%0~X9{mZxI%D*$2v9z($x3T!QCG#J@{|}#;|NVV^H%B7_8$+XiyYOGlku0>=0ARl) zajGv@BijFSt^M;tJ_oCBAA2JDe?0Q)djK5r9Qu(=cMpYe+NIL2cwQf z39F>hZfFbRofGoZEt)@ItmiqQCSk&mVh1Wi%=XYx)aApv_^?9vs9_2EYL{p6V>r0t zj@`~2&$^kQ_7{ULt>`9{+GbDK7J+Uf{g{1jE$I|#Jn%uF6mFYpU)x9E6y(7?f4_%T zbZ<6?DZUT)xV9%$zp(ERW+^zKE}<`y%H>5HR7HN4zZaJgP^i=|?1m^4nPIDNQR$cY z8X?VvC!;Bz%NKp7BHuGj4alOML>IVbGTQrpk0mit35sI@#v(r4!5aOQ;WeTpJm*_>XwAi5%1v`U(_?ub`p+ zAH~~0qV4;_Z+w${BS^vGU!rX;*&3HpR}RNKPc-NpNZE4)0}(HFUQzUyIR=l_S{;nF zOU4RyV$262@5~^{%lcQmHCQpxldqF-b|pAWb{%eX^mzMx0&Ib6oBgDxTDI=E@TNai z;jw9zvc7OVSI}9;Ab@H(TnsW=O`c+ zKU#Yo<8

E@!AD?S;`Ae1ZR?3_A><6dCiH2SJf$lv5>-gpuQp* zi2_GU_-(4+K(#!QymgT7UF>cn3o8XX!`x9_vC^(NgL7@cHU$5CEcqCehQ@8Zv9r0& zL?hc}qKYI1d_qrKO;tBlzOp=+IC$c76h<(H6=*|*+;d1{&}+z}x7JwEdP0tZa>3|^ zZkXRWD(SegK$8kRDg1c28D0%OYd5z* z1_uNg1Cf_Yiup#|Y^=mDc&TR054Qo-*0cLmVJss%^PLXpzknp5Z zCcf<;%z1EKjG?;7a}dmf`k)Pt!?u`ZU)n^!;L!v$oeE)9M-l*vMUXA-;|6SOb&+zo zmmv&f#f% zf@`>mAx+?+-vMMNlz536Sn%~f4CCNQolhWV)N^nUHnTL6GIG=t z)N|DPN3?!ZeB+z$8%65SUzIFLye0>KL`Vb}0-*pH@WXx*CBP->4*v3gPW&Yr3(S-s zkDs>HONVGe^0U+zqh&FsU8qW^BDXq9y?hxN0pz-%{UW?wxy5;XQTg1wYW=)0`>v##o!@*JI1}Jb2sK;k^~4WsFo@7(tdvo6TDC*?0zbicoE)pIXHYqU1SAwJ3gFP68tcm()H?DtWn~Pjtg9_d)pN3^4983>G*%kB z8!VFaFN2F;4)4cLRxzB?RwUDg4ehhQ##o*8EF=PA6VmF{R~MUWOx11D|G;CfVlEwN z7VD0ew+ACT9g;Js2)4LX+gR(&E&hyDuOz)1U}`F8uy#6pc{sR-KDR<^ajMo?*w`4` zLwdvXsL>D3l6St!!0FDR5yiezpmHP;s}|O>w*5 zv@Bz?h~p{@1gLAQc3F8=ewAPx<1bUr8-uz19J*t1T{G-td4)ll0{5>WGnmIzciFv+$vOdN3!t{itd@%Jx0dWh^*+Zlku@;33(TvEy@xt zv(y?1&@G}b!v*u%s~2$lU9Emqdos z`Z>ux^KpLeCC)P_A*xyc1U^Fm;KPO(4Wd8_m?!E9O|VCl+$G9&O~Se^+43W(Tek2K zDT4T<`Gh`}QLh$yFu)F^#&&(TcrDN(*jA|l?eTX9buF=Jr8Nx5fUnsF@D9nWvfTho zR)B<^Mc5svpNaBG0R48Dt|sd7c_4KZc}i&D3T?zgc<^KEvG!_+LrA0;cQgJ_lh90i z>KT*X75gD&nFmAb=cE+utV^GYubBkpbCRAfwq{qKs|?kAPG~<+2?=x+t>}h8t+MD6 z>ppmu95{cKVO#a+f-wxrcBD>69D$0FDqhU)Nz8g26QA`*)DUi#6Ttx zum(8rX__lo(V%-cG-fCZ+W9{A)4cw2>dZ~Qm^|cKv0dgU@5QM0WmKa;wvPgKaw-N`9H%4LI6~}$lxy{i(#8P8|56ISXti{0}X=+z`ero zN27k(hzk3PzO-d{3-`p@W{@2+N(~1``+ewE;$yQW(2=qYz5sID0~`=3l#jtz<+<|n z*AX_-BZxu`*6K~Rf=CRHmkXhM#PZlr*W^mMI|(ph2}1}Q3vN6!chRz*B!3J#Z|~%8 zZmnV`WbXw;@D!g&zEHnU@_mA!2}8QfT^{$u6$5s4k%~QDflfUUN?~X1!_x^D^S)PP z!oU!r;^-5?M-uHhmpjku#B!Vb;W6lIHvjAQDUri@#HgFSVbz+E(Tz7x4U_arv@eZq zMPq;tr#XCP3|TPS@F--UF?fKuAMS*R<(_Y0$Gm2H%<$Fai@3j=pxrHXZJ2V$hm*&A1 zNzzs1n1atb44)jADRLkmyf3d+>KHRrX*)CLTBwE~LeUyE@)NaTQ%%4ixQ7G}{U6eg%5rZd@0h0Nr0$^J##v{0 zra?&DNsjmtwSe1~1#>{%lf!th?<^6y!R|B>wE)`_-^kmc9NWSshr*`WL=A|t{M-v@ zWiLU7xypU+c_h4Y!n%|kS-fch1I!?-c051nvUX{|G`%88zFS%~>6LcQr~A{pNyu4{W&d3Me(oZ%ys3M>ng1`Bgs^mp^by2Hv44FzS^8 ziu9&4!KH@NJ6Mf3aL6!mmp`jcIQT0%>^VZrs#G{7wL*^L^&q$ckU{LnUZoSCyh2JJ z?aT_xV0&tU*uyYH3xwH>7_pAI(0tIL76EHhfVPkorK%bem3JgCjaQF79Wi9^9&z(v zIE1qtGZ&{%8RZWvFBb!0;~N~G=ptny;W_KP z+(5PXF!T7TtQp#&JVc`gLC|h^fx&qH?pVICTMhq)(27<-J7qSdgYJB%a|OXR%TjW#@nSgd&LNRm>TKr2^f>oegp!jq-dtx-%U+k+*X}5>Eg9*q8jD*!QEP7) zOZ&Th#o;nuj6pTAacmc(M#h;{;B1`g;?7vh-m}$>m=Qf)Uwxde^p^LjJLWwO4=l*( zJG4-{DNPikC5qAkkFbPyRV}ov8M5I4cUoNnxoz)t$BgF*G<1BL+65o&j>zrH4Lie{ zi0$kP^h<0Npr92(3Y|C+o5?*BG!dKO=!aF%JJXrla_xZR@0H*J@NcL;N01V{cxDxCAn80GitQi(h#OSo1Tb8PBtBL|$rIv^*`dH{#@^5pH*W)`Pv(scIlO?eZ&wKM%A*E}NjO_C0)cJ=BRqWswLfKofy^WGB zZ4tXiE-7YF{;E4DEr_oNP!ruOxy0<$SZl|Gz8)3_@@4G5hB_}KN)r*Ggdjp{` z=pHNA7RFtrOkoy-m0N0SAfN+V7HwLn{GPyec<3am%DrB7WI7WaiW?`ILw-wT?U zLZ&HcYS{3x+^RY4N`{;a>lYI2(gg8{kz@CuPUwKF=$`p%7S3Vmm$_bo%k(v8*MQ>? zs*UnE=INbO^&N3}Z>p7=*DtfD)Zy7ltjs|P^SM8o>b`btdxfm`u0xT@C82mtZWlfO zp74%a;BzsFq=(>5s{TTp|h{(o(q)mma{xy8oxM4Udnp=?x@ZgqZ=SYQ0NZKOV4ih z@w&ya2qnaO4{w}aHI_?G-^T5hCj%#gn1C)rsryEvx*uUQtSR88)@gF zLK{WzRAkm0FaCTFpzt4ea^QSW$V+|Q7gEn=IfdCe0jhSxNIu85`d}UI3&-1Lu(xC1 zzu{`-1IYq#r_V9-Zz3tOhMxD5>T4J6GY5zX3Rc(yTJ#xKp@y!I(9JTEt5x5lwH+2~ z-#+vokPIt&3&-%gy+7p^T6^aaX@PP${-d?znNzp`r=*2&=!wGKIu^Jyk*Ln7G$HB` zUt*3Q_keT)r==ccw{HA&3y(l}w>u&qxu7(@P+Y-6IK(udYaYitj$WC}Ut2kLcbYD+ z1Z0r9ke+H({Qc?j=hOx4%EruV!NndZ|B$$ICoEDyDjhE$Di>FBsxw(-5i(upI9_Si zm|+QU#%RZ5WNU2zdmDrR@P9JC()*72L39~X;@AJ+wX&L@`v zJ3rrED|ci?OSfYp_J!!ZB#0)qceLkn&|^P8&^SC@V)V}`JUzh8H7Laaj^G5S`BpA@ z8!P%)n_Yb%;GdAh?xc_0m-`jr`L`Li$d7XwVZh(}Aid~o@ZQ0o!CAM~jV8ou zD4`E8`64bfL@%9mdT)!bJ8No`WN@c^d+OPjCqSEhv&JpLhPXqPY3j&rshKw=qu+#($KPr z1v;maT__%X?6lBVpB%?;sFzdN#HBArs=U~vru1@@$Vaj5as*XVMCGr*bUNvQ5=wx#Kr zWe1XEp90}fF;jo&DV>1Th|%T=CNoO@dvtVcY;4qSd*r%o&-huO6n^k)kfQ8D=(f9& zw~@sw~ttW{FUf9c-P8remS-de>HZW2lM$)&~=(kG z*$?+E9(S9$OAARZV^%@TYG!KMNb&As$)693fDg)USQg&cubwv)%Mh5vleoej-o`L; zMw((6ys{^}%EP(ogvSzMZxW9gm?c&$HH&c;1W(byN595$k5%2`c`d;`gFB0-Rjh_! z-dB$?v{%$0X(=hyZ#rJeG{cS#o3EA*i@$((EE!uDYu87b;Xa|QJfjaTG>FDc;REr; zJiXv6T|p`i(DuvZlt?@m-Q`qHoC8%K8otsQGAW>5%NL}X?>j^R+Lg^nN=@_sNs)Lp zZXfF1GCxCl3oqioOD0ax#fG5GDPwtSI)+myD&5)Lx`)`OuHUtQDOmo zWn)Xe=BBXx*Xc50Ggl+Sf61At*qb>T+5aP3_Ra8(Z?MSeywjToIifGq-H#&7U5u84qLH_B4wqSs zhna1UmpwW?0B1W@LBIm!v3Zm=mM&=EGR;9a8r7ArII;1zr+1?+dtt&+Bi0+^JqQ%ibIBC*rT*6;T;q5rrVlLP17vB8LP_BcB9z z`04)UoZamsSLvSI{c7d8dWF)MG$=lWYS<7=(%XgCfGWH7bqUR67AuitY3eaq)ydW? zBg_wm5?HZo&e_jTcPrj++?QOK!QES5-r5rP>fGpy~eWdp!M4?zis zqI4+_I68X!6(|qgLq=>ya=K?`?_;00ci$>hX1a`s>-br$xI3=(LI@BsIq(LYWg+yp zgJY|!^?oH8i%jP1l|!w2^YSqrl9=u#RolI!Pu^N?zED%8(!7d||9~_I+|X=l7Q7PP z7P|o{X_#)0&cu{z!oW||u`#p+RO&X=?2&9K$OAu5?ci!Xr{Qfp^L4CgCRC945cUm(m$p5eURc03xKOLX_O4@qXVOmO7n@&&9 zC-BuzSbH=BG7-BPY@e$&0ZM;1q>l==XpB0BWJ-&Zcki;9ukvRD``-+bxK{!fBAQNb zDd#}&s=@qlb_UsFqG#sQE zlphAOnd-5_+U4u^mF4B3D*oVIJm-MTV&oODHG5A(Hf`lidrNpq0@J$*N-IwS@ElU? zu`CMoS7ilw5J=`4Z3dC-J>kb7l*#b0i!d%X{HUgTx?uJl)e1x*?FMZ1J9{>ut`vUrg!G!KGoIzj) zA*91PzFSu8)Nf=$ZXNF7s1sPKZtmeKLMkOjk=9%0s5VJ^P__6Bq82jAsK1sw7i1i9 zcCf^{?g*5s*zDT)=a#z*HmWZ-OEZG*ZAtMXvrWlk3>1ZslsZPdEXDePyt9JtoOwC~ z6N%sOG*t>{p;+yS-eWD)N|u_*BniIus_DX_hei{Lwt5pw*Yx4ci9i_7!rLC~2js_@ zPu`A)aSAjQlb=^A`>oeuN6)6qB=6^AN)Lc5(xrweoG4P~PNWMDcSEky;&|Cz>mf2I zH|zB5LSLQyD8FKERXgSBGes8ok|8(~G+T8+%um7iGIGBoJmx`ozJ@4aCUDCswrUJ& zRFgzrauW#gT;^RPBR%n#=;vyL0{2O9;0MEtJ;|P5Ts2H81@)qR*rSTZ+S;+l{*JfD z;OCsy-Mqmbt>=S@F(XtijlTF)1`KcYn8y1XhC^lb&Jf3uh({mublmPY z^2$NOK#;fU@vfTFVZNArAJra)bE$TAprbR{5uy>EzuS;`FGLmM^Qxj#Zo5P$l^!FYl zIpGy+MBaa<>&Q5hu$o_ql*X#RMuSmsltxz7wW~(Y0j;{Pg0;Y(E;lv!Ap?g941rma zKXpBezi28nN&x?Y?gs`%I>Si&ZVvm9ZX^TUJiKqf5^W%>tD@aDmZA>rK1ASWx_V-G zG$t^*1|}ErDdxG@AEvZiVC?a{6r z-I;bQ2x-gkHO8tHSJZh@G>#k}-fbp!R%$JM*cAAnA&bOGcK{&JD5rF=l4A|1PsQVo zE2s%|rrt0s1vnEnB|FHzLP(TDDhWmdvQokZIKzbI>hjb*aKOHal_!7>ktpC{Jw!-< zExrUM<8KBWkqiX)?%v5gb&vrijwG@@>e@MVR(q?7zC3#st=ap4n&6LHzz1`$s9U>< zfCZbZOg$##Z@kQqd#VSlw1I)t5h+NJ?T#ilO$2 zF*lj@niDBP8A}4m=O3-!diSQ&6Z*(35C&p^on_qBQTp#d!XTx4;}2gDULCI4w1+ED zw71n9DUb9h#xvkw5#JKSmr0G7SuD2bJDb}VthinYx;uYM&Ie3kaqBgJpKZ=^kwg*! z(AespdJUD0G-7v0eXKch6tx72rQMYq5y=YlD-w&%PXf%#@4f5WOScvM!&S{L!^e!?QIFhiicAYe?*e?YpuiO&WE8c$%S5A7bEbpzW z()Or{Gl>t@g86`(H%3rX%HYBX1x@V{u6AA8ncGoGx6vyF;}JZI(PYA#G*J*e)L)VV6QDVr*I;6pw5{Gu|&2|Hi)9z;oWS#E<4rY_@(0DlY zG_U07<2%x!5ks|ogb+*+;WYz$rRd=ZPWZN0KO9c;K(%|vQ2de~H-fQNzx%|0ZQ(Pyy9EuFo0%sJJ*2E8uhC}jAW#qmn-;H5}Zg7BPO3X6rl6P*EC z)ggr^52t%F$`^^Za2{!W@SbA9#Fx*&rEAc-lP%Ua?BXevqfeV_PUTlA3Yk=rpVV*N z#@p2DrANANt{ENL0bTu91So+)iAL!o{YO5wIYE=3=_cY>$dryPZOs8#0xUn3bWO1{ zuBawL{%Sqe=#E$!KK8Hv7C0lbS&%FQxa@F^xnvVK+WRC(|AhU2D>lE6ARtNL(}Q0- zxbv^w9QS{>FLZGHvT?Ef((LX3^KIcb(Ko(Hzwy7fh1ph+MNQ%$f_$+;kd4Uf`xfAZ zWizpg#L2OxIn6F>&ezs07Z=DgyhUMwf`~r8ykl%0D6*2Vu&l2PQ;bs+f6roabb5e# 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 St#13qB$O4)4NbD$ z-&ROkzx!l@1Y)AzydePaJ>QRpP zp96Psb-^1WhL(xLKaWvUED?dRhGvn2)_%*=?ZBgmGM8?OmnygUyPL3*x=wNuKrH)` zt#EV!`cA$3TK%<3k2Ssr?)7zuB(^(Ro%9RAU9lb?^O(3Zsvj7pcQrJ@)oFY?aVe&r zlG&Ox%v9K2-GBZ(e6(m|tCs)+!3!SCK36Sa5r$S&Hz(g(#(K*lfwY@elQ+6-cv49>1|z4 zH?cgvIu-d1vtf{_tQ$*xJPs>YfviyG^Qa2huW2maXe^zGFW9$Fws(nYFS>JM zl9xYLfG|TGby%u|sDhZtK(5^h5yKpJX};`w(S0@UiQHrBTRxkFhB^o6$ec0m8{gCx zl|vnF5V+#HB1 z3Z46Rk;88f$55Ow>8k3=;JB8xdgInt@aFcMJdd^0DMc58V|mFsqF{(GifbH+-r8`9 zojMnn;(9b`S)+JJr16zB&~3h};F2N%Hbl8`RPRxp-TgnhnRDWx^sL|g-@WZg$#A8} z6XD3lG~wF@Td(bmd~axn9ND)JW$36Jdh@Pw<%buMxO6m=^}uQOEfe=lLh3mfQot+D zKsRU4k*1Q5pe#r7LR`yG!r;ihWGx6NU4t@5#sjZ5nt*E`0=D^Unf+;NKaOiE#fjx3 z-M^bUruw_rz|IYGHWf~LrE1q*lHXcXD_r8hj?CVwmDehMmO^*Dj%c%ifmUY?u5`SP$827-rZ`bvm}8hfD&RG%dZ0un&4h zB-W^Yeq=Kt7c?}*1jA8YxgH!7_nO%j7$HY5l3I

L4rg^P+odJzf9K3$iN~{$J~3 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 z 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�Ym%#ux1D|=(J~Vh@+VTrP)ENN30w{H2h#dv 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Μ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

1gI}xh|xc)+Wem! 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:u#&azUOdF6UPP4Vp7@K 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

>MWlfiMo1!orX z{Ex)d|LQTzNaxC+o0@pefcN}kBO&L1kQD-*fp4J@EBdghP}8^nkFj%z&!h>rcx>C5 z*tYFVY}?Mnn%K5&+j=vxZEND>jeX}^-n+WB>fTf@`uTNN)j7}qprG*xK3T@cD-KDQ zHaZTD4ZRp8sE-|y4iIsyrFHabK@X|y;MisRS~g_oe3xfg2yu*i41}j_9FkBCZ7>>D zg)NMQCF5Sc^BgcQ9Kb+fhz*<>Dv^c*8b==GW_)i;`ix=riO;qx1aA!m zAsq)CuS%PPLB;ud|7p1#BvSfwbsYwy+!bMC%u!s$4y$71fRBkxuc zhO^w)z6)w!6DPlL4-xpFM7%|jxS&9N0By?*dw;hbPPZMRvo48|sBh$yIM)hdWI-tq z38LUSqfUZMQ@}^5q2rXfSBhl>hp6%6F4p-j^`p}#FebAs5B+*C^S28G<1WVf+jRrJ z#U#nPx+NGro_!LWJZ>N-drO<5ulg6ZTSXDJmxryC<^#IdsnRNSR;vpvzDm|OTQGj& z$?5v`Mv1gZ)F&+?Vi&}ckYNlfWM2}_{dhNHV6_|6ITotizW%L!w+B_{W0f!-@V3J0 z+^J41MWp#eT@1HMzx2#7_X74XEp=3k&KkevVm_5hJE=Mj>2>2wz6|P#zoR^|F0UnJ z^OHr{-us8t9YBi$o;G!VuHZ;Gn-z^w#bw{+AC9~JXpnG1s{>zGup%b>RC%9BiE`*U z@zRk_bzi>}23ldbgQ8;hA#OCxcK`} zL2@X2=$M(v560!3C?s+M<5EBLrZ~$JLQwcPzON_8O#`P2rKju;l^)>rMO+~yXhnU< zJ@c)%K%}poA!bTO^SR9o-maZ$jNdIG6qtMib2Z4Tdi)X$hnU zPIKvHOEYb(^Sg-9N~b}S$8TCyRwi|p($GK0SH6~!zK@t+Vpu@-%qIK?bhLMhd8F{X z)wzUrlsHWwtSn8=?|@U0s_fr;bKS#WetV+_g@ARRth55KAbMms)^Z`k`7#Y>OH!Zz17H3{nFtF zaN_gv)O8^yA3jYgXQIxH!3QSL!{~$cW(^x}4@Hv`H9!4>i^%<`+Ra$8WBERAKu89fwVlWYkIj6EV0 zWt$h0T98y^5>`Y?)wOTzK%f34UZ@SUmqYfbum1(v;ry|OuL9cdG4{J1ITT1(3B#X* z75EfGvzr(-fG#Fkz=l3ym;v{)XbpNZl>x*q1N#CbfW{+*0vpvJ`qHritwvJfOG$6v z5>VIJF(5e0NpGWDVC*Jv0;elsKK#dE?54$kwUvT>8R!hOThQ}vs(^m4CV=)+qYp4C zfaZwl3@}aL+(xT{oaT{$`&YVTvaMMj8?pE_RJtE=IE)%NKz_cEg+fTwyO>WrK@x+S zdey=Iu0#S+eFtG)h8oyW#feVP^ZApYmku}19byJZ6a(@c-*d7FIo{Yz-Kmo<_bau6 zH_dr>!`2Q=0Kl1R<~Ce?_ino-R!-muHfpyvs<+biq7kBiGzGVnMz_|?p~R;^>l5mB zxdDs}3Pjxv!>r1!!Yym2xuM?y2nN;-JLUVYlc% zqGzRnqzpO*%Vn2FnzAI^x?Tfk%M%^r_k_O_rMIhHQtOL5vp740usi>7DY~CrN*$Zj zBhx&!wX1~nCdqul&cIMv1$5C_)$^M`UcnzH197~BJ11s{%r&{>MGR%mycE35;(M04HCb^?cnU7K4zoVuREk0tl!^0B}Ck54|A)8}Lnep^OD+I@dA_XJ{U+KcG9 zv@MQF;T&k(VY`smU;cU`UsAe^ne`5vB?HAtd?UKd;o#JYn>OZA9Ayo!3K+DWyC7|K z@CGN^ASW64gyhD4=E^xJ$Ww786LyNAGT*ln?$MApz7k(LWsuP^b(%?>m>AP7E%nFT zTxo3?N@gSV5Owy$b?!!N86vX1YAc2GD;}Hk&L z5rr@vyl1~cjUQ8RzBx1Q4*AnRZsI(s(lh2m)p9y&4*kk*#}=*w>W*)Agd4RY$WBY& z9QgJShzG?p>3(FU>>W=2k#a;MHgtdS#2H=8Wwqtf=d2tEKqkZS!}ql7n`C8{q%VCV zIxYb6ZSs`&`T+yLxR((Y2CLzZ4fYEiDqPraZ|0vxc`}I8gS)CoJHI(<$Fd>>Gm%;0 zC`>u7dT9dIK;IaT38@5*j`b(<(ed=I0YI2KE|#%ledcIKQBM0X);>tQ+vm;?v~)>i z>VResWAG<~CHf4;ZF{-mdXOt-3=|RMu3N?!>_52|Dq>z2%rf#W0x}-j!eM~j)POY` zA6&FhNiM(8^ALmMPc^Ya7wnKSpd-HM;yM*)D)OFA)Vgv0cT=i6{u9mZb|H6Vz+u8$ zEV&BPpY;YV!)WyEU+r5;TZ#25%yP4<9(2S{)Zf}x@_(Tc9rs$YWACK|eOm^m*t++N zA}9PB!f1&M{_ex~_=;%sor2^f-JI=TDrAs-Gu|!`Qy9ZI(Y2)IPR2rNYkDK!fRN30 z|FAX5dnUU5IW^g(7^V+*|7hSafg*3vmo?!Uq|4g-$D%7M!vBtmbg@4~z904kn7yy& z4?i=hYfSOY%6?Zb4Bw9^+Jn#g>K*~C2T=O+=?&iezIe@bLhgqr+VdC+{vh%U2|#oQ zLhosR{pbM@hZ!0LINps?$nnwuz{3gB2wb#WBH%N}MID6_be~=KQE8-U=|lNmn9XTf zJ^tyQhkQ`%gB1Mux*2Phh{Q7ve@>~@{uzZXLVtGD#SE0wj{*~0xsSDyv<%?1!}mS2 z>R9h5#$7YvEqcb#eg?PBwF#&-3@IU!Zp&FTFvOHx?ISJ^J1l=a*DMMnkrNGTb6P58T0w}u6K%z0YeJ)dm)vVI+*4|hS>{Q z$53&Q;G;X?#u-{Q$7tO|MuRRx6ch{cR6cGCS&kfS+(R~1AYZZIS3SROYAd%c#vxjl zJQi9|@+*dJ^mHRSVO>GNEv}V~{o`=C#@cC~P6vA}ZIoiogeXt#1iZ6`I`(1C#Ib5A zWwxfBl8Y>x9K2E6=B?e?n>)W6S;vOxug0~m*jlPfHXXI4GBFZ z&!j%nwx&bKkCzk zq^h!CIiJ3L>f8ZbLgTdTF0Wu1<*HHUcJ7{xhE@W`hUa87!!lbN*$^8?=X~m{l$VwJV{ zdhPj^(&9D!5)Z_M6#^#Yb1fEABsnxUgZy8b;#b5CzrPpFukrzOFRV^Ut*6X6Lk4|0 z^$kYK*rdVKH32{JdeOOBeS5e1!}9~tf>d88<4WBccpZKh4!935{@Yn>ZAuYGYfkjc zG@qq!k+1*}ZIwkh{m6sQ%1t9V;O)LqCgCbq_Q9D&zpnN?)hQ#!TDqW(+!+n!Y~gewAXmt;B0BaGg$7rz_fMJE zhO>zZQe@pCo0lHsw~$uJD8RNWKGlzBf4$7N|i@fglN$`Qik`oq9sl;^|2dhq4PjS(L?9ftBY8!EByoHlmT| zfq2XCwoCMD6-dEy%ll5%S>SxP+lN|~^}Kj_%A^Q zDsTS#%EfiKM+o;m-e7wb%ce;+;%;>YGs8ikk5bRI=4n&-vX@;tZ@!f*-8YY zwX*v0r#pBvcMYVA#J-jwoim+2WrZR%t7ChuvO&CxG<+#2{vrOJ+!pp8B&tbYM$DaX zmW8wVOk~b`BwACt0?EGRHS;IkU;%_z{uqJkI8X*%pn{!O=BL?M&u^X-Z07MDk~8

$1iB- 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

yX>ZPX#vL9fVQ8INT2Pcf-HA=LW^;!5ln+c~! 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%0A;q1}4n`DY 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�IRDCS_CTm2|gqD{m55afkG!s}pGA2@Ap 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 KFYrIw*!&+Q;tWs# literal 0 HcmV?d00001 From 1e898367a5b460bf4d06ae7ad84b461b4fe9576f Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sun, 1 Nov 2026 12:23:08 +0800 Subject: [PATCH 05/27] fix(fonts): render unavailable macOS user fonts through binary IPC (#643) On macOS versions where WKWebView refuses user-installed fonts by family name (fonts in ~/Library/Fonts or /Library/Fonts), the editor, terminal, Markdown and UI fell back to the default font and Nerd Font icons showed as boxes; only a webfont loaded from the file's bytes renders. Root cause: the shared font resolver only ever referred to fonts by local family name, so every consumer depended on the WebView resolving user fonts by name. A URL-based webfont is blocked by the existing font-src policy, which stays unchanged. Fix: the shared resolver probes whether a family renders by name (on a document-attached canvas; a detached canvas falls back even when the font works) and only when it does not, fetches the enumerated user font files over a raw-bytes IPC (user fonts only, looked up by family, no paths accepted) and registers them with the FontFace API under a stable alias. Only the faces nearest regular/bold and their italics are loaded, once per family. Covers editor and editor fallback, diff/merge views, terminal font, fallback and built-in Nerd fallback (re-measured after loading), embedded terminal, settings preview, custom UI font, Markdown and Mermaid. A debug-only environment switch reproduces the WebView restriction for testing. Verified on macOS 26 with the restriction simulated (icons boxes before, correct after) and without it (no font bytes transferred, no regression). Not run on the reporter's macOS version, Windows or Linux; other platforms keep the previous behaviour. Fixes #592 --- Cargo.lock | 2 + crates/ide-fonts/Cargo.toml | 3 +- crates/ide-fonts/src/lib.rs | 243 ++++++++++++++++++++++- crates/ide-host/src/trust.rs | 1 + src-tauri/Cargo.toml | 2 + src-tauri/src/commands/fonts.rs | 10 + src-tauri/src/lib.rs | 7 +- src-tauri/src/windows.rs | 37 +++- src/features/terminal/theme.ts | 9 +- src/features/viewers/markdown/mermaid.ts | 6 +- src/platform/candidateFonts.test.ts | 18 ++ src/platform/candidateFonts.ts | 14 +- src/platform/fonts.test.ts | 130 +++++++++++- src/platform/fonts.ts | 84 +++++++- 14 files changed, 544 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8d3593ee0..8c1ab6344 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4188,6 +4188,7 @@ dependencies = [ "objc2-core-foundation", "objc2-core-text", "serde", + "serde_json", "specta", "windows", ] @@ -6184,6 +6185,7 @@ dependencies = [ "objc2 0.6.5", "objc2-app-kit 0.3.2", "objc2-foundation 0.3.2", + "objc2-web-kit 0.3.2", "parking_lot", "serde", "serde_json", diff --git a/crates/ide-fonts/Cargo.toml b/crates/ide-fonts/Cargo.toml index 5c6695271..52b849b84 100644 --- a/crates/ide-fonts/Cargo.toml +++ b/crates/ide-fonts/Cargo.toml @@ -7,10 +7,11 @@ license.workspace = true [dependencies] serde.workspace = true +serde_json.workspace = true specta.workspace = true [target.'cfg(target_os = "macos")'.dependencies] -objc2-core-foundation = { version = "0.3", default-features = false, features = ["std", "CFArray", "CFDictionary", "CFNumber", "CFString"] } +objc2-core-foundation = { version = "0.3", default-features = false, features = ["std", "CFArray", "CFDictionary", "CFNumber", "CFString", "CFURL"] } objc2-core-text = { version = "0.3", default-features = false, features = ["std", "CTFontCollection", "CTFontDescriptor", "CTFontTraits"] } [target.'cfg(windows)'.dependencies] diff --git a/crates/ide-fonts/src/lib.rs b/crates/ide-fonts/src/lib.rs index 7274544e5..341febdea 100644 --- a/crates/ide-fonts/src/lib.rs +++ b/crates/ide-fonts/src/lib.rs @@ -1,8 +1,7 @@ //! The font families installed on this machine, for the font pickers in //! Settings (editor, typography fallback, terminal, UI font). //! -//! Each platform asks the font system the WebView itself resolves CSS -//! `font-family` names against, so every listed name renders: CoreText on +//! Each platform asks the native font system for installed families: CoreText on //! macOS, DirectWrite on Windows, fontconfig (`fc-list`) on Linux and the BSDs. //! The list is read on first use and cached until explicitly refreshed; the //! query can take a few hundred milliseconds, so callers run it off the UI and @@ -84,14 +83,164 @@ pub fn parse_fc_list(output: &str) -> Vec<(String, bool)> { .collect() } +/// Binary font bundle: little-endian u32 JSON-header length, a face metadata +/// array, then raw font bytes. Paths never cross IPC; only CoreText-enumerated +/// files under user font directories can be read, selected by family name. +/// Includes only the nearest regular/bold faces and their optional italics. +pub fn user_font_data(family: &str) -> std::io::Result> { + #[cfg(target_os = "macos")] + { + let entries = imp::user_faces(); + bundle_family(family, &entries) + } + #[cfg(not(target_os = "macos"))] + { + let _ = family; + Err(std::io::Error::new(std::io::ErrorKind::Unsupported, "User font loading is macOS only")) + } +} + +#[cfg(any(target_os = "macos", test))] +#[derive(Debug)] +struct UserFace { + family: String, + path: std::path::PathBuf, + weight: u16, + italic: bool, +} + +#[cfg(any(target_os = "macos", test))] +fn user_font_path(path: &std::path::Path, roots: &[std::path::PathBuf]) -> Option { + let path = path.canonicalize().ok()?; + roots.iter().any(|root| path.starts_with(root)).then_some(path) +} + +#[cfg(any(target_os = "macos", test))] +fn family_faces<'a>(family: &str, entries: &'a [UserFace]) -> Vec<&'a UserFace> { + let mut selected: Vec<&UserFace> = Vec::new(); + for italic in [false, true] { + for weight in [400u16, 700] { + let closest = entries + .iter() + .filter(|e| e.family.eq_ignore_ascii_case(family.trim()) && e.italic == italic) + .min_by_key(|e| (e.weight.abs_diff(weight), e.weight, &e.path)); + if let Some(face) = closest + && !selected.iter().any(|f| std::ptr::eq(*f, face)) + { + selected.push(face); + } + } + } + selected +} + +#[cfg(any(target_os = "macos", test))] +fn bundle_family(family: &str, entries: &[UserFace]) -> std::io::Result> { + #[derive(Serialize)] + struct Face { + weight: u16, + style: &'static str, + offset: usize, + length: usize, + } + let mut faces = Vec::new(); + let mut data = Vec::new(); + let mut files = BTreeMap::new(); + // Bound large CJK families to regular/bold and their nearest italic faces. + for entry in family_faces(family, entries) { + // Reject a file replaced by a symlink after enumeration. + if entry.path.canonicalize()? != entry.path { + return Err(std::io::Error::new(std::io::ErrorKind::PermissionDenied, "Font file changed")); + } + let (offset, length) = if let Some(range) = files.get(&entry.path) { + *range + } else { + let bytes = std::fs::read(&entry.path)?; + let range = (data.len(), bytes.len()); + data.extend(bytes); + files.insert(entry.path.clone(), range); + range + }; + faces.push(Face { + weight: entry.weight, + style: if entry.italic { "italic" } else { "normal" }, + offset, + length, + }); + } + if faces.is_empty() { + return Err(std::io::Error::new(std::io::ErrorKind::NotFound, "No installed user font family")); + } + let header = serde_json::to_vec(&faces)?; + let mut out = (header.len() as u32).to_le_bytes().to_vec(); + out.extend(header); + out.extend(data); + Ok(out) +} + #[cfg(target_os = "macos")] mod imp { - use objc2_core_foundation::{CFArray, CFDictionary, CFNumber, CFString, CFType}; + use objc2_core_foundation::{CFArray, CFDictionary, CFNumber, CFString, CFType, CFURL}; use objc2_core_text::{ CTFontCollection, CTFontDescriptor, CTFontSymbolicTraits, kCTFontFamilyNameAttribute, kCTFontSymbolicTrait, - kCTFontTraitsAttribute, + kCTFontTraitsAttribute, kCTFontURLAttribute, kCTFontWeightTrait, }; + pub(crate) fn user_faces() -> Vec { + let mut roots = vec![std::path::PathBuf::from("/Library/Fonts")]; + if let Some(home) = std::env::var_os("HOME") { + roots.push(std::path::PathBuf::from(home).join("Library/Fonts")); + } + let roots: Vec<_> = roots.into_iter().filter_map(|r| r.canonicalize().ok()).collect(); + // SAFETY: CoreText descriptors carry documented CFString, CFURL and trait dictionary values. + unsafe { + let collection = CTFontCollection::from_available_fonts(None); + let Some(descriptors) = collection.matching_font_descriptors() else { return Vec::new() }; + let mut seen = std::collections::BTreeSet::new(); + descriptors + .cast_unchecked::() + .iter() + .filter_map(|d| { + let family = d.attribute(kCTFontFamilyNameAttribute)?.downcast::().ok()?.to_string(); + let path = d.attribute(kCTFontURLAttribute)?.downcast::().ok()?.to_file_path()?; + let path = super::user_font_path(&path, &roots)?; + let traits = d.attribute(kCTFontTraitsAttribute)?.downcast::().ok()?; + let traits = traits.cast_unchecked::(); + let symbolic = traits + .get(kCTFontSymbolicTrait) + .and_then(|n| n.downcast::().ok()) + .and_then(|n| n.as_i64()) + .unwrap_or(0) as u32; + let weight = traits + .get(kCTFontWeightTrait) + .and_then(|n| n.downcast::().ok()) + .and_then(|n| n.as_f64()) + .unwrap_or(0.0); + // CoreText's normalized weight values corresponding to CSS's nine standard weights. + let weight = [ + (-0.8, 100), + (-0.6, 200), + (-0.4, 300), + (0.0, 400), + (0.23, 500), + (0.3, 600), + (0.4, 700), + (0.56, 800), + (0.62, 900), + ] + .into_iter() + .min_by(|(a, _), (b, _)| (weight - a).abs().total_cmp(&(weight - b).abs()))? + .1; + let italic = symbolic & CTFontSymbolicTraits::TraitItalic.0 != 0; + if !seen.insert((family.clone(), path.clone(), weight, italic)) { + return None; + } + Some(super::UserFace { family, path, weight, italic }) + }) + .collect() + } + } + /// Every face CoreText makes available to this process, as (family, fixed pitch). pub(crate) fn list(_refresh: bool) -> Vec<(String, bool)> { // SAFETY: CoreText's documented types: the matching descriptors array @@ -210,6 +359,92 @@ mod tests { use super::*; use std::sync::atomic::{AtomicUsize, Ordering}; + #[test] + fn selects_only_regular_bold_and_matching_italics_from_dense_families() { + let entries: Vec<_> = [false, true] + .into_iter() + .flat_map(|italic| { + (100..=900).step_by(100).map(move |weight| UserFace { + family: "CJK".into(), + path: format!("{weight}-{italic}.ttf").into(), + weight, + italic, + }) + }) + .collect(); + let selected = family_faces(" cjk ", &entries); + assert_eq!( + selected.iter().map(|f| (f.weight, f.italic)).collect::>(), + [(400, false), (700, false), (400, true), (700, true),] + ); + assert!(family_faces("unknown", &entries).is_empty()); + } + + #[test] + fn selects_nearest_available_weights_once_with_optional_italics() { + let entries: Vec<_> = [(300, false), (500, false), (800, false), (500, true)] + .into_iter() + .map(|(weight, italic)| UserFace { + family: "Sparse".into(), + path: format!("{weight}-{italic}.ttf").into(), + weight, + italic, + }) + .collect(); + let selected = family_faces("Sparse", &entries); + assert_eq!( + selected.iter().map(|f| (f.weight, f.italic)).collect::>(), + [(300, false), (800, false), (500, true),] + ); + assert_eq!(family_faces("Sparse", &entries[..1]).len(), 1); + } + + #[test] + fn bundle_only_reads_enumerated_family_faces() { + let root = std::env::current_dir().unwrap().join(format!("../../.font-bundle-test-{}", std::process::id())); + std::fs::create_dir_all(&root).unwrap(); + let root = root.canonicalize().unwrap(); + let regular = root.join("regular.ttf"); + let bold = root.join("bold.ttf"); + std::fs::write(®ular, [1, 2, 3]).unwrap(); + std::fs::write(&bold, [4, 5]).unwrap(); + let entries = [ + UserFace { family: "Test Nerd Font".into(), path: regular.clone(), weight: 400, italic: false }, + UserFace { family: "Test Nerd Font".into(), path: bold, weight: 700, italic: false }, + // A non-selected face is never opened, even if its file has disappeared. + UserFace { family: "Test Nerd Font".into(), path: root.join("thin.ttf"), weight: 100, italic: false }, + ]; + let result = bundle_family("test nerd font", &entries).unwrap(); + let len = u32::from_le_bytes(result[..4].try_into().unwrap()) as usize; + let faces: serde_json::Value = serde_json::from_slice(&result[4..4 + len]).unwrap(); + assert_eq!(faces[0]["weight"], 400); + assert_eq!(faces[1]["weight"], 700); + assert_eq!(faces.as_array().unwrap().len(), 2); + assert_eq!(&result[4 + len..], &[1, 2, 3, 4, 5]); + // Existing files are not inputs: neither paths nor unenumerated families grant access. + assert!(bundle_family(regular.to_str().unwrap(), &entries).is_err()); + assert!(bundle_family("Unenumerated", &entries).is_err()); + assert!(user_font_path(®ular, &[]).is_none()); + assert!(user_font_path(®ular, std::slice::from_ref(&root)).is_some()); + // Multiple selected descriptors in a collection still transfer the file only once. + let shared = [ + UserFace { family: "Collection".into(), path: regular.clone(), weight: 400, italic: false }, + UserFace { family: "Collection".into(), path: regular, weight: 700, italic: false }, + ]; + let result = bundle_family("Collection", &shared).unwrap(); + let len = u32::from_le_bytes(result[..4].try_into().unwrap()) as usize; + let faces: serde_json::Value = serde_json::from_slice(&result[4..4 + len]).unwrap(); + assert_eq!(faces[0]["offset"], faces[1]["offset"]); + assert_eq!(&result[4 + len..], &[1, 2, 3]); + #[cfg(unix)] + { + let link = root.join("outside.ttf"); + std::os::unix::fs::symlink(std::env::current_exe().unwrap(), &link).unwrap(); + assert!(user_font_path(&link, std::slice::from_ref(&root)).is_none()); + } + std::fs::remove_dir_all(root).unwrap(); + } + fn fam(name: &str, monospaced: bool) -> FontFamily { FontFamily { name: name.into(), monospaced } } diff --git a/crates/ide-host/src/trust.rs b/crates/ide-host/src/trust.rs index 9e1bfb826..2f883b7b9 100644 --- a/crates/ide-host/src/trust.rs +++ b/crates/ide-host/src/trust.rs @@ -235,6 +235,7 @@ pub fn restricted_command_allowed(cmd: &str) -> bool { | "agent_registry_remove" | "coverage_import" | "system_font_families" + | "user_font_data" | "plugin_subscribe" | "plugin_list" | "plugin_set_active_file" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index fc5613669..131f729a5 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -75,3 +75,5 @@ block2 = "0.6" objc2 = "0.6" objc2-app-kit = { version = "0.3", default-features = false, features = ["std", "NSApplication", "NSButton", "NSResponder", "NSView", "NSWindow"] } objc2-foundation = { version = "0.3", default-features = false, features = ["std", "block2", "NSNotification", "NSOperation", "NSString"] } +# Used only by the debug font-restriction override; Cargo dependency cfg cannot test debug_assertions. +objc2-web-kit = { version = "0.3", default-features = false, features = ["std", "WKWebViewConfiguration", "WKPreferences"] } diff --git a/src-tauri/src/commands/fonts.rs b/src-tauri/src/commands/fonts.rs index 705da8e2d..8a27a0faa 100644 --- a/src-tauri/src/commands/fonts.rs +++ b/src-tauri/src/commands/fonts.rs @@ -13,3 +13,13 @@ pub async fn system_font_families(refresh: bool) -> IdeResult> { .await .map_err(|e| IdeError::internal(e.to_string())) } + +/// Raw font bundle, selected by family, never by a frontend-supplied path. +#[tauri::command] +pub async fn user_font_data(family: String) -> IdeResult { + tauri::async_runtime::spawn_blocking(move || ide_fonts::user_font_data(&family)) + .await + .map_err(|e| IdeError::internal(e.to_string()))? + .map(tauri::ipc::Response::new) + .map_err(|e| IdeError::invalid(e.to_string())) +} diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 2af828bb3..4cfeb1ff0 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -87,7 +87,12 @@ pub fn run() { // Paths macOS asked to open (Finder's Open With, the Dock) before setup ran: the first window takes them. let early_opens: Arc>>> = Arc::default(); let setup_opens = early_opens.clone(); - let invoke = Arc::new(builder.invoke_handler()); + let typed_invoke = builder.invoke_handler(); + // Raw Response is not a JSON/Specta type; keep the binary command out of generated bindings. + let raw_invoke: fn(tauri::ipc::Invoke) -> bool = tauri::generate_handler![commands::fonts::user_font_data]; + let invoke = Arc::new(move |request: tauri::ipc::Invoke| { + if request.message.command() == "user_font_data" { raw_invoke(request) } else { typed_invoke(request) } + }); app.invoke_handler(move |request| { let webview = request.message.webview_ref(); if let Some(state) = webview.try_state::() { diff --git a/src-tauri/src/windows.rs b/src-tauri/src/windows.rs index ebeb09f32..30a13ed84 100644 --- a/src-tauri/src/windows.rs +++ b/src-tauri/src/windows.rs @@ -294,7 +294,7 @@ fn build_project_window(app: &AppHandle, mut config: WindowConfig) -> IdeResult< config.background_color = Some(frame_color(a, false)); } let window = WebviewWindowBuilder::from_config(app, &config) - .and_then(|b| b.build()) + .and_then(|b| dev_font_preferences(b).build()) .map_err(|e| IdeError::internal(format!("cannot create window: {e}")))?; apply_zoom(app, &window); #[cfg(target_os = "macos")] @@ -760,7 +760,7 @@ pub fn open_settings_window( #[cfg(not(target_os = "macos"))] let builder = builder.and_then(|b| b.parent(&parent)); let window = builder - .and_then(|b| b.build()) + .and_then(|b| dev_font_preferences(b).build()) .map_err(|e| IdeError::internal(format!("cannot create settings window: {e}")))?; apply_zoom(app, &window); #[cfg(target_os = "macos")] @@ -874,6 +874,39 @@ fn centered(px: f64, py: f64, pw: f64, ph: f64, w: f64, h: f64) -> (f64, f64) { (px + (pw - w) / 2.0, py + ((ph - h) / 2.0).max(0.0)) } +/// Reproduce WKWebView's user-font restriction before WKWebView creation. The +/// private selector and environment override are absent from release builds. +#[cfg(all(debug_assertions, target_os = "macos"))] +fn dev_font_preferences( + builder: WebviewWindowBuilder<'_, tauri::Wry, AppHandle>, +) -> WebviewWindowBuilder<'_, tauri::Wry, AppHandle> { + if std::env::var("OPENIDEA_DEV_DISALLOW_USER_FONTS").as_deref() == Ok("1") { + use objc2::{MainThreadMarker, msg_send, sel}; + use objc2_foundation::NSObjectProtocol; + let config = unsafe { + objc2_web_kit::WKWebViewConfiguration::new(MainThreadMarker::new().expect("window creation on main thread")) + }; + let preferences = unsafe { config.preferences() }; + if preferences.respondsToSelector(sel!(_setShouldAllowUserInstalledFonts:)) { + unsafe { + let _: () = msg_send![&preferences, _setShouldAllowUserInstalledFonts: false]; + } + let allowed: bool = unsafe { msg_send![&preferences, _shouldAllowUserInstalledFonts] }; + tracing::info!(allowed, "Development user-installed fonts override"); + return builder.with_webview_configuration(config); + } + tracing::warn!("WKPreferences user-font development selector unavailable"); + } + builder +} + +#[cfg(not(all(debug_assertions, target_os = "macos")))] +fn dev_font_preferences( + builder: WebviewWindowBuilder<'_, tauri::Wry, AppHandle>, +) -> WebviewWindowBuilder<'_, tauri::Wry, AppHandle> { + builder +} + #[cfg(test)] mod tests { use super::*; diff --git a/src/features/terminal/theme.ts b/src/features/terminal/theme.ts index 5996a12dc..5eeb02b9b 100644 --- a/src/features/terminal/theme.ts +++ b/src/features/terminal/theme.ts @@ -6,7 +6,7 @@ */ import type { ITheme, Terminal } from "@xterm/xterm"; import { fontWeightOf } from "@/platform/editorSettings"; -import { BUNDLED_MONO_FAMILY, fontsLoaded, monoFontFamily, monoStack } from "@/platform/fonts"; +import { BUNDLED_MONO_FAMILY, familyFaces, fontsLoaded, monoFontFamily, monoStack } from "@/platform/fonts"; import { parseColor, type Rgba } from "@/platform/cssColor"; export { parseColor, type Rgba }; @@ -152,9 +152,7 @@ const NERD_FONT_FALLBACKS = [ "FiraCode Nerd Font", "Hasklug Nerd Font", "CaskaydiaCove Nerd Font", -] - .map((f) => `"${f}"`) - .join(", "); +]; export interface TerminalFontSettings { useEditorFont: boolean; @@ -189,7 +187,8 @@ export interface TerminalFont { * common installs before the generic family so per-glyph fallback finds them. */ function withNerdFonts(family: string): string { - return `${family.replace(/,\s*monospace\s*$/i, "")}, ${NERD_FONT_FALLBACKS}, monospace`; + const fallbacks = NERD_FONT_FALLBACKS.flatMap(familyFaces).join(", "); + return `${family.replace(/,\s*monospace\s*$/i, "")}, ${fallbacks}, monospace`; } function cssNumber(name: string): number { diff --git a/src/features/viewers/markdown/mermaid.ts b/src/features/viewers/markdown/mermaid.ts index 903d190ca..cce3cca23 100644 --- a/src/features/viewers/markdown/mermaid.ts +++ b/src/features/viewers/markdown/mermaid.ts @@ -3,6 +3,7 @@ * `[data-mermaid]` placeholder holding the source in `pre > code`; this module * turns placeholders into SVG. The library is imported on first use only. */ +import { fontsLoaded } from "@/platform/fonts"; import type { Mermaid } from "mermaid"; import { resolveTokenColor, toRgb } from "@/platform/cssColor"; import { attachPanZoom } from "../panZoom"; @@ -32,7 +33,9 @@ function loadMermaid(): Promise { export function themeKey(): string { const root = document.documentElement; const { theme = "", contrast = "", colorTheme = "", pluginTheme = "" } = root.dataset; - return `${theme}|${contrast}|${colorTheme}|${pluginTheme}|${root.style.getPropertyValue("--accent")}`; + const accent = root.style.getPropertyValue("--accent"); + const font = getComputedStyle(root).getPropertyValue("--font-ui"); + return `${theme}|${contrast}|${colorTheme}|${pluginTheme}|${accent}|${font}`; } /** Calls `cb` when the theme attributes (a plugin theme's included) or the accent on the root change. */ @@ -102,6 +105,7 @@ function removeTemp(id: string) { async function renderOne(source: string, key: string): Promise { const mermaid = await loadMermaid(); + await fontsLoaded(getComputedStyle(document.documentElement).getPropertyValue("--font-ui").trim(), 16); configure(mermaid, key); const id = `openidea-mermaid-${++seq}`; try { diff --git a/src/platform/candidateFonts.test.ts b/src/platform/candidateFonts.test.ts index e9ea10c02..a83cb22d5 100644 --- a/src/platform/candidateFonts.test.ts +++ b/src/platform/candidateFonts.test.ts @@ -18,8 +18,26 @@ it("probes the legacy list and classifies measured mono and proportional familie ]); }); it("returns no inferred families when Canvas is absent", () => { + const remove = vi.spyOn(HTMLCanvasElement.prototype, "remove"); vi.spyOn(HTMLCanvasElement.prototype, "getContext").mockReturnValue(null); expect(detectCandidateFonts()).toEqual([]); + expect(remove).toHaveBeenCalledOnce(); +}); +it("detects user-installed candidates with a connected probe and removes it afterwards", () => { + const probes: HTMLCanvasElement[] = []; + vi.spyOn(HTMLCanvasElement.prototype, "getContext").mockImplementation(function (this: HTMLCanvasElement) { + probes.push(this); + const isConnected = () => this.isConnected; + return { + font: "", + measureText(this: { font: string }) { + return { width: isConnected() && this.font.includes('"Fira Code"') ? 120 : 100 }; + }, + } as unknown as CanvasRenderingContext2D; + }); + expect(detectCandidateFonts()).toEqual([{ name: "Fira Code", monospaced: true }]); + expect(probes[0]?.hidden).toBe(true); + expect(probes[0]?.isConnected).toBe(false); }); it("contains failures from Canvas and never claims candidates are installed", () => { vi.spyOn(HTMLCanvasElement.prototype, "getContext").mockImplementation(() => { diff --git a/src/platform/candidateFonts.ts b/src/platform/candidateFonts.ts index e566fc36c..72d9d8970 100644 --- a/src/platform/candidateFonts.ts +++ b/src/platform/candidateFonts.ts @@ -3,7 +3,7 @@ * can miss installed families and are only hints; they say nothing about coverage. */ import type { FontFamily } from "@/bindings"; -import { monoFontFamily } from "./fonts"; +import { createFontProbeCanvas, quoteFontFamily } from "./fonts"; // Keep the former editor's 31 candidates for recovery, not as an installed-font whitelist. const CANDIDATES = [ @@ -41,9 +41,11 @@ const CANDIDATES = [ ]; export function detectCandidateFonts(): FontFamily[] { + let canvas: HTMLCanvasElement | undefined; try { if (typeof document === "undefined") return []; - const ctx = document.createElement("canvas").getContext("2d"); + canvas = createFontProbeCanvas(); + const ctx = canvas.getContext("2d"); if (!ctx) return []; const width = (font: string, text: string) => { ctx.font = `32px ${font}`; @@ -53,13 +55,13 @@ export function detectCandidateFonts(): FontFamily[] { const out: FontFamily[] = []; for (const name of CANDIDATES) { const present = ["monospace", "serif", "sans-serif"].some((base) => { - const measured = width(monoFontFamily(name, "", base), sample); + const measured = width(`${quoteFontFamily(name)}, ${base}`, sample); const baseline = width(base, sample); return Number.isFinite(measured) && Number.isFinite(baseline) && measured !== baseline; }); if (!present) continue; - const narrow = width(monoFontFamily(name, "", "monospace"), "iiiiiiiiii"); - const wide = width(monoFontFamily(name, "", "monospace"), "WWWWWWWWWW"); + const narrow = width(`${quoteFontFamily(name)}, monospace`, "iiiiiiiiii"); + const wide = width(`${quoteFontFamily(name)}, monospace`, "WWWWWWWWWW"); out.push({ name, monospaced: Number.isFinite(narrow) && Number.isFinite(wide) && Math.abs(narrow - wide) < 0.5, @@ -70,5 +72,7 @@ export function detectCandidateFonts(): FontFamily[] { // Canvas can be absent or disabled in browser development / hardened webviews. // Never mark unmeasurable candidates as installed. The service adds bundled faces. return []; + } finally { + canvas?.remove(); } } diff --git a/src/platform/fonts.test.ts b/src/platform/fonts.test.ts index 00f23c6de..f8060c04c 100644 --- a/src/platform/fonts.test.ts +++ b/src/platform/fonts.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it } from "vitest"; +import { afterEach, describe, expect, it, vi } from "vitest"; import { monoFontFamily, quoteFontFamily, uiFontFamily } from "./fonts"; const BASE = "var(--font-mono)"; @@ -43,3 +43,131 @@ describe("uiFontFamily", () => { expect(uiFontFamily(family)).toBe(expected); }); }); + +describe("macOS user font resolver", () => { + afterEach(() => { + vi.unstubAllGlobals(); + vi.restoreAllMocks(); + vi.resetModules(); + }); + + async function resolver(available: boolean | "symbols" | "connected", os = "macos") { + vi.resetModules(); + const invoke = vi.fn(); + vi.doMock("@tauri-apps/api/core", () => ({ isTauri: () => true, invoke })); + vi.doMock("./platformInfo", () => ({ guessOs: () => os })); + const canvases: HTMLCanvasElement[] = []; + vi.spyOn(HTMLCanvasElement.prototype, "getContext").mockImplementation(function (this: HTMLCanvasElement) { + const isConnected = () => this.isConnected; + canvases.push(this); + return { + font: "", + measureText(this: { font: string }, text: string) { + const covered = + available === true || + (available === "symbols" && text.includes("\uF418")) || + (available === "connected" && isConnected()); + return { width: covered && this.font.includes('"') ? 200 : 100 }; + }, + } as unknown as CanvasRenderingContext2D; + }); + const registered: { family: string; descriptors: unknown }[] = []; + vi.stubGlobal( + "FontFace", + class { + constructor( + public family: string, + _bytes: ArrayBuffer, + public descriptors: unknown, + ) { + registered.push(this); + } + load() { + return Promise.resolve(this); + } + }, + ); + const load = vi.fn().mockResolvedValue([]); + Object.defineProperty(document, "fonts", { configurable: true, value: { add: vi.fn(), delete: vi.fn(), load } }); + const header = new TextEncoder().encode( + JSON.stringify([ + { weight: 400, style: "normal", offset: 0, length: 2 }, + { weight: 700, style: "normal", offset: 2, length: 2 }, + { weight: 400, style: "italic", offset: 4, length: 2 }, + ]), + ); + const bundle = new Uint8Array(4 + header.length + 6); + new DataView(bundle.buffer).setUint32(0, header.length, true); + bundle.set(header, 4); + invoke.mockResolvedValue(bundle.buffer); + return { fonts: await import("./fonts"), invoke, registered, load, canvases }; + } + + it("loads an unavailable family once across primary, fallback and UI, including regular/bold/italic", async () => { + const { fonts, invoke, registered, load } = await resolver(false); + const family = fonts.monoFontFamily("JetBrainsMono Nerd Font Mono"); + expect(family).toContain('"OpenIDEA User Font 0", "JetBrainsMono Nerd Font Mono"'); + fonts.uiFontFamily("jetbrainsmono nerd font mono"); + fonts.monoFontFamily("Inter", "JetBrainsMono Nerd Font Mono"); + await fonts.fontsLoaded(family, 14); + expect(invoke).toHaveBeenCalledExactlyOnceWith("user_font_data", { family: "JetBrainsMono Nerd Font Mono" }); + expect(registered.map((f) => f.descriptors)).toEqual([ + { weight: "400", style: "normal" }, + { weight: "700", style: "normal" }, + { weight: "400", style: "italic" }, + ]); + expect(load).toHaveBeenCalledTimes(2); + }); + + it("uses available local/system families without reading font data", async () => { + const { fonts, invoke } = await resolver(true); + expect(fonts.uiFontFamily("Menlo")).toBe('"Menlo", system-ui, sans-serif'); + fonts.monoFontFamily("Maple Mono NF CN"); + expect(invoke).not.toHaveBeenCalled(); + }); + + it("detects user fonts that WKWebView exposes only to connected canvases without loading bytes", async () => { + const { fonts, invoke, canvases } = await resolver("connected"); + expect(fonts.fontAvailable("Maple Mono NF CN")).toBe(true); + expect(fonts.familyFaces("Maple Mono NF CN")).toEqual(['"Maple Mono NF CN"']); + expect(fonts.familyFaces("JetBrainsMono Nerd Font Mono")).toEqual(['"JetBrainsMono Nerd Font Mono"']); + expect(invoke).not.toHaveBeenCalled(); + expect(canvases.length).toBeGreaterThan(0); + expect(canvases.every((canvas) => canvas.hidden && !canvas.isConnected)).toBe(true); + }); + + it("removes the probe when a font is unavailable or canvas measurement fails", async () => { + const { fonts, canvases } = await resolver(false); + expect(fonts.fontAvailable("Unavailable")).toBe(false); + expect(canvases.every((canvas) => !canvas.isConnected)).toBe(true); + const remove = vi.spyOn(HTMLCanvasElement.prototype, "remove"); + vi.spyOn(HTMLCanvasElement.prototype, "getContext").mockImplementation(() => { + throw new Error("Canvas unavailable"); + }); + expect(fonts.fontAvailable("Maple Mono NF CN")).toBe(true); + expect(remove).toHaveBeenCalledOnce(); + }); + + it("does not read a locally available symbol-only Nerd fallback", async () => { + const { fonts, invoke } = await resolver("symbols"); + expect(fonts.familyFaces("Symbols Nerd Font Mono")).toEqual(['"Symbols Nerd Font Mono"']); + expect(invoke).not.toHaveBeenCalled(); + }); + + it("never reads bundled webfonts even before their CSS faces load", async () => { + const { fonts, invoke } = await resolver(false); + fonts.monoFontFamily("Inter"); + fonts.monoFontFamily("JetBrains Mono"); + fonts.uiFontFamily("Inter Variable"); + fonts.monoFontFamily("JetBrains Mono Variable"); + expect(invoke).not.toHaveBeenCalled(); + }); + + it("does not read bundled faces or alter other platforms", async () => { + const { fonts, invoke } = await resolver(false, "windows"); + fonts.monoFontFamily("Inter"); + fonts.monoFontFamily("JetBrains Mono"); + expect(fonts.uiFontFamily("User Font")).toBe('"User Font", system-ui, sans-serif'); + expect(invoke).not.toHaveBeenCalled(); + }); +}); diff --git a/src/platform/fonts.ts b/src/platform/fonts.ts index dc0b7cd74..161a98739 100644 --- a/src/platform/fonts.ts +++ b/src/platform/fonts.ts @@ -1,3 +1,6 @@ +import { invoke, isTauri } from "@tauri-apps/api/core"; +import { guessOs } from "./platformInfo"; + /** * Monospace font-family lists shared by every consumer of the editor / terminal * font. "JetBrains Mono" is the bundled default, but the bundle registers it as @@ -10,6 +13,8 @@ export const BUNDLED_MONO_FAMILY = "JetBrains Mono"; export const BUNDLED_UI_FAMILY = "Inter"; const BUNDLED_FACES: ReadonlyMap = new Map([ [BUNDLED_MONO_FAMILY.toLowerCase(), ['"JetBrains Mono Variable"', '"JetBrains Mono"']], + ["jetbrains mono variable", ['"JetBrains Mono Variable"']], + ["inter variable", ['"Inter Variable"']], [BUNDLED_UI_FAMILY.toLowerCase(), ['"Inter Variable"', '"Inter"']], ]); const MONO_STACK_FALLBACK = '"JetBrains Mono Variable", "JetBrains Mono", ui-monospace, Menlo, monospace'; @@ -22,10 +27,83 @@ export const quoteFontFamily = (family: string) => // Preserve compatibility with previously saved names wrapped in CSS quotes. const familyName = (family: string) => family.trim().replace(/^"(.*)"$/, "$1"); +// Per webview: the CSS alias stays stable while its faces load; DOM consumers +// reflow automatically and canvas consumers await the same promise below. +const userFonts = new Map }>(); + +/** WKWebView needs a connected canvas to resolve user fonts. Remove it in finally after probing. */ +export function createFontProbeCanvas(): HTMLCanvasElement { + const canvas = document.createElement("canvas"); + canvas.hidden = true; + (document.body ?? document.documentElement).append(canvas); + return canvas; +} + +/** A pure local-name probe; FontFaceSet.check also returns true for unknown families. */ +export function fontAvailable(name: string): boolean { + let canvas: HTMLCanvasElement | undefined; + try { + canvas = createFontProbeCanvas(); + const ctx = canvas.getContext("2d"); + if (!ctx) return true; + // Symbol-only Nerd fonts and CJK faces may have no Latin glyphs. + return ["mmmmmmmmmmlli1WQ@", "\uF418\uE725\u{F0001}", "汉字かな한글"].some((sample) => + ["monospace", "serif", "sans-serif"].some((base) => { + ctx.font = `32px ${base}`; + const baseline = ctx.measureText(sample).width; + ctx.font = `32px ${quoteFontFamily(name)}, ${base}`; + const width = ctx.measureText(sample).width; + return Number.isFinite(width) && Number.isFinite(baseline) && width !== baseline; + }), + ); + } catch { + return true; + } finally { + canvas?.remove(); + } +} + +async function loadUserFont(name: string, alias: string): Promise { + const buffer = await invoke("user_font_data", { family: name }); + const headerLength = new DataView(buffer).getUint32(0, true); + const start = 4 + headerLength; + const faces: { weight: number; style: string; offset: number; length: number }[] = JSON.parse( + new TextDecoder().decode(buffer.slice(4, start)), + ); + await Promise.all( + faces.map(async ({ weight, style, offset, length }) => { + const face = new FontFace(alias, buffer.slice(start + offset, start + offset + length), { + weight: String(weight), + style, + }); + document.fonts.add(face); + try { + await face.load(); + } catch { + document.fonts.delete(face); + } + }), + ); +} + /** One resolver for primary, fallback and UI families, matching the bundled CSS registrations. */ -function familyFaces(family: string): readonly string[] { +export function familyFaces(family: string): readonly string[] { const name = familyName(family); - return BUNDLED_FACES.get(name.toLowerCase()) ?? [quoteFontFamily(name)]; + const bundled = BUNDLED_FACES.get(name.toLowerCase()); + if (bundled) return bundled; + if (!name || !isTauri() || guessOs() !== "macos" || typeof FontFace === "undefined") return [quoteFontFamily(name)]; + const key = name.toLowerCase(); + let entry = userFonts.get(key); + if (!entry) { + if (fontAvailable(name)) return [quoteFontFamily(name)]; + const alias = `OpenIDEA User Font ${userFonts.size}`; + const loaded = loadUserFont(name, alias).catch(() => { + /* retain local-name and bundled fallbacks */ + }); + entry = { alias, loaded }; + userFonts.set(key, entry); + } + return [quoteFontFamily(entry.alias), quoteFontFamily(name)]; } /** The `--font-mono` stack, resolved (canvas / xterm can't use `var()`). */ @@ -53,6 +131,8 @@ export function monoFontFamily(family: string | undefined, fallback = "", base = export async function fontsLoaded(family: string, size: number): Promise { const fonts = typeof document !== "undefined" ? document.fonts : undefined; if (!fonts?.load) return; + const pending = [...userFonts.values()].filter(({ alias }) => family.includes(quoteFontFamily(alias))); + if (pending.length) await Promise.all(pending.map(({ loaded }) => loaded)); try { await Promise.all([fonts.load(`${size}px ${family}`), fonts.load(`bold ${size}px ${family}`)]); } catch { From 21925b7f4b845b3c0c78ec5f2fc1485ee05c8ed4 Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sun, 1 Nov 2026 12:40:03 +0800 Subject: [PATCH 06/27] fix(terminal): activate virtualenvs using the resolved terminal shell (#646) New terminals typed the virtualenv activation command for the wrong shell: on Windows the default terminal is PowerShell, but the activation line was chosen from $COMSPEC (cmd), so PowerShell just echoed "...\activate.bat" and the project interpreter was not activated. Root cause: terminal_activation guessed the shell from $SHELL / $COMSPEC instead of the shell the PTY actually starts. Same class on macOS/Linux when the inherited $SHELL differs from the login shell the terminal uses, and for a blank configured shell. Fix: the host resolves the shell once with the terminal's own resolve_shell and uses it both to start the PTY and to pick the activation command; terminal_activation takes the resolved shell and no longer reads the environment. Tests cover PowerShell/cmd paths, blank settings and a host-level run with an unrelated $SHELL. Verified in the app on macOS (default zsh and configured bash); not run on Windows. Fixes #631 --- crates/ide-host/src/ops/term.rs | 14 +++-- crates/ide-host/tests/terminal_activation.rs | 62 ++++++++++++++++++++ crates/ide-sdk/src/apply.rs | 12 ++-- crates/ide-sdk/src/tests.rs | 36 ++++++++++-- crates/ide-terminal/src/lib.rs | 10 +++- 5 files changed, 113 insertions(+), 21 deletions(-) create mode 100644 crates/ide-host/tests/terminal_activation.rs diff --git a/crates/ide-host/src/ops/term.rs b/crates/ide-host/src/ops/term.rs index 20393ead2..50d8ac8cc 100644 --- a/crates/ide-host/src/ops/term.rs +++ b/crates/ide-host/src/ops/term.rs @@ -16,11 +16,15 @@ pub fn spawn( options.args.clear(); options.env = global.env; } - // Python › "Activate virtualenv": typed into the new shell, like PyCharm. - let activation = - host.project(window).ok().filter(|p| p.is_trusted()).and_then(|p| { - ide_sdk::apply::terminal_activation(&p.root, &p.settings.effective(), options.shell.as_deref()) - }); + let (shell, args) = ide_terminal::resolve_shell(options.shell.as_deref(), &options.args); + options.shell = Some(shell.clone()); + options.args = args; + // Python › "Activate virtualenv": typed into the same shell the PTY starts. + let activation = host + .project(window) + .ok() + .filter(|p| p.is_trusted()) + .and_then(|p| ide_sdk::apply::terminal_activation(&p.root, &p.settings.effective(), &shell)); let info = host.terminals.spawn(options, host.window_sink(window), Box::new(move |chunk| on_output(chunk)))?; if let Some(line) = activation { let _ = host.terminals.write(info.id, &format!(" {line}\r")); diff --git a/crates/ide-host/tests/terminal_activation.rs b/crates/ide-host/tests/terminal_activation.rs new file mode 100644 index 000000000..9561a23eb --- /dev/null +++ b/crates/ide-host/tests/terminal_activation.rs @@ -0,0 +1,62 @@ +//! Own test process: the inherited shell deliberately differs from the login shell. +#![cfg(unix)] + +use ide_core::NullSink; +use ide_host::{Host, HostConfig, ops}; +use std::sync::Arc; +use std::time::{Duration, Instant}; + +#[test] +fn terminal_activation_uses_the_resolved_default_shell() { + // SAFETY: no runtime or worker threads have been started. + unsafe { std::env::set_var("SHELL", "/not-the-terminal/docker") }; + let tmp = tempfile::tempdir().unwrap(); + let root = dunce::canonicalize(tmp.path()).unwrap().join("project"); + let bin = root.join(".venv/bin"); + std::fs::create_dir_all(&bin).unwrap(); + std::fs::write(root.join(".venv/pyvenv.cfg"), "home = /usr/bin\n").unwrap(); + std::fs::write(bin.join("python"), "").unwrap(); + for script in ["activate", "activate.fish", "activate.csh", "activate.nu", "Activate.ps1"] { + std::fs::write(bin.join(script), "echo activated > activation.marker\n").unwrap(); + } + let runtime = tokio::runtime::Builder::new_multi_thread().worker_threads(2).enable_all().build().unwrap(); + runtime.block_on(async { + let host = Arc::new(Host::new(HostConfig { + config_dir: tmp.path().join("config"), + data_dir: tmp.path().join("data"), + languages: Arc::new(ide_language::LanguageRegistry::load(None).unwrap()), + syntax: Arc::default(), + sink_for: Box::new(|_| Arc::new(NullSink)), + owner: |w| w, + runtime: tokio::runtime::Handle::current(), + project_environment: false, + })); + host.trust.decide(&root, true, false).unwrap(); + host.open_project("main", &root).unwrap(); + for shell in [None, Some("".to_owned()), Some(" \t ".to_owned())] { + let terminal = ops::term::spawn( + &host, + "main", + ide_terminal::TerminalOptions { + cwd: root.clone().into(), + shell, + args: vec![], + env: Default::default(), + cols: 80, + rows: 24, + shell_integration: false, + }, + Arc::new(|_| {}), + ) + .unwrap(); + let deadline = Instant::now() + Duration::from_secs(10); + while !std::fs::read_to_string(root.join("activation.marker")).is_ok_and(|s| s.trim() == "activated") { + assert!(Instant::now() < deadline, "default terminal shell must run the activation script"); + tokio::time::sleep(Duration::from_millis(20)).await; + } + host.terminals.kill(terminal.id).unwrap(); + std::fs::remove_file(root.join("activation.marker")).unwrap(); + } + host.shutdown().await; + }); +} diff --git a/crates/ide-sdk/src/apply.rs b/crates/ide-sdk/src/apply.rs index f093c8d4c..a397529c2 100644 --- a/crates/ide-sdk/src/apply.rs +++ b/crates/ide-sdk/src/apply.rs @@ -735,8 +735,8 @@ fn sh_quote(s: &str) -> String { } /// Command typed into a new terminal to activate the project virtualenv -/// (PyCharm's Tools › Terminal › "Activate virtualenv"), for the given shell. -pub fn terminal_activation(root: &Path, s: &Settings, shell: Option<&str>) -> Option { +/// (Tools › Terminal › "Activate virtualenv"). `shell` must be the resolved PTY shell. +pub fn terminal_activation(root: &Path, s: &Settings, shell: &str) -> Option { if !s.languages.python.activate_virtualenv { return None; } @@ -744,12 +744,8 @@ pub fn terminal_activation(root: &Path, s: &Settings, shell: Option<&str>) -> Op if std::env::var_os("VIRTUAL_ENV").is_some_and(|v| Path::new(&v) == venv) { return None; } - let shell = shell - .map(str::to_owned) - .or_else(|| std::env::var("SHELL").ok()) - .or_else(|| std::env::var("COMSPEC").ok()) - .unwrap_or_default(); - let name = Path::new(&shell).file_stem().map(|n| n.to_string_lossy().to_lowercase()).unwrap_or_default(); + let name = shell.rsplit(['/', '\\']).next().unwrap_or(shell); + let name = Path::new(name).file_stem().map(|n| n.to_string_lossy().to_lowercase()).unwrap_or_default(); let script = |file: &str| venv.join(bin_dir()).join(file); let line = match name.as_str() { "fish" => format!("source {}", sh_quote(&script("activate.fish").to_string_lossy())), diff --git a/crates/ide-sdk/src/tests.rs b/crates/ide-sdk/src/tests.rs index 1dcfee226..8ce5a774b 100644 --- a/crates/ide-sdk/src/tests.rs +++ b/crates/ide-sdk/src/tests.rs @@ -319,14 +319,40 @@ fn terminal_activation_for_project_venv() { } let tmp = tempfile::tempdir().unwrap(); let mut s = Settings::default(); - assert_eq!(terminal_activation(tmp.path(), &s, Some("/bin/zsh")), None); + assert_eq!(terminal_activation(tmp.path(), &s, "/bin/zsh"), None); fake_venv(tmp.path(), ".venv"); - let line = terminal_activation(tmp.path(), &s, Some("/bin/zsh")).unwrap(); + let line = terminal_activation(tmp.path(), &s, "/bin/zsh").unwrap(); assert!(line.starts_with("source '") && line.ends_with("/activate'"), "{line}"); - assert_eq!(terminal_activation(tmp.path(), &s, Some("/usr/bin/fish")), None, "no activate.fish"); - assert_eq!(terminal_activation(tmp.path(), &s, Some("docker")), None, "not a shell"); + assert_eq!(terminal_activation(tmp.path(), &s, "/usr/bin/fish"), None, "no activate.fish"); + assert_eq!(terminal_activation(tmp.path(), &s, "docker"), None, "not a shell"); s.languages.python.activate_virtualenv = false; - assert_eq!(terminal_activation(tmp.path(), &s, Some("/bin/zsh")), None); + assert_eq!(terminal_activation(tmp.path(), &s, "/bin/zsh"), None); +} + +#[test] +fn terminal_activation_for_windows_shell_paths() { + let tmp = tempfile::tempdir().unwrap(); + let mut s = Settings::default(); + s.languages.python.interpreter = fake_venv(tmp.path(), ".venv with spaces 'quoted'").to_string_lossy().into_owned(); + let bin = tmp.path().join(".venv with spaces 'quoted'").join(bin_dir()); + for (shell, script, powershell) in [ + (r"C:\Program Files\PowerShell\7\pwsh.exe", "Activate.ps1", true), + (r"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe", "Activate.ps1", true), + (r"C:\Windows\System32\cmd.exe", "activate.bat", false), + ] { + assert_eq!(terminal_activation(tmp.path(), &s, shell), None, "missing {script}"); + let path = bin.join(script); + std::fs::write(&path, "").unwrap(); + let expected = if powershell { + format!("& '{}'", path.to_string_lossy().replace('\'', "''")) + } else { + format!("\"{}\"", path.display()) + }; + assert_eq!(terminal_activation(tmp.path(), &s, shell), Some(expected), "{shell}"); + std::fs::remove_file(path).unwrap(); + } + assert_eq!(terminal_activation(tmp.path(), &s, ""), None); + assert_eq!(terminal_activation(tmp.path(), &s, " "), None); } #[test] diff --git a/crates/ide-terminal/src/lib.rs b/crates/ide-terminal/src/lib.rs index d651b23be..9caadf583 100644 --- a/crates/ide-terminal/src/lib.rs +++ b/crates/ide-terminal/src/lib.rs @@ -497,7 +497,7 @@ pub fn available_shells() -> Vec { /// Picks the shell binary and its arguments. A default (or explicitly chosen but /// argument-less) POSIX shell is started as a login shell, like Terminal.app/IDEA. -fn resolve_shell(shell: Option<&str>, args: &[String]) -> (String, Vec) { +pub fn resolve_shell(shell: Option<&str>, args: &[String]) -> (String, Vec) { let shell = shell.map(str::trim).filter(|s| !s.is_empty()).map(str::to_owned).unwrap_or_else(default_shell); if !args.is_empty() { return (shell, args.to_vec()); @@ -808,8 +808,12 @@ mod tests { assert_eq!((shell.as_str(), args), ("/bin/zsh", vec!["-l".to_owned()])); let (_, args) = resolve_shell(Some("/usr/bin/python3"), &[]); assert!(args.is_empty()); - let (_, args) = resolve_shell(None, &[]); - assert_eq!(args, vec!["-l".to_owned()]); + for configured in [None, Some(""), Some(" \t ")] { + let (shell, args) = resolve_shell(configured, &[]); + assert_eq!(shell, default_shell_path()); + assert_eq!(args, vec!["-l".to_owned()]); + } + assert_eq!(resolve_shell(Some(" /bin/bash "), &["-i".into()]), ("/bin/bash".into(), vec!["-i".into()])); assert_eq!(shell_title("C:\\Program Files\\PowerShell\\7\\pwsh.exe"), "pwsh"); let env = terminal_env(&BTreeMap::from([("TERM".into(), "dumb".into())])); assert_eq!(env["TERM"], "dumb"); From 376501a5fe574936e46775a89432df1aee13affd Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sun, 1 Nov 2026 13:42:28 +0800 Subject: [PATCH 07/27] fix(properties): keep existing Unicode escapes when saving with native-to-ascii (#650) With Transparent native-to-ascii conversion on, pasting or typing existing \uXXXX escapes into a .properties file and saving wrote them back as \u005CuXXXX, so the file on disk changed meaning. Root cause: the shared properties encoder escaped the backslash of any valid ASCII Unicode escape. It now writes ASCII escapes as they are and only converts non-ASCII characters; a literal backslash right before a non-ASCII character is still protected. The same encoder serves every write path, so normal/auto save, find and replace in open and closed files, workspace edits, Local History restore and partial Git stage/commit are all covered. Verified on macOS following the reporter's steps (paste escapes, save, reload externally); Windows and Linux not run. Fixes #519 --- crates/ide-host/tests/properties.rs | 7 ++-- crates/ide-vcs/src/text_encoding.rs | 2 +- crates/ide-vfs/src/encoding.rs | 28 +++++++++++--- crates/ide-workspace/tests/documents.rs | 51 +++++++++++++++++++++++++ 4 files changed, 79 insertions(+), 9 deletions(-) diff --git a/crates/ide-host/tests/properties.rs b/crates/ide-host/tests/properties.rs index 097d92a63..dce783dd4 100644 --- a/crates/ide-host/tests/properties.rs +++ b/crates/ide-host/tests/properties.rs @@ -104,7 +104,7 @@ async fn properties_search_git_and_document_coordinates_agree() { "main", opened.id, opened.version, - ChangeSet { changes: vec![TextChange { from: 10, to: 16, insert: "世界".into() }] }, + ChangeSet { changes: vec![TextChange { from: 10, to: 16, insert: r"\u4E16\u754C".into() }] }, ) .unwrap(); let hunks = vcs::vcs_line_hunks(&host, "main", path.clone()).await.unwrap(); @@ -129,7 +129,7 @@ async fn properties_search_git_and_document_coordinates_agree() { assert!(project.documents.snapshot(opened.id).unwrap().version > snap.version); assert!(vcs::vcs_line_hunks(&host, "main", path.clone()).await.unwrap().is_empty()); // Partial commits identify hunks in displayed line coordinates as well. - let partial_text = displayed.replace("target", "世界").replace("logical", "changed"); + let partial_text = displayed.replace("target", r"\u4E16\u754C").replace("logical", "changed"); project.documents.replace_all(opened.id, &partial_text).unwrap(); doc::save(&host, "main", opened.id).await.unwrap(); let hunks = ide_vcs::diff_hunks(displayed, &partial_text); @@ -169,7 +169,7 @@ async fn properties_search_git_and_document_coordinates_agree() { "main", RequestId(520), query, - "世界".into(), + r"\u4E16\u754C".into(), false, vec![ide_search::ReplaceTarget { path: closed_path.clone().into(), @@ -181,5 +181,6 @@ async fn properties_search_git_and_document_coordinates_agree() { .unwrap(); assert_eq!(std::fs::read_to_string(&closed_path).unwrap(), r"value=\u4F60\u597D\uD83D\uDE00\u4E16\u754C"); assert!(project.documents.by_path(&closed_path).is_none()); + assert_eq!(project.text_of(&closed_path).unwrap(), "value=你好😀世界"); host.close_project("main"); } diff --git a/crates/ide-vcs/src/text_encoding.rs b/crates/ide-vcs/src/text_encoding.rs index 038256a95..768504b6d 100644 --- a/crates/ide-vcs/src/text_encoding.rs +++ b/crates/ide-vcs/src/text_encoding.rs @@ -3,7 +3,7 @@ use encoding_rs::{Encoding, UTF_8, UTF_16BE, UTF_16LE}; use ide_core::{IdeError, IdeResult}; use std::borrow::Cow; -/// File charset plus an optional reversible ASCII representation (for properties). +/// File charset plus an optional ASCII representation (for properties). /// The host supplies conversion functions so Git and documents share one codec. #[derive(Clone, Copy)] pub struct TextEncoding { diff --git a/crates/ide-vfs/src/encoding.rs b/crates/ide-vfs/src/encoding.rs index 05504a1b2..92e0d999b 100644 --- a/crates/ide-vfs/src/encoding.rs +++ b/crates/ide-vfs/src/encoding.rs @@ -62,20 +62,19 @@ pub fn decode_properties_escapes(text: &str) -> String { } /// Serializes displayed properties text as ASCII, using uppercase UTF-16 units. +/// Existing ASCII Unicode escapes retain their spelling and meaning on disk. pub fn encode_properties_ascii(text: &str) -> String { use std::fmt::Write; let mut out = String::with_capacity(text.len()); let mut rest = text; while let Some(c) = rest.chars().next() { - let current = rest; rest = &rest[c.len_utf8()..]; if c == '\\' { if rest.starts_with('\\') { out.push_str("\\\\"); rest = &rest[1..]; - } else if unicode_character(current).is_some() || rest.chars().next().is_some_and(|next| !next.is_ascii()) { - // Keep a literal backslash from swallowing a generated escape, - // or becoming a Unicode escape on the next load. + } else if rest.chars().next().is_some_and(|next| !next.is_ascii()) { + // Keep a literal backslash from swallowing a generated escape. out.push_str("\\u005C"); } else { out.push(c); @@ -387,13 +386,32 @@ mod tests { for text in ["plain=ASCII\r\n", r"escaped=\\u0041", r"bad=\u12xz", r"bad=\uD800"] { assert_eq!(encode_properties_ascii(text), text); } - for text in ["你好😀", "\0", "\\中", "\\\\中", "\\\\\\😀", r"\u0041", r"\\u0041", r"\uD83D\uDE00"] { + for text in ["你好😀", "\0", "\\中", "\\\\中", "\\\\\\😀", r"\\u0041"] { let ascii = encode_properties_ascii(text); assert!(ascii.is_ascii()); assert_eq!(decode_properties_escapes(&ascii), text, "{ascii}"); } } + #[test] + fn properties_ascii_escapes_are_not_escaped_again() { + for text in [ + r"test.key2=\u4F60\u597D", + r"test.key3=\u4f60\u597d", + r"ascii=\u0041\u005C\u000A", + r"emoji=\uD83D\uDE00", + r"slashes=\\u4F60 \\\u4F60 \\\\u4F60", + r"bad=\u123 \u12xz \uu0041 \uD800 \uDC00", + ] { + assert_eq!(encode_properties_ascii(text), text, "{text}"); + } + let mixed = "raw=\\u4f60\\u597d; native=你好😀"; + let expected = r"raw=\u4f60\u597d; native=\u4F60\u597D\uD83D\uDE00"; + assert_eq!(encode_properties_ascii(mixed), expected); + assert_eq!(encode_properties_ascii(expected), expected); + assert_eq!(decode_properties_escapes(expected), "raw=你好; native=你好😀"); + } + #[test] fn properties_line_terminator_escapes_survive_an_edit() { let source = r"key=one\u000Atwo\u000Dthree"; diff --git a/crates/ide-workspace/tests/documents.rs b/crates/ide-workspace/tests/documents.rs index 028617eb8..02370eed5 100644 --- a/crates/ide-workspace/tests/documents.rs +++ b/crates/ide-workspace/tests/documents.rs @@ -641,6 +641,57 @@ fn properties_conversion_uses_displayed_utf16_and_survives_reload() { assert!(!f.docs.is_dirty(doc.id).unwrap()); } +#[test] +fn properties_pasted_escapes_survive_save_and_decode_on_reload() { + let pasted = "test.key1=Hello\ntest.key2=\\u4F60\\u597D\ntest.key3=\\u4f60\\u597d\n"; + let displayed = "test.key1=Hello\ntest.key2=你好\ntest.key3=你好\n"; + for encoding in ["utf-8", "iso-8859-1", "utf-16le"] { + for eol in ["\n", "\r\n"] { + let f = fixture(); + let path = f.root.join("test_zh_CN.properties"); + let source = pasted.replace('\n', eol); + fs::write(&path, ide_vfs::encode(&source, encoding, encoding == "utf-16le").unwrap()).unwrap(); + let mut defaults = f.docs.file_defaults(); + defaults.native_to_ascii = true; + defaults.properties_fallback = encoding.into(); + f.docs.set_file_defaults(defaults.clone()); + let doc = f.docs.open(&path).unwrap(); + assert_eq!(doc.text, displayed); + + f.docs.replace_all(doc.id, pasted).unwrap(); + f.docs.save(doc.id).unwrap(); + assert_eq!(fs::read(&path).unwrap(), source.as_bytes(), "{encoding} {eol:?}"); + assert_eq!(f.docs.snapshot(doc.id).unwrap().text, pasted); + assert!(!f.docs.is_dirty(doc.id).unwrap()); + f.docs.on_disk_changed(std::slice::from_ref(&path)); + assert_eq!(f.docs.snapshot(doc.id).unwrap().text, pasted, "own saves do not reload"); + + f.docs.close(doc.id); + let reopened = f.docs.open(&path).unwrap(); + assert_eq!(reopened.text, displayed); + // An edit followed by its inverse preserves the original escape casing. + f.docs.replace_all(reopened.id, pasted).unwrap(); + f.docs.replace_all(reopened.id, displayed).unwrap(); + f.docs.save(reopened.id).unwrap(); + assert_eq!(fs::read(&path).unwrap(), source.as_bytes()); + + let external = format!("{source}test.key4=\\uD83D\\uDE00{eol}"); + fs::write(&path, &external).unwrap(); + f.docs.on_disk_changed(std::slice::from_ref(&path)); + assert_eq!(f.docs.snapshot(reopened.id).unwrap().text, format!("{displayed}test.key4=😀\n")); + defaults.native_to_ascii = false; + f.docs.set_file_defaults(defaults.clone()); + f.docs.reload_properties(); + assert_eq!(f.docs.snapshot(reopened.id).unwrap().text, external.replace("\r\n", "\n")); + defaults.native_to_ascii = true; + f.docs.set_file_defaults(defaults); + f.docs.reload_properties(); + assert_eq!(f.docs.snapshot(reopened.id).unwrap().text, format!("{displayed}test.key4=😀\n")); + assert_eq!(fs::read_to_string(&path).unwrap(), external); + } + } +} + #[test] fn properties_toggle_reloads_only_clean_properties_and_pins_dirty_codec() { let f = fixture(); From 7c72411dd73b217ad31a0c3bd92bcaeb1bb5a97d Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sun, 1 Nov 2026 13:45:25 +0800 Subject: [PATCH 08/27] fix(trust): allow application-level commands in restricted mode (#648) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Help › About showed no version, build or runtime in untrusted project windows and on the welcome screen. Root cause: the restricted-mode allowlist added with project trust missed app_build_info and other application-level commands, so they were rejected wherever the window had no trusted project; the frontend then cached the failed build info for the whole session. Fix: classify all registered commands and allow the 24 that only read application information or change the user's own application state (build info, log location, update checks, cache invalidation, file clipboard, JDK download, Docker settings, database export paths, patch export, system environment); JDK download now uses the application tool directory instead of project tool settings. Execution commands (run, build, debug, language servers, tool install from project settings) stay blocked. Build info is retried after a failure instead of being cached. Verified on macOS in an untrusted project and on the welcome screen; Windows not run. Related to #519 --- crates/ide-host/src/ops/tools.rs | 8 +-- crates/ide-host/src/trust.rs | 24 +++++++ crates/ide-host/tests/trust.rs | 88 +++++++++++++++++++++++++ src/features/app/__tests__/host.test.ts | 51 ++++++++++++++ src/features/app/host.ts | 7 +- 5 files changed, 173 insertions(+), 5 deletions(-) create mode 100644 src/features/app/__tests__/host.test.ts diff --git a/crates/ide-host/src/ops/tools.rs b/crates/ide-host/src/ops/tools.rs index f87b5799c..f8f05b1ff 100644 --- a/crates/ide-host/src/ops/tools.rs +++ b/crates/ide-host/src/ops/tools.rs @@ -100,11 +100,11 @@ pub fn jdk_download_vendors(_host: &Host, _window: &str) -> Vec { /// Java versions `vendor` publishes; cancellable with `cancel_request(request)`. pub async fn jdk_download_releases( host: &Host, - window: &str, + _window: &str, vendor: String, request: RequestId, ) -> IdeResult { - let tools = tools(host, window)?; + let tools = Tools::new(&host.data_dir); let cancel = host.begin_request(request); let result = tokio::task::spawn_blocking(move || tools.jdk_releases(&vendor, &cancel)).await.map_err(join_err); host.end_request(request); @@ -123,14 +123,14 @@ pub fn jdk_download_location(host: &Host, _window: &str) -> IdeResult, request: RequestId, on_event: Channel, ) -> IdeResult { - let tools = tools(host, window)?; + let tools = Tools::new(&host.data_dir); let location = location.filter(|p| !p.as_os_str().is_empty()); let cancel = host.begin_request(request); let result = tokio::task::spawn_blocking(move || { diff --git a/crates/ide-host/src/trust.rs b/crates/ide-host/src/trust.rs index 2f883b7b9..96c7c9740 100644 --- a/crates/ide-host/src/trust.rs +++ b/crates/ide-host/src/trust.rs @@ -175,6 +175,30 @@ pub fn restricted_command_allowed(cmd: &str) -> bool { matches!( cmd, "app_info" + | "app_build_info" + | "app_log_location" + | "app_check_update" + | "app_startup_update_check" + | "app_install_update" + | "caches_schedule_invalidation" + | "clear_caches" + | "clipboard_file_list" + | "clipboard_has_files" + | "clipboard_set_file_list" + | "jdk_download_vendors" + | "jdk_download_releases" + | "jdk_download_location" + | "jdk_download" + | "run_system_env" + | "run_gradle_jvm_args_script" + | "proxy_check_connection" + | "docker_settings" + | "docker_save_settings" + | "docker_set_registry_password" + | "docker_run_env" + | "db_console_path" + | "db_export_file" + | "vcs_write_patch" | "app_metrics" | "app_quit" | "app_cancel_quit" diff --git a/crates/ide-host/tests/trust.rs b/crates/ide-host/tests/trust.rs index bf6a0a057..4a1d0250a 100644 --- a/crates/ide-host/tests/trust.rs +++ b/crates/ide-host/tests/trust.rs @@ -20,6 +20,94 @@ fn host(base: &Path, environment: bool) -> Arc { })) } +#[tokio::test(flavor = "multi_thread", worker_threads = 2)] +async fn application_commands_work_in_restricted_projects_and_without_a_project() { + let tmp = tempfile::tempdir().unwrap(); + let root = tmp.path().join("project"); + std::fs::create_dir(&root).unwrap(); + let host = host(&tmp.path().join("app"), false); + assert!(host.project("welcome").is_err()); + assert!(ide_host::ops::project::roots(&host, "welcome").is_err()); + assert!(!host.open_project("main", &root).unwrap().is_trusted()); + for command in [ + "app_info", + "app_build_info", + "app_log_location", + "app_check_update", + "app_startup_update_check", + "app_install_update", + "caches_schedule_invalidation", + "clear_caches", + "clipboard_file_list", + "clipboard_has_files", + "clipboard_set_file_list", + "jdk_download_vendors", + "jdk_download_releases", + "jdk_download_location", + "jdk_download", + "run_system_env", + "run_gradle_jvm_args_script", + "proxy_check_connection", + "docker_settings", + "docker_save_settings", + "docker_set_registry_password", + "docker_run_env", + "db_console_path", + "db_export_file", + "vcs_write_patch", + ] { + assert!(ide_host::trust::restricted_command_allowed(command), "{command}"); + for window in ["main", "welcome"] { + assert!(host.authorize_command(window, command).is_ok(), "{window}: {command}"); + } + } + for command in [ + "run_start", + "build_sync", + "debug_start", + "sdk_detect", + "tools_list", + "tools_install", + "tools_uninstall", + "plugin_install_dir", + "plugin_reload", + "vcs_git_version", + "docker_compose_op", + "db_execute", + "unknown_command", + ] { + assert!(!ide_host::trust::restricted_command_allowed(command), "{command}"); + for window in ["main", "welcome"] { + assert!(host.authorize_command(window, command).is_err(), "{window}: {command}"); + } + } + // These requests validate the vendor before any network access, independently of project trust. + for window in ["main", "welcome"] { + let error = ide_host::ops::tools::jdk_download_releases( + &host, + window, + "unknown-vendor".into(), + ide_core::RequestId(901), + ) + .await + .unwrap_err(); + assert_eq!(error.kind, ide_core::error::ErrorKind::InvalidInput); + let error = ide_host::ops::tools::jdk_download( + &host, + window, + "unknown-vendor".into(), + 25, + None, + ide_core::RequestId(902), + ide_host::ops::Channel::new(|_| {}), + ) + .await + .unwrap_err(); + assert_eq!(error.kind, ide_core::error::ErrorKind::InvalidInput); + } + host.shutdown().await; +} + #[test] fn persists_user_decisions_locations_revocation_and_one_time_migration() { let tmp = tempfile::tempdir().unwrap(); diff --git a/src/features/app/__tests__/host.test.ts b/src/features/app/__tests__/host.test.ts new file mode 100644 index 000000000..27f7d38ee --- /dev/null +++ b/src/features/app/__tests__/host.test.ts @@ -0,0 +1,51 @@ +import { beforeEach, expect, it, vi } from "vitest"; +import type { BuildInfo } from "@/platform/ipc"; + +const { appBuildInfo, isTauri } = vi.hoisted(() => ({ appBuildInfo: vi.fn(), isTauri: vi.fn() })); +vi.mock("@/platform/ipc", () => ({ commands: { appBuildInfo }, isTauri })); + +const build: BuildInfo = { + version: "0.1.32", + build: "dev", + profile: "debug", + os: "windows", + arch: "x86_64", + tauri: "2.11.3", + updates: false, +}; + +beforeEach(() => { + vi.resetModules(); + appBuildInfo.mockReset(); + isTauri.mockReturnValue(true); +}); + +it("retries after a rejected request and caches the successful build info", async () => { + appBuildInfo.mockRejectedValueOnce(new Error("Project is not trusted")).mockResolvedValueOnce(build); + const { buildInfo, hostOs } = await import("../host"); + + const first = buildInfo(); + expect(buildInfo()).toBe(first); + await expect(first).resolves.toBeNull(); + await expect(hostOs()).resolves.toBe("windows"); + await expect(buildInfo()).resolves.toBe(build); + expect(appBuildInfo).toHaveBeenCalledTimes(2); +}); + +it("shares an in-flight successful request", async () => { + let resolve!: (value: BuildInfo) => void; + appBuildInfo.mockReturnValue(new Promise((done) => (resolve = done))); + const { buildInfo } = await import("../host"); + const first = buildInfo(); + expect(buildInfo()).toBe(first); + expect(appBuildInfo).toHaveBeenCalledTimes(1); + resolve(build); + await expect(first).resolves.toBe(build); +}); + +it("does not invoke the backend outside Tauri", async () => { + isTauri.mockReturnValue(false); + const { buildInfo } = await import("../host"); + await expect(buildInfo()).resolves.toBeNull(); + expect(appBuildInfo).not.toHaveBeenCalled(); +}); diff --git a/src/features/app/host.ts b/src/features/app/host.ts index 649365e98..4e1fdacdb 100644 --- a/src/features/app/host.ts +++ b/src/features/app/host.ts @@ -13,7 +13,12 @@ function normalize(os: string): HostOs { let info: Promise | null = null; export function buildInfo(): Promise { - info ??= isTauri() ? commands.appBuildInfo().catch(() => null) : Promise.resolve(null); + info ??= isTauri() + ? commands.appBuildInfo().catch(() => { + info = null; + return null; + }) + : Promise.resolve(null); return info; } From 482241ebb9a91e2ae1b6bb849f1315af65274479 Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sun, 1 Nov 2026 15:04:28 +0800 Subject: [PATCH 09/27] feat(java): open class files as decompiled sources with breakpoints (#657) Opening a .class file showed binary content. Class files from library jars, project output directories, navigation, Go to Class and debugger frames now all go through one route to JDT class documents: - Library classes open the attached source, or the FernFlower decompilation when there is none, read-only and marked as decompiled. java-debug's decompiled-source support is enabled, so breakpoints set in decompiled code map to the original lines and hit, and stepping into such classes lands on the right line. - Output-directory classes (target/classes, build/classes) open their project source when it exists; otherwise the decompiled text is shown read-only with breakpoints disabled, because jdt.ls returns no line mapping for classes outside the Java model. - The preferred content provider id is corrected to fernflowerContentProvider (attached sources still win), and the decompiled marker recognises the current FernFlower header. Verified on macOS with a Maven project: library class from Libraries and Go to Class, breakpoint hit and step into decompiled code, output class with and without source. Not run on Windows, Linux or Gradle projects. Fixes #394 --- crates/ide-host/src/ops/lsp.rs | 14 ++- crates/ide-lsp/src/jdtls.rs | 56 ++++++++++- crates/ide-lsp/src/lib.rs | 5 +- crates/ide-lsp/src/types.rs | 2 +- crates/ide-lsp/src/virtual_doc.rs | 92 ++++++++++++++++--- crates/ide-lsp/tests/mock_server.rs | 52 +++++++++++ crates/ide-sdk/src/libraries.rs | 8 +- crates/ide-sdk/src/tests.rs | 16 ++-- languages/java.toml | 2 +- src-tauri/src/commands/lsp.rs | 14 ++- src-tauri/src/commands/mod.rs | 1 + src/bindings.ts | 7 +- src/editor/api.ts | 2 +- src/editor/core/backend.ts | 2 +- src/editor/core/controller.ts | 16 +++- src/editor/core/view/Banner.tsx | 15 ++- src/editor/core/view/EditorArea.module.css | 4 + src/editor/core/view/EditorArea.tsx | 2 +- src/editor/core/virtual.test.ts | 21 ++++- .../debugger/__tests__/actions.test.ts | 20 ++++ .../debugger/__tests__/editor.test.ts | 26 ++++++ src/features/debugger/actions.ts | 24 +++-- .../debugger/breakpoints/languages.ts | 4 +- .../debugger/editor/breakpointGutter.ts | 28 ++++++ src/features/debugger/editor/runToCursor.ts | 3 +- src/platform/classFiles.test.ts | 34 +++++++ src/platform/classFiles.ts | 8 ++ src/platform/locales/text/zh.json | 1 + src/platform/virtualDocs.ts | 5 +- 29 files changed, 427 insertions(+), 57 deletions(-) create mode 100644 src/platform/classFiles.test.ts create mode 100644 src/platform/classFiles.ts diff --git a/crates/ide-host/src/ops/lsp.rs b/crates/ide-host/src/ops/lsp.rs index 953f878a7..0c85d1065 100644 --- a/crates/ide-host/src/ops/lsp.rs +++ b/crates/ide-host/src/ops/lsp.rs @@ -83,12 +83,18 @@ pub async fn lsp_implementations( result } -/// Contents of a virtual document (library class, decompiled code) that a -/// language server returned a non-`file:` URI for. Cached per project. +/// Contents of a read-only language-server document, including JDT library +/// classes and disk class files. Cached per project. pub async fn lsp_virtual_document(host: &Host, window: &str, uri: String) -> IdeResult { host.project(window)?.lsp.virtual_document(&uri).await } +/// Opens compiled classes through JDT, with project source taking priority on disk. +pub async fn lsp_resolve_class_file(host: &Host, window: &str, path: std::path::PathBuf) -> IdeResult { + let archive = ide_vfs::split_archive_path(&path); + host.project(window)?.lsp.java_class_file(&path, archive).await +} + /// References of the symbol at `pos`. `project_wide` also searches project files /// outside the language server's analysis scope; bulk scans over many symbols /// leave it off. Cancel with `cancel_request(request)`. @@ -367,6 +373,10 @@ pub(crate) fn register(d: &mut Dispatcher) { d.add("lsp_implementations", |c| async move { lsp_implementations(&c.host, &c.window, c.arg("request")?, c.arg("doc")?, c.arg("positions")?).await }); + d.add( + "lsp_resolve_class_file", + |c| async move { lsp_resolve_class_file(&c.host, &c.window, c.arg("path")?).await }, + ); d.add("lsp_virtual_document", |c| async move { lsp_virtual_document(&c.host, &c.window, c.arg("uri")?).await }); d.add("lsp_references", |c| async move { lsp_references( diff --git a/crates/ide-lsp/src/jdtls.rs b/crates/ide-lsp/src/jdtls.rs index 6b47e143c..e66cafe63 100644 --- a/crates/ide-lsp/src/jdtls.rs +++ b/crates/ide-lsp/src/jdtls.rs @@ -532,6 +532,59 @@ impl LspManager { collect() } + /// Resolve a disk/archive class to project source or the server's binary document. + /// Archive URIs must come from JDT's Java model: fabricated handles cannot map debug lines. + pub async fn java_class_file(&self, path: &Path, archive: Option<(PathBuf, String)>) -> IdeResult { + let cancel = CancellationToken::new(); + self.jdtls(&self.project_root, &cancel).await?; + if let Some((jar, entry)) = archive { + let entry = entry + .strip_prefix("META-INF/versions/") + .and_then(|s| s.split_once('/').map(|(_, s)| s)) + .unwrap_or(&entry); + let class = entry.strip_suffix(".class").ok_or_else(|| IdeError::not_found("expected a class file"))?; + let outer = class.split('$').next().unwrap_or(class); + let (package, name) = outer.rsplit_once('/').unwrap_or(("", outer)); + let query = outer.replace('/', "."); + let symbols = self.workspace_symbols(&query, cancel).await?; + let package = package.replace('/', "."); + let name = name.to_owned(); + let outer = outer.to_owned(); + return tokio::task::spawn_blocking(move || { + symbols + .into_iter() + .filter_map(|s| s.location.uri) + .find(|uri| crate::virtual_doc::matches_class(uri, &jar, &package, &name)) + .ok_or_else(|| { + IdeError::not_found(format!("jdtls could not resolve {} in {}", outer, jar.display())) + }) + }) + .await + .map_err(|e| IdeError::internal(e.to_string()))?; + } + let uri = crate::uri::path_to_uri_string(path); + // classFileContents accepts file URIs, but java-debug's line mapping only accepts JDT handles. + let doc = self.virtual_document(&uri).await?; + let name = path.file_stem().and_then(|s| s.to_str()).unwrap_or("").split('$').next().unwrap_or(""); + let package = doc + .text + .lines() + .find_map(|l| l.trim().strip_prefix("package ").and_then(|p| p.strip_suffix(';'))) + .unwrap_or(""); + let relative = PathBuf::from(package.replace('.', "/")).join(format!("{name}.java")); + let key = "org.eclipse.jdt.ls.core.sourcePaths"; + let settings = self + .jdtls_project_command(path, "java.project.getSettings", vec![json!(uri), json!([key])], &cancel) + .await?; + let roots: Vec = + settings[key].as_array().into_iter().flatten().filter_map(Value::as_str).map(PathBuf::from).collect(); + let source = + tokio::task::spawn_blocking(move || roots.into_iter().map(|r| r.join(&relative)).find(|p| p.is_file())) + .await + .map_err(|e| IdeError::internal(e.to_string()))?; + Ok(source.map(|s| s.to_string_lossy().into_owned()).unwrap_or(uri)) + } + /// Starts (or reuses) java-debug's DAP server inside jdtls and returns its port. pub async fn java_debug_server(&self, path: &Path) -> IdeResult { let v = self.jdtls_command(path, "vscode.java.startDebugSession", Vec::new()).await.map_err(|e| { @@ -542,7 +595,7 @@ impl LspManager { } })?; // Hot code replace after each (auto-)build; errors only cost the feature. - let settings = json!({ "hotCodeReplace": "auto", "showStaticVariables": false, "showQualifiedNames": false, + let settings = json!({ "debugSupportOnDecompiledSource": "on", "hotCodeReplace": "auto", "showStaticVariables": false, "showQualifiedNames": false, "showLogicalStructure": true, "showToString": true, "maxStringLength": 0, // java-debug NPEs on a missing level (java.util.logging names). "logLevel": "WARNING" }); @@ -574,6 +627,7 @@ mod tests { assert_eq!(settings["java"]["project"]["sourcePaths"], json!(["src/main/java", "tests"])); assert_eq!(settings["java"]["project"]["referencedLibraries"], json!(["lib/**/*.jar"])); assert_eq!(settings["java"]["autobuild"]["enabled"], true); + assert_eq!(settings["java"]["contentProvider"]["preferred"], "fernflowerContentProvider"); assert!(settings.get("bundles").is_none()); assert!(settings.get("settings").is_none(), "didChangeConfiguration takes java settings directly"); } diff --git a/crates/ide-lsp/src/lib.rs b/crates/ide-lsp/src/lib.rs index 6d44afeb9..7091c69a3 100644 --- a/crates/ide-lsp/src/lib.rs +++ b/crates/ide-lsp/src/lib.rs @@ -2166,6 +2166,7 @@ impl LspManager { return Ok(d.clone()); } let scheme = virtual_doc::scheme(uri).to_owned(); + let class_file = scheme == "jdt" || (scheme == "file" && uri.ends_with(".class")); let origin = self.origin_server(uri); let mut servers: Vec> = origin.iter().cloned().collect(); servers.extend(self.servers.lock().iter().filter(|s| Some(s.id) != origin.as_ref().map(|o| o.id)).cloned()); @@ -2174,7 +2175,7 @@ impl LspManager { for t in &targets { let languages = t.server.languages(); let serves_scheme = t.caps().content_schemes().contains(&scheme); - let result: IdeResult> = if serves_scheme { + let result: IdeResult> = if serves_scheme && !class_file { self.call::<_, Option>( t, "workspace/textDocumentContent", @@ -2184,7 +2185,7 @@ impl LspManager { ) .await .map(|v| v.and_then(|v| v.get("text").and_then(Value::as_str).map(str::to_owned))) - } else if scheme == "jdt" && languages.iter().any(|l| l.as_str() == "java") { + } else if class_file && languages.iter().any(|l| l.as_str() == "java") { self.call::<_, Option>(t, "java/classFileContents", json!({ "uri": uri }), None, LONG_TIMEOUT) .await } else { diff --git a/crates/ide-lsp/src/types.rs b/crates/ide-lsp/src/types.rs index 45be5d0c3..beaee53d1 100644 --- a/crates/ide-lsp/src/types.rs +++ b/crates/ide-lsp/src/types.rs @@ -335,7 +335,7 @@ pub struct VirtualDocument { pub title: String, /// Origin shown in the tooltip / banner, e.g. the jar path. pub description: Option, - /// Generated by a decompiler / disassembler rather than real sources. + /// Generated Java from a decompiler, rather than real source or a disassembler stub. pub decompiled: bool, } diff --git a/crates/ide-lsp/src/virtual_doc.rs b/crates/ide-lsp/src/virtual_doc.rs index 71394d7a1..110b206fd 100644 --- a/crates/ide-lsp/src/virtual_doc.rs +++ b/crates/ide-lsp/src/virtual_doc.rs @@ -1,21 +1,29 @@ //! Virtual documents: read-only contents a language server provides for a -//! non-`file:` URI (library classes from `jdt://`, `workspace/textDocumentContent`). +//! URI (library classes from `jdt://`, disk classes from `file://`, or +//! `workspace/textDocumentContent`). use percent_encoding::percent_decode_str; -/// Markers decompilers / disassemblers put at the top of generated code. -const GENERATED_MARKERS: [&str; 5] = [ - "generated by the fernflower decompiler", - "failed to get sources", - "decompiled with cfr", - "decompiled with procyon", - "generated by the disassembler", -]; - -/// Whether `text` is decompiled / disassembled code rather than real source. +/// Recognize decompiler headers, without treating disassembler stubs as Java source. pub fn is_decompiled(text: &str) -> bool { - let head: String = text.chars().take(600).collect::().to_ascii_lowercase(); - GENERATED_MARKERS.iter().any(|m| head.contains(m)) + let head: String = text.chars().take(600).collect(); + head.lines() + .take(12) + .take_while(|line| { + let line = line.trim(); + line.is_empty() || line.starts_with("//") || line.starts_with("/*") || line.starts_with('*') + }) + .any(|line| { + let line = line.trim().trim_start_matches('/').trim_start_matches('*').trim().to_ascii_lowercase(); + [ + "source code is unavailable, and was generated by the fernflower decompiler.", + "source code is decompiled from a .class file using fernflower decompiler", + "decompiled with cfr", + "decompiled with procyon", + ] + .iter() + .any(|marker| line.starts_with(marker)) + }) } /// `scheme` of a URI (`jdt` for `jdt://…`). @@ -34,7 +42,16 @@ fn segments(uri: &str) -> Vec { /// Editor tab title: the last path segment; a class file whose real source /// was found is shown as `.java` (IDEA: `String.java` vs `String.class`). pub fn title(uri: &str, decompiled: bool) -> String { - let name = segments(uri).pop().unwrap_or_else(|| uri.to_owned()); + let mut name = segments(uri).pop().unwrap_or_else(|| uri.to_owned()); + // Recent jdtls versions use a .java path even for decompiled class handles. + if decompiled + && scheme(uri) == "jdt" + && name.ends_with(".java") + && uri.split_once('?').is_some_and(|(_, q)| percent_decode_str(q).decode_utf8_lossy().contains(".class")) + { + name.truncate(name.len() - 5); + name.push_str(".class"); + } match name.strip_suffix(".class") { Some(stem) if !decompiled && scheme(uri) == "jdt" => format!("{stem}.java"), _ => name, @@ -68,6 +85,19 @@ pub fn description(uri: &str) -> Option { } } +/// Check both the package and actual archive, so duplicate type names never pick another jar. +pub(crate) fn matches_class(uri: &str, jar: &std::path::Path, package: &str, name: &str) -> bool { + let segs = segments(uri); + scheme(uri) == "jdt" + && (package.is_empty() && segs.len() == 3 || segs.get(2).is_some_and(|s| s == package)) + && segs.last().is_some_and(|s| s == &format!("{name}.class") || s == &format!("{name}.java")) + && description(uri).is_some_and(|p| { + let path = std::path::Path::new(&p); + path == jar + || dunce::canonicalize(path).ok().zip(dunce::canonicalize(jar).ok()).is_some_and(|(a, b)| a == b) + }) +} + #[cfg(test)] mod tests { use super::*; @@ -84,6 +114,30 @@ mod tests { #[test] fn jdt_description() { + assert!(matches_class( + JDT, + std::path::Path::new("/Users/me/.m2/repository/spring-boot-4.1.1.jar"), + "org.springframework.boot", + "SpringApplication" + )); + assert!(!matches_class( + JDT, + std::path::Path::new("/elsewhere/spring-boot-4.1.1.jar"), + "org.springframework.boot", + "SpringApplication" + )); + assert!(!matches_class( + JDT, + std::path::Path::new("/Users/me/.m2/repository/spring-boot-4.1.1.jar"), + "other.package", + "SpringApplication" + )); + assert!(matches_class( + "jdt://contents/a.jar//C.java?=p/%5C/m2%5C/a.jar%3C%28C.class", + std::path::Path::new("/m2/a.jar"), + "", + "C" + )); assert_eq!(description(JDT).as_deref(), Some("/Users/me/.m2/repository/spring-boot-4.1.1.jar")); assert_eq!( description( @@ -98,10 +152,18 @@ mod tests { #[test] fn detects_generated_code() { + assert!(is_decompiled( + "// Source code is decompiled from a .class file using FernFlower decompiler (from Intellij IDEA).\npackage a;" + )); + assert!(!is_decompiled("package a;\n// generated by the fernflower decompiler")); + assert!(!is_decompiled("// Documentation about code generated by the Fernflower decompiler.\npackage a;")); + let recent = "jdt://contents/a.jar/p/C.java?=p/a.jar%3Cp%28C.class"; + assert_eq!(title(recent, true), "C.class"); + assert_eq!(title(recent, false), "C.java"); assert!(is_decompiled( "// Source code is unavailable, and was generated by the Fernflower decompiler.\npackage a;" )); - assert!(is_decompiled( + assert!(!is_decompiled( "// Failed to get sources. Instead, stub sources have been generated by the disassembler." )); assert!(!is_decompiled("/*\n * Copyright 2012-2024 the original author or authors.\n */\npackage a;")); diff --git a/crates/ide-lsp/tests/mock_server.rs b/crates/ide-lsp/tests/mock_server.rs index e909af815..2cd2b4f9a 100644 --- a/crates/ide-lsp/tests/mock_server.rs +++ b/crates/ide-lsp/tests/mock_server.rs @@ -1617,6 +1617,58 @@ async fn jdt_class_file_contents() { assert_eq!(vd.title, "Lib.class"); assert_eq!(vd.language_id.as_str(), "java"); assert_eq!(vd.description.as_deref(), Some("/m2/lib-1.0.jar")); + let source_uri = jdt.replace("Lib.class", "WithSources.class"); + s.respond( + "java/classFileContents", + json!("/* Copyright library author */\npackage org.example;\npublic class WithSources {}"), + ); + let source = h.mgr.virtual_document(&source_uri).await.unwrap(); + assert!(!source.decompiled); + assert_eq!(source.title, "WithSources.java"); +} + +#[tokio::test(flavor = "multi_thread")] +async fn class_file_opening_routes_sources_and_binary_documents() { + let mut caps = incremental_caps(); + caps["workspaceSymbolProvider"] = json!(true); + let h = harness_for("java", "java", &[("jdtls", caps)], &[]); + h.open("App.java", "class App {}\n"); + h.wait_status("jdtls", ServerStatus::Ready).await; + let s = h.launcher.state("jdtls"); + let jdt = "jdt://contents/lib.jar/p/Outer.java?=demo/%5C/m2%5C/lib.jar%3Cp%28Outer.class"; + s.respond("workspace/symbol", json!([ + {"name":"Outer", "kind":5, "location":{"uri":jdt,"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}}}} + ])); + let archive = Some((PathBuf::from("/m2/lib.jar"), "p/Outer$1.class".into())); + assert_eq!(h.mgr.java_class_file(Path::new("/m2/lib.jar!/p/Outer$1.class"), archive).await.unwrap(), jdt); + assert!( + h.mgr + .java_class_file( + Path::new("/other/lib.jar!/p/Outer.class"), + Some(("/other/lib.jar".into(), "p/Outer.class".into())) + ) + .await + .is_err() + ); + + let sources = h.root.join("src/main/java"); + std::fs::create_dir_all(sources.join("p")).unwrap(); + let source = sources.join("p/Outer.java"); + std::fs::write(&source, "package p; class Outer {} ").unwrap(); + s.respond("java/classFileContents", json!("// Source code is decompiled from a .class file using FernFlower decompiler (from Intellij IDEA).\npackage p;\npublic class Outer {}")); + s.respond("workspace/executeCommand", json!({"org.eclipse.jdt.ls.core.sourcePaths":[sources]})); + for class in ["Outer", "Outer$Nested", "Outer$1"] { + let path = h.root.join(format!("target/classes/p/{class}.class")); + assert_eq!(h.mgr.java_class_file(&path, None).await.unwrap(), source.to_string_lossy()); + } + let path = h.root.join("build/classes/java/main/p/Missing.class"); + let uri = uri_of(&path); + assert_eq!(h.mgr.java_class_file(&path, None).await.unwrap(), uri); + let vd = h.mgr.virtual_document(&uri).await.unwrap(); + assert!(vd.decompiled); + assert_eq!(vd.language_id.as_str(), "java"); + assert_eq!(vd.title, "Missing.class"); + assert!(s.requested("java/classFileContents").iter().any(|p| p["uri"] == uri)); } #[tokio::test(flavor = "multi_thread")] diff --git a/crates/ide-sdk/src/libraries.rs b/crates/ide-sdk/src/libraries.rs index 4c50b2f55..bdc450b7e 100644 --- a/crates/ide-sdk/src/libraries.rs +++ b/crates/ide-sdk/src/libraries.rs @@ -8,7 +8,7 @@ //! result is cached until the manifests (or the relevant settings) change. //! //! Archives are listed as browsable roots (`!`, see `ide_vfs`): the -//! JDK's `src.zip` and the Maven / Gradle dependency jars (sources jars preferred). +//! JDK's `src.zip` and the Maven / Gradle dependency jars (source attachments resolved by JDT). use crate::exe; use crate::exec::{query, query_in, which}; @@ -248,7 +248,7 @@ fn gradle_user_home() -> Option { } /// One `Maven: g:a:v` / `Gradle: g:a:v` group per dependency whose jar is in a -/// local repository, its root being the jar (the `-sources.jar` when downloaded). +/// local repository, its root being the binary jar so Java classes open through JDT's source provider. pub(crate) fn dependency_libraries( deps: &[BuildDependency], maven_repo: Option<&Path>, @@ -286,7 +286,7 @@ pub(crate) fn maven_jar(repo: &Path, d: &BuildDependency) -> Option { return None; } let dir = repo.join(d.group.replace('.', "/")).join(&d.artifact).join(&d.version); - ["-sources.jar", ".jar"] + [".jar", "-sources.jar"] .iter() .map(|suffix| dir.join(format!("{}-{}{suffix}", d.artifact, d.version))) .find(|p| p.is_file()) @@ -300,7 +300,7 @@ pub(crate) fn gradle_jar(home: &Path, d: &BuildDependency) -> Option { let dir = home.join("caches/modules-2/files-2.1").join(&d.group).join(&d.artifact).join(&d.version); let mut hashes: Vec = std::fs::read_dir(dir).ok()?.flatten().map(|e| e.path()).collect(); hashes.sort(); - ["-sources.jar", ".jar"].iter().find_map(|suffix| { + [".jar", "-sources.jar"].iter().find_map(|suffix| { let file = format!("{}-{}{suffix}", d.artifact, d.version); hashes.iter().map(|h| h.join(&file)).find(|p| p.is_file()) }) diff --git a/crates/ide-sdk/src/tests.rs b/crates/ide-sdk/src/tests.rs index 8ce5a774b..37adca8be 100644 --- a/crates/ide-sdk/src/tests.rs +++ b/crates/ide-sdk/src/tests.rs @@ -540,12 +540,12 @@ fn build_dependencies_resolve_to_local_jars() { std::fs::write(&p, "").unwrap(); p }; - touch(m2.join("com/google/guava/guava/33.0/guava-33.0.jar")); - let guava_src = touch(m2.join("com/google/guava/guava/33.0/guava-33.0-sources.jar")); + let guava = touch(m2.join("com/google/guava/guava/33.0/guava-33.0.jar")); + touch(m2.join("com/google/guava/guava/33.0/guava-33.0-sources.jar")); let junit = touch(m2.join("junit/junit/4.13/junit-4.13.jar")); let files = gradle.join("caches/modules-2/files-2.1/org.slf4j/slf4j-api/2.0.9"); - touch(files.join("a1b2/slf4j-api-2.0.9.jar")); - let slf4j_src = touch(files.join("c3d4/slf4j-api-2.0.9-sources.jar")); + let slf4j = touch(files.join("a1b2/slf4j-api-2.0.9.jar")); + touch(files.join("c3d4/slf4j-api-2.0.9-sources.jar")); let dep = |gradle: bool, g: &str, a: &str, v: &str| BuildDependency { gradle, group: g.into(), @@ -566,14 +566,14 @@ fn build_dependencies_resolve_to_local_jars() { assert_eq!( shown, [ - ("Maven: com.google.guava:guava:33.0", "maven", "guava-33.0-sources.jar"), + ("Maven: com.google.guava:guava:33.0", "maven", "guava-33.0.jar"), ("Maven: junit:junit:4.13", "maven", "junit-4.13.jar"), - ("Gradle: org.slf4j:slf4j-api:2.0.9", "gradle", "slf4j-api-2.0.9-sources.jar"), + ("Gradle: org.slf4j:slf4j-api:2.0.9", "gradle", "slf4j-api-2.0.9.jar"), ] ); - assert_eq!(groups[0].roots[0].path, ide_core::IpcPath::from(ide_vfs::archive_root(&guava_src))); + assert_eq!(groups[0].roots[0].path, ide_core::IpcPath::from(ide_vfs::archive_root(&guava))); assert_eq!(groups[1].roots[0].path, ide_core::IpcPath::from(ide_vfs::archive_root(&junit))); - assert_eq!(groups[2].roots[0].path, ide_core::IpcPath::from(ide_vfs::archive_root(&slf4j_src))); + assert_eq!(groups[2].roots[0].path, ide_core::IpcPath::from(ide_vfs::archive_root(&slf4j))); // A Gradle build also finds jars installed in the Maven local repository (`mavenLocal()`). let groups = dependency_libraries(&[dep(true, "junit", "junit", "4.13")], Some(&m2), Some(&gradle)); assert_eq!(groups[0].name, "Gradle: junit:junit:4.13"); diff --git a/languages/java.toml b/languages/java.toml index 7e2e87c7f..7e7837b08 100644 --- a/languages/java.toml +++ b/languages/java.toml @@ -32,7 +32,7 @@ resolveAdditionalTextEditsSupport = true [language-servers.initialization-options.settings.java] autobuild = { enabled = true } -contentProvider = { preferred = "fernflower" } +contentProvider = { preferred = "fernflowerContentProvider" } maven = { downloadSources = true, updateSnapshots = false } eclipse = { downloadSources = true } references = { includeDecompiledSources = true } diff --git a/src-tauri/src/commands/lsp.rs b/src-tauri/src/commands/lsp.rs index c311cb8eb..765d7e755 100644 --- a/src-tauri/src/commands/lsp.rs +++ b/src-tauri/src/commands/lsp.rs @@ -95,8 +95,8 @@ pub async fn lsp_implementations( ide_host::ops::lsp::lsp_implementations(&state.host, window.label(), request, doc, positions).await } -/// Contents of a virtual document (library class, decompiled code) that a -/// language server returned a non-`file:` URI for. Cached per project. +/// Contents of a read-only language-server document, including JDT library +/// classes and disk class files. Cached per project. #[tauri::command] #[specta::specta] pub async fn lsp_virtual_document( @@ -107,6 +107,16 @@ pub async fn lsp_virtual_document( ide_host::ops::lsp::lsp_virtual_document(&state.host, window.label(), uri).await } +#[tauri::command] +#[specta::specta] +pub async fn lsp_resolve_class_file( + window: Window, + state: State<'_, AppState>, + path: std::path::PathBuf, +) -> IdeResult { + ide_host::ops::lsp::lsp_resolve_class_file(&state.host, window.label(), path).await +} + /// References of the symbol at `pos`. `project_wide` also searches project files /// outside the language server's analysis scope; bulk scans over many symbols /// leave it off. Cancel with `cancel_request(request)`. diff --git a/src-tauri/src/commands/mod.rs b/src-tauri/src/commands/mod.rs index 5111d421b..ab121db65 100644 --- a/src-tauri/src/commands/mod.rs +++ b/src-tauri/src/commands/mod.rs @@ -201,6 +201,7 @@ pub fn builder() -> tauri_specta::Builder { lsp::lsp_goto, lsp::lsp_implementations, lsp::lsp_virtual_document, + lsp::lsp_resolve_class_file, lsp::lsp_references, lsp::lsp_document_highlights, lsp::lsp_workspace_symbols, diff --git a/src/bindings.ts b/src/bindings.ts index 20ee0eba2..79eba7f80 100644 --- a/src/bindings.ts +++ b/src/bindings.ts @@ -372,10 +372,11 @@ export const commands = { */ lspImplementations: (request: RequestId, doc: DocId, positions: Pos[]) => typedError(__TAURI_INVOKE("lsp_implementations", { request, doc, positions })), /** - * Contents of a virtual document (library class, decompiled code) that a - * language server returned a non-`file:` URI for. Cached per project. + * Contents of a read-only language-server document, including JDT library + * classes and disk class files. Cached per project. */ lspVirtualDocument: (uri: string) => typedError(__TAURI_INVOKE("lsp_virtual_document", { uri })), + lspResolveClassFile: (path: string) => typedError(__TAURI_INVOKE("lsp_resolve_class_file", { path })), /** * References of the symbol at `pos`. `project_wide` also searches project files * outside the language server's analysis scope; bulk scans over many symbols @@ -6310,7 +6311,7 @@ export type VirtualDocument = { title: string, /** Origin shown in the tooltip / banner, e.g. the jar path. */ description: string | null, - /** Generated by a decompiler / disassembler rather than real sources. */ + /** Generated Java from a decompiler, rather than real source or a disassembler stub. */ decompiled: boolean, }; diff --git a/src/editor/api.ts b/src/editor/api.ts index 8ce6db51b..9f2ab9a0f 100644 --- a/src/editor/api.ts +++ b/src/editor/api.ts @@ -42,7 +42,7 @@ export interface EditorDocContext { /** * A read-only virtual document (library class contents from a language * server); `path` is then its URI, not a file: skip file-based features - * (VCS, local history, TODO scanning, breakpoints…). + * (VCS, local history, TODO scanning…). JDT class documents support breakpoints. */ virtual?: boolean; } diff --git a/src/editor/core/backend.ts b/src/editor/core/backend.ts index 5c2250168..8e4b020cf 100644 --- a/src/editor/core/backend.ts +++ b/src/editor/core/backend.ts @@ -36,7 +36,7 @@ export interface DocPatchedEvent { export interface DocBackend { open(path: string): Promise; - /** Opens the read-only virtual document behind a non-`file:` URI (library class contents). */ + /** Opens a read-only language-server document (library or disk class contents). */ openVirtual(uri: string): Promise; close(doc: DocId): Promise; edit(doc: DocId, baseVersion: number, changes: TextChange[]): Promise; diff --git a/src/editor/core/controller.ts b/src/editor/core/controller.ts index be343fbf4..90e12af6d 100644 --- a/src/editor/core/controller.ts +++ b/src/editor/core/controller.ts @@ -89,6 +89,7 @@ import { NavigationHistory } from "./model/navHistory"; import { EditHistory } from "./model/editHistory"; import { loadSession, restoreTabsState, serializeSession, storeSession, type FileViewState } from "./model/session"; import { docBackend, type DocBackend } from "./backend"; +import { isClassFile } from "@/platform/classFiles"; import { isVirtualUri, virtualDocument } from "@/platform/virtualDocs"; import type { VirtualDocument } from "@/platform/ipc"; import type { Scheduler } from "./sync/DocSync"; @@ -860,9 +861,21 @@ export class EditorController implements SlotHost { throw new Error("The project is closing"); } - async openFile(path: string, o: OpenOptions = {}) { + async openFile(path: string, o: OpenOptions = {}): Promise { const generation = this.openingGeneration(); if (isVirtualUri(path)) return this.openVirtual(path, o); + if (isClassFile(path)) { + await this.projectTransition; + this.checkOpening(generation); + try { + const target = await call(commands.lspResolveClassFile(path)); + this.checkOpening(generation); + return isVirtualUri(target) ? this.openVirtual(target, o) : this.openFile(target, o); + } catch (e) { + notifications().notify({ level: "warning", title: "Cannot open library class", body: String(e), group: "lsp" }); + return; + } + } await this.projectTransition; this.checkOpening(generation); // Images, binary and huge files open in a contributed viewer unless already open as text. @@ -901,6 +914,7 @@ export class EditorController implements SlotHost { } async openInput(input: EditorInput, o: OpenOptions = {}) { + if (input.path && isClassFile(input.path)) return this.openFile(input.path, o); return this.admitInput(input, o, this.openingGeneration()); } diff --git a/src/editor/core/view/Banner.tsx b/src/editor/core/view/Banner.tsx index 0023ee02a..963665f22 100644 --- a/src/editor/core/view/Banner.tsx +++ b/src/editor/core/view/Banner.tsx @@ -3,6 +3,7 @@ import { Icon, T } from "@/ui"; import { useEditorBanners, type EditorBannerContribution } from "@/workbench/contributions"; import { useDocMeta } from "../model/document"; import styles from "./EditorArea.module.css"; +import { classFileBreakpointReason } from "@/platform/classFiles"; import { tx } from "@/platform/i18n"; const TEXT = { @@ -28,12 +29,22 @@ export const documentBanner: EditorBannerContribution = { * Notice above a library class opened from a language server (IDEA's * "Decompiled .class file" / library source bar): read-only, with its origin. */ -export function VirtualBanner({ decompiled, description }: { decompiled: boolean; description: string | null }) { +export function VirtualBanner({ + decompiled, + description, + path, +}: { + decompiled: boolean; + description: string | null; + path: string; +}) { + const reason = classFileBreakpointReason(path); return (
- + {decompiled ? tx("Decompiled .class file: sources are not available.") : tx("Library source (read-only).")} + {reason && ` ${tx(reason)}`} {description && ( diff --git a/src/editor/core/view/EditorArea.module.css b/src/editor/core/view/EditorArea.module.css index 40fbc0dd1..593cd1ac4 100644 --- a/src/editor/core/view/EditorArea.module.css +++ b/src/editor/core/view/EditorArea.module.css @@ -90,6 +90,10 @@ background: var(--bg-feedback-warning); border-bottom-color: var(--border-feedback-warning); } +.virtualBannerText { + min-width: 0; + padding: 8px 0; +} .bannerText { flex: none; white-space: nowrap; diff --git a/src/editor/core/view/EditorArea.tsx b/src/editor/core/view/EditorArea.tsx index bd4b709a3..cc172aa56 100644 --- a/src/editor/core/view/EditorArea.tsx +++ b/src/editor/core/view/EditorArea.tsx @@ -398,7 +398,7 @@ function PaneContent({ paneId, tab, tabsVisible }: { paneId: string; tab: Tab; t return ( <> {virtual ? ( - + ) : ( )} diff --git a/src/editor/core/virtual.test.ts b/src/editor/core/virtual.test.ts index e4417eb4d..aaa464afa 100644 --- a/src/editor/core/virtual.test.ts +++ b/src/editor/core/virtual.test.ts @@ -10,7 +10,7 @@ vi.mock("@/platform/virtualDocs", async (importOriginal) => { return { ...actual, virtualDocument: vi.fn(async (uri: string): Promise => { - if (uri !== JDT) throw new Error(`no contents for ${uri}`); + if (uri !== JDT && uri !== "file:///p/target/classes/Lib.class") throw new Error(`no contents for ${uri}`); return { uri, text: TEXT, @@ -30,6 +30,7 @@ const { serializeSession } = await import("./model/session"); const { useDocMeta } = await import("./model/document"); const { registerMenuGroup } = await import("@/workbench/contributions"); const { registerActions } = await import("@/platform/actions"); +const { commands } = await import("@/platform/ipc"); const { resolveMenuItems } = await import("@/ui"); let ctrl: InstanceType | null = null; @@ -55,6 +56,24 @@ describe("virtual editor input", () => { expect(isTextInput({ kind: "diff", key: "d" })).toBe(false); }); + it.each([ + ["/m2/lib.jar!/org/example/Lib.class", JDT, "virtual"], + ["/p/target/classes/Lib.class", "/p/Lib.java", "file"], + ["/p/build/classes/Lib.class", "file:///p/target/classes/Lib.class", "virtual"], + ])("routes %s before choosing a binary viewer", async (path, target, kind) => { + const resolve = vi.spyOn(commands, "lspResolveClassFile").mockResolvedValue({ status: "ok", data: target }); + ctrl = new EditorController(createMemoryBackend({ [target]: TEXT })); + ctrl.start(); + try { + await ctrl.openFile(path!, { focus: false }); + expect(resolve).toHaveBeenCalledWith(path); + expect(activeTab().input).toMatchObject({ path: target, kind }); + expect(ctrl.slotFor(activeTab().id)!.model.ctx().readOnly).toBe(kind === "virtual"); + } finally { + resolve.mockRestore(); + } + }); + it("opens a URI read-only at the target and keeps it out of the saved session", async () => { ctrl = new EditorController(createMemoryBackend({ "/p/App.java": "class App {}\n", [JDT]: TEXT })); ctrl.start(); diff --git a/src/features/debugger/__tests__/actions.test.ts b/src/features/debugger/__tests__/actions.test.ts index 0fe45b753..295b6944e 100644 --- a/src/features/debugger/__tests__/actions.test.ts +++ b/src/features/debugger/__tests__/actions.test.ts @@ -268,3 +268,23 @@ describe("debugger actions (IDEA parity)", () => { expect(useOverlays.getState().evaluate?.expression).toBe("total = order.items\nfor i in x:"); }); }); + +describe("output class breakpoint restrictions", () => { + it.each([ + "debug.toggleBreakpoint", + "debug.toggleTemporaryBreakpoint", + "debug.toggleMethodBreakpoint", + "debug.toggleFieldWatchpoint", + "debug.runToCursor", + "debug.forceRunToCursor", + ])("blocks %s for a source-less output class", async (id) => { + paused(); + const path = "file:///p/target/classes/p/C.class"; + caret(path, "java", "class C {\n int n;\n void run() {}\n}", 2); + await executeAction(id); + expect(breakpointsOf(path)).toHaveLength(0); + expect(useSpecialBreakpoints.getState().methods).toHaveLength(0); + expect(useSpecialBreakpoints.getState().fields).toHaveLength(0); + expect(ipc.debugRunTo).not.toHaveBeenCalled(); + }); +}); diff --git a/src/features/debugger/__tests__/editor.test.ts b/src/features/debugger/__tests__/editor.test.ts index 57d96067d..b975cca61 100644 --- a/src/features/debugger/__tests__/editor.test.ts +++ b/src/features/debugger/__tests__/editor.test.ts @@ -53,6 +53,32 @@ describe("breakpoint gutter", () => { }); }); +describe("output class gutter", () => { + it("disables ordinary, temporary and logging breakpoints and explains why", () => { + loadBreakpoints("/proj"); + const path = "file:///proj/target/classes/C.class"; + const view = new EditorView({ + state: EditorState.create({ + doc: "class C {}", + extensions: [ + lineNumbers(), + breakpointGutter({ ...ctx, path, language: "java", readOnly: true, virtual: true }), + ], + }), + parent: document.body, + }); + views.push(view); + const cell = view.dom.querySelector(".cm-lineNumbers .cm-gutterElement")!; + cell.dispatchEvent(new MouseEvent("mouseover", { bubbles: true })); + expect(cell.closest(".cm-gutters")?.getAttribute("title")).toMatch(/output classes without source code/); + for (const modifier of [{}, { altKey: true }, { shiftKey: true }]) { + cell.dispatchEvent(new MouseEvent("mousedown", { bubbles: true, button: 0, ...modifier })); + cell.dispatchEvent(new MouseEvent("mouseup", { bubbles: true, button: 0, ...modifier })); + } + expect(breakpointsOf(path)).toHaveLength(0); + }); +}); + describe("breakpoint look", () => { it("shows the verified icon only while a session has bound it", () => { const b = { id: "1", line: 0, enabled: true, condition: null, logMessage: null, hitCondition: null }; diff --git a/src/features/debugger/actions.ts b/src/features/debugger/actions.ts index 78a08fe4e..3112affc7 100644 --- a/src/features/debugger/actions.ts +++ b/src/features/debugger/actions.ts @@ -5,6 +5,7 @@ import { downloadJdkActions } from "@/platform/jdk"; import { useProject } from "@/platform/project"; import { activeEditor } from "@/editor/api"; import { maybeEditorService, notifications, showStatusInfo, toolWindowService } from "@/workbench/contributions"; +import { classFileBreakpointReason } from "@/platform/classFiles"; import { canPlaceBreakpoint } from "./breakpoints/languages"; import { removeAllBreakpoints, @@ -75,10 +76,18 @@ function pausedTarget(): { s: DebugSession; thread: number } | null { return thread == null ? null : { s, thread }; } +function breakpointPathAllowed(path: string): boolean { + const reason = classFileBreakpointReason(path); + if (!reason) return true; + showStatusInfo(tx(reason)); + return false; +} + /** Run to Cursor at `line` (0-based) of `path` in the paused session. */ export function runToLine(path: string, line: number) { const t = pausedTarget(); - if (t) void report("Run to Cursor failed", call(commands.debugRunTo(t.s.id, t.thread, path, line, false))); + if (t && breakpointPathAllowed(path)) + void report("Run to Cursor failed", call(commands.debugRunTo(t.s.id, t.thread, path, line, false))); } function notSupported(what: string, s: DebugSession) { @@ -518,7 +527,7 @@ export function registerDebugActions(): () => void { run: () => { const t = pausedTarget(); const c = cursor(); - if (t && c) + if (t && c && breakpointPathAllowed(c.path)) void report("Run to Cursor failed", call(commands.debugRunTo(t.s.id, t.thread, c.path, c.line, false))); }, }, @@ -532,7 +541,7 @@ export function registerDebugActions(): () => void { run: () => { const t = pausedTarget(); const c = cursor(); - if (t && c) + if (t && c && breakpointPathAllowed(c.path)) void report("Force Run to Cursor failed", call(commands.debugRunTo(t.s.id, t.thread, c.path, c.line, true))); }, }, @@ -543,7 +552,7 @@ export function registerDebugActions(): () => void { icon: "breakpoint", run: () => { const c = cursor(); - if (!c) return; + if (!c || !breakpointPathAllowed(c.path)) return; const exists = useBreakpoints.getState().byFile[c.path]?.some((b) => b.line === c.line); const language = activeEditor()?.ctx.language ?? ""; if (!exists && !canPlaceBreakpoint(language)) { @@ -568,7 +577,8 @@ export function registerDebugActions(): () => void { description: "A line breakpoint that is removed after it is hit", run: () => { const c = cursor(); - if (c && canPlaceBreakpoint(activeEditor()?.ctx.language ?? "")) toggleTemporaryBreakpoint(c.path, c.line); + if (c && breakpointPathAllowed(c.path) && canPlaceBreakpoint(activeEditor()?.ctx.language ?? "", c.path)) + toggleTemporaryBreakpoint(c.path, c.line); }, }, { @@ -579,7 +589,7 @@ export function registerDebugActions(): () => void { run: () => { const ed = activeEditor(); const c = cursor(); - if (!ed || !c) return; + if (!ed || !c || !breakpointPathAllowed(c.path)) return; const existing = specialAt(c.path).find((b) => b.kind === "method" && b.line === c.line); const method = methodAt(ed.ctx.language, ed.view.state.doc.toString(), c.line); if (!existing && !method) { @@ -602,7 +612,7 @@ export function registerDebugActions(): () => void { run: () => { const ed = activeEditor(); const c = cursor(); - if (!ed || !c) return; + if (!ed || !c || !breakpointPathAllowed(c.path)) return; const existing = specialAt(c.path).find((b) => b.kind === "field" && b.line === c.line); const field = fieldAt(ed.ctx.language, ed.view.state.doc.toString(), c.line); if (!existing && !field) { diff --git a/src/features/debugger/breakpoints/languages.ts b/src/features/debugger/breakpoints/languages.ts index 1496645db..e532b40d3 100644 --- a/src/features/debugger/breakpoints/languages.ts +++ b/src/features/debugger/breakpoints/languages.ts @@ -3,6 +3,7 @@ * when off, new line breakpoints go only into files of languages that have a * debug adapter (`languages/*.toml` `[debugger]`). */ +import { classFileBreakpointReason } from "@/platform/classFiles"; import { commands, isTauri } from "@/platform/ipc"; import { workflowSettings } from "@/platform/workflowSettings"; @@ -22,7 +23,8 @@ function load() { } /** Whether a new breakpoint may be placed in a file of `language`. */ -export function canPlaceBreakpoint(language: string): boolean { +export function canPlaceBreakpoint(language: string, path = ""): boolean { + if (classFileBreakpointReason(path)) return false; if (workflowSettings().debugger.breakpointsAnyFile) return true; load(); // Until the language list is known, don't block anything. diff --git a/src/features/debugger/editor/breakpointGutter.ts b/src/features/debugger/editor/breakpointGutter.ts index 075dc954b..ada2140ce 100644 --- a/src/features/debugger/editor/breakpointGutter.ts +++ b/src/features/debugger/editor/breakpointGutter.ts @@ -15,6 +15,9 @@ import { updateBreakpoint, useBreakpoints, } from "../breakpoints/store"; +import { classFileBreakpointReason } from "@/platform/classFiles"; +import { tx } from "@/platform/i18n"; +import { showStatusInfo } from "@/workbench/contributions"; import { canPlaceBreakpoint } from "../breakpoints/languages"; import { removeSpecial, @@ -129,6 +132,31 @@ function inBreakpointArea(e: MouseEvent): boolean { } export function breakpointGutter(ctx: EditorDocContext): Extension { + const reason = classFileBreakpointReason(ctx.path); + if (reason) { + const message = tx(reason); + return ViewPlugin.fromClass( + class { + constructor(readonly view: EditorView) { + view.dom.addEventListener("mouseover", this.hover); + view.dom.addEventListener("mousedown", this.down, true); + } + hover = (e: MouseEvent) => { + if (inBreakpointArea(e)) (e.target as HTMLElement).closest(".cm-gutters")?.setAttribute("title", message); + }; + down = (e: MouseEvent) => { + if (!inBreakpointArea(e)) return; + showStatusInfo(message); + }; + destroy() { + this.view.dom.removeEventListener("mouseover", this.hover); + this.view.dom.removeEventListener("mousedown", this.down, true); + const gutters = this.view.dom.querySelector(".cm-gutters"); + if (gutters?.getAttribute("title") === message) gutters.removeAttribute("title"); + } + }, + ); + } const path = ctx.path; const field = StateField.define>({ create: (state) => buildMarkers(state, path), diff --git a/src/features/debugger/editor/runToCursor.ts b/src/features/debugger/editor/runToCursor.ts index f1f3ca7d2..1db51c42c 100644 --- a/src/features/debugger/editor/runToCursor.ts +++ b/src/features/debugger/editor/runToCursor.ts @@ -3,6 +3,7 @@ * line shows a small button left of its text that runs to that line (Resume on * the execution line itself). Settings › Debugger › "Show inlay Run to Cursor popup". */ +import { classFileBreakpointReason } from "@/platform/classFiles"; import type { Extension } from "@codemirror/state"; import { EditorView, ViewPlugin } from "@codemirror/view"; import type { EditorDocContext } from "@/editor/api"; @@ -30,7 +31,7 @@ export function hoveredLine( } export function runToCursorInlay(ctx: EditorDocContext): Extension { - if (ctx.virtual) return []; + if (classFileBreakpointReason(ctx.path) || (ctx.virtual && !ctx.path.startsWith("jdt:"))) return []; const path = ctx.path; return ViewPlugin.fromClass( class { diff --git a/src/platform/classFiles.test.ts b/src/platform/classFiles.test.ts new file mode 100644 index 000000000..a7c869099 --- /dev/null +++ b/src/platform/classFiles.test.ts @@ -0,0 +1,34 @@ +import { describe, expect, it, vi } from "vitest"; +import { classFileBreakpointReason, isClassFile } from "./classFiles"; +import { isVirtualUri } from "./virtualDocs"; +import { canPlaceBreakpoint } from "@/features/debugger/breakpoints/languages"; +vi.mock("@/platform/workflowSettings", () => ({ + workflowSettings: () => ({ debugger: { breakpointsAnyFile: true } }), +})); + +describe("compiled class routing and breakpoint policy", () => { + it.each([ + "/p/target/classes/p/C.class", + "/p/build/classes/java/main/p/C$1.class", + "C:\\p\\out\\C.class", + "file:///p/out/C.class", + ])("disables output breakpoints even with any-file enabled: %s", (path) => { + expect(isClassFile(path)).toBe(true); + expect(classFileBreakpointReason(path)).toBeTruthy(); + expect(canPlaceBreakpoint("java", path)).toBe(false); + }); + it.each([ + "jdt://contents/a.jar/p/C.class?=p/a.jar%3Cp%28C.class", + "jdt://contents/a.jar/p/C.java?=p/a.jar%3Cp%28C.class", + "/p/src/main/java/p/C.java", + ])("keeps source and JDT breakpoints enabled: %s", (path) => { + expect(isClassFile(path)).toBe(false); + expect(classFileBreakpointReason(path)).toBeNull(); + expect(canPlaceBreakpoint("java", path)).toBe(true); + }); + it("treats disk class URIs as read-only server documents", () => { + expect(isVirtualUri("file:///p/out/C.class")).toBe(true); + expect(isVirtualUri("file:///p/src/C.java")).toBe(false); + expect(isClassFile("/m2/a.jar!/p/C.class")).toBe(true); + }); +}); diff --git a/src/platform/classFiles.ts b/src/platform/classFiles.ts new file mode 100644 index 000000000..8af7e7351 --- /dev/null +++ b/src/platform/classFiles.ts @@ -0,0 +1,8 @@ +/** Compiled Java files are resolved before the binary viewer, at every opening entry. */ +export function isClassFile(path: string): boolean { + return !path.startsWith("jdt:") && /\.class$/i.test(path); +} + +export function classFileBreakpointReason(path: string): string | null { + return isClassFile(path) ? "Breakpoints are not supported in output classes without source code." : null; +} diff --git a/src/platform/locales/text/zh.json b/src/platform/locales/text/zh.json index f66b845de..0f69670d7 100644 --- a/src/platform/locales/text/zh.json +++ b/src/platform/locales/text/zh.json @@ -4467,6 +4467,7 @@ "Plan node properties": "计划节点属性", "Values": "值", "Vim rc file": "Vim rc 文件", + "Breakpoints are not supported in output classes without source code.": "输出目录中无源码的类不支持断点。", "Decompiled .class file: sources are not available.": "已反编译的 .class 文件:没有可用的源代码。", "No column of the file matches the table": "文件中没有与该表匹配的列", "Not a URL of PostgreSQL, MySQL, SQLite or a compatible database": "不是 PostgreSQL、MySQL、SQLite 或兼容数据库的 URL", diff --git a/src/platform/virtualDocs.ts b/src/platform/virtualDocs.ts index 8a31ef0ef..f0ced78e8 100644 --- a/src/platform/virtualDocs.ts +++ b/src/platform/virtualDocs.ts @@ -4,12 +4,13 @@ * code). Locations into them carry the URI as their `path`; the editor opens * them as `virtual` editor inputs instead of files. */ +import { isClassFile } from "./classFiles"; import { call, commands, type VirtualDocument } from "./ipc"; -/** True for `scheme:…` URIs other than `file:` (scheme of 2+ chars, so `C:\…` is a path). */ +/** Server document URIs, including decompiled disk classes; drive letters remain paths. */ export function isVirtualUri(s: string | null | undefined): boolean { const m = /^([a-zA-Z][a-zA-Z0-9+.-]+):/.exec(s ?? ""); - return !!m && m[1]!.toLowerCase() !== "file"; + return !!m && (m[1]!.toLowerCase() !== "file" || isClassFile(s!)); } /** Last path segment of a URI (without query / fragment), e.g. `SpringApplication.class`. */ From 1716f3e062fbadab5b7e5dc7408077d8dedba2f5 Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sun, 1 Nov 2026 15:14:13 +0800 Subject: [PATCH 10/27] feat(diff): compare directories and synchronize entries (#661) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two folders can now be compared from the project view (Compare Directories with two folders selected, or Compare With… on one folder, also in Find Action). The result tree marks entries as only on left, only on right, contents differ or identical, with a name filter and a show-identical toggle; double-click opens the existing diff editor, and files or whole subdirectories can be copied to either side (overwrite and delete ask first, extra files in the target are kept). Comparison runs in the background with progress and cancel, honours the project's exclusions, and works for remote projects through the same file commands. The comparison tree and diff preview are shared with the Git folder/revision comparison. Verified on macOS (subdirectories, Chinese names, binary files, copy both ways, delete, cancel on large files); Windows and Linux not run. Fixes #520 --- crates/ide-host/src/ops/fs.rs | 67 ++- crates/ide-host/src/rpc.rs | 23 + crates/ide-host/tests/rpc.rs | 33 ++ crates/ide-vfs/src/compare.rs | 505 ++++++++++++++++++ crates/ide-vfs/src/lib.rs | 4 + src-tauri/src/commands/fs.rs | 32 ++ src-tauri/src/commands/mod.rs | 3 + src/bindings.ts | 22 + src/features/project-tree/contextMenu.test.ts | 11 +- src/features/project-tree/contextMenu.ts | 16 +- src/features/vcs/ComparisonTree.tsx | 78 +++ src/features/vcs/DiffEditor.tsx | 23 +- src/features/vcs/DirectoryCompare.tsx | 291 ++++++++++ .../vcs/__tests__/diffToolbar.test.tsx | 15 + .../vcs/__tests__/directoryCompare.test.tsx | 179 +++++++ .../__tests__/directoryCompareActions.test.ts | 95 ++++ src/features/vcs/__tests__/fileTree.test.ts | 17 + src/features/vcs/common.module.css | 11 + src/features/vcs/compare.tsx | 72 ++- src/features/vcs/compareData.ts | 16 + src/features/vcs/fileTree.ts | 18 +- src/features/vcs/operations.tsx | 75 +-- src/platform/locales/text/zh.json | 33 +- 23 files changed, 1552 insertions(+), 87 deletions(-) create mode 100644 crates/ide-vfs/src/compare.rs create mode 100644 src/features/vcs/ComparisonTree.tsx create mode 100644 src/features/vcs/DirectoryCompare.tsx create mode 100644 src/features/vcs/__tests__/directoryCompare.test.tsx create mode 100644 src/features/vcs/__tests__/directoryCompareActions.test.ts create mode 100644 src/features/vcs/compareData.ts diff --git a/crates/ide-host/src/ops/fs.rs b/crates/ide-host/src/ops/fs.rs index 10681ca31..fb55f6f0f 100644 --- a/crates/ide-host/src/ops/fs.rs +++ b/crates/ide-host/src/ops/fs.rs @@ -1,8 +1,73 @@ +use super::Channel; use crate::Host; -use ide_core::IdeResult; +use ide_core::{IdeResult, RequestId}; use ide_vfs::FileEntry; use std::path::PathBuf; +pub async fn entry_kind(host: &Host, path: PathBuf) -> IdeResult { + host.blocking(move || { + let meta = std::fs::metadata(path)?; + Ok(if meta.is_dir() { ide_vfs::EntryKind::Dir } else { ide_vfs::EntryKind::File }) + }) + .await +} + +pub async fn compare_directories( + host: &Host, + window: &str, + left: PathBuf, + right: PathBuf, + request: RequestId, + on_progress: Channel, +) -> IdeResult> { + let project = host.project(window)?; + let cancel = host.begin_request(request); + let result = host + .blocking(move || { + let last = std::cell::Cell::new(std::time::Instant::now() - std::time::Duration::from_secs(1)); + ide_vfs::compare_directories(&left, &right, Some(&project.root), &project.exclude_globs(), &cancel, |p| { + // Bound IPC traffic even when hashing multi-gigabyte files. + if last.get().elapsed() >= std::time::Duration::from_millis(80) || p.total == Some(p.compared) { + let _ = on_progress.send(p); + last.set(std::time::Instant::now()); + } + }) + }) + .await; + host.end_request(request); + result +} + +pub async fn copy_merge( + host: &Host, + window: &str, + source_root: PathBuf, + destination_root: PathBuf, + path: PathBuf, + overwrite: bool, +) -> IdeResult<()> { + if path.as_os_str().is_empty() || path.components().any(|c| !matches!(c, std::path::Component::Normal(_))) { + return Err(ide_core::IdeError::invalid("expected a relative comparison entry path")); + } + let project = host.project(window)?; + host.blocking(move || { + let from = source_root.join(&path); + let to = destination_root.join(&path); + if overwrite { + project.history.record_deletion(&to, DELETE_SNAPSHOT_LIMIT); + } + ide_vfs::copy_merge( + &from, + &to, + overwrite, + Some(&project.root), + &project.exclude_globs(), + (&source_root, &destination_root), + ) + }) + .await +} + /// Files of a deleted folder snapshotted in Local History. const DELETE_SNAPSHOT_LIMIT: usize = 2000; diff --git a/crates/ide-host/src/rpc.rs b/crates/ide-host/src/rpc.rs index e34db1e4a..78605b1e0 100644 --- a/crates/ide-host/src/rpc.rs +++ b/crates/ide-host/src/rpc.rs @@ -179,6 +179,7 @@ impl Dispatcher { }) .add("cancel_task", |c| async move { Ok(ide_core::task::cancel(c.arg::("id")?)) }) .add("fs_read_dir", |c| async move { ops::fs::read_dir(&c.host, &c.window, c.arg("path")?) }) + .add("fs_entry_kind", |c| async move { ops::fs::entry_kind(&c.host, c.arg("path")?).await }) .add("fs_create_file", |c| async move { ops::fs::create_file(&c.host, &c.window, c.arg("path")?) }) .add("fs_create_file_bytes", |c| async move { ops::fs::create_file_bytes(&c.host, c.arg("path")?, c.arg("data")?).await @@ -190,6 +191,28 @@ impl Dispatcher { }) .add("fs_delete", |c| async move { ops::fs::delete(&c.host, &c.window, c.arg("path")?).await }) .add("fs_copy", |c| async move { ops::fs::copy(&c.host, c.arg("from")?, c.arg("to")?).await }) + .add("fs_copy_merge", |c| async move { + ops::fs::copy_merge( + &c.host, + &c.window, + c.arg("sourceRoot")?, + c.arg("destinationRoot")?, + c.arg("path")?, + c.arg("overwrite")?, + ) + .await + }) + .add("fs_compare_directories", |c| async move { + ops::fs::compare_directories( + &c.host, + &c.window, + c.arg("left")?, + c.arg("right")?, + c.arg("request")?, + c.sender("onProgress")?, + ) + .await + }) .add("fs_read_text", |c| async move { ops::fs::read_text(&c.host, &c.window, c.arg("path")?).await }) .add("doc_open", |c| async move { ops::doc::open(&c.host, &c.window, c.arg("path")?).await }) .add("doc_close", |c| async move { ops::doc::close(&c.host, &c.window, c.arg("doc")?) }) diff --git a/crates/ide-host/tests/rpc.rs b/crates/ide-host/tests/rpc.rs index d16f408fc..58e4ede39 100644 --- a/crates/ide-host/tests/rpc.rs +++ b/crates/ide-host/tests/rpc.rs @@ -94,6 +94,39 @@ async fn serves_projects_files_documents_search_and_runs() { let entries = invoke(&peer, "fs_read_dir", json!({ "path": project })).await.unwrap(); assert!(entries.as_array().unwrap().iter().any(|e| e["name"] == "src"), "{entries}"); + // Directory comparisons, streamed progress and confirmed copies share the remote filesystem. + let left = project.join("compare-left"); + let right = project.join("compare-right"); + std::fs::create_dir_all(&left).unwrap(); + std::fs::create_dir_all(&right).unwrap(); + std::fs::write(left.join("中文.bin"), [0, 255, 1]).unwrap(); + std::fs::write(right.join("中文.bin"), [0, 254, 1]).unwrap(); + assert_eq!(invoke(&peer, "fs_entry_kind", json!({"path": left})).await.unwrap(), "dir"); + assert_eq!(invoke(&peer, "fs_entry_kind", json!({"path": left.join("中文.bin")})).await.unwrap(), "file"); + let compare_args = + |request| json!({"left": left, "right": right, "request": request, "onProgress": {"$channel": 520}}); + let rows = invoke(&peer, "fs_compare_directories", compare_args(520)).await.unwrap(); + assert_eq!(rows[0]["status"], "different"); + assert!(client.channels.lock().iter().any(|c| c.id == 520 && c.data["compared"] == 1)); + let copy_args = + |overwrite| json!({"sourceRoot": left, "destinationRoot": right, "path": "中文.bin", "overwrite": overwrite}); + let error = invoke(&peer, "fs_copy_merge", copy_args(false)).await.unwrap_err(); + assert_eq!(error.kind, ide_core::error::ErrorKind::AlreadyExists); + invoke(&peer, "fs_copy_merge", copy_args(true)).await.unwrap(); + let rows = invoke(&peer, "fs_compare_directories", compare_args(521)).await.unwrap(); + assert_eq!(rows[0]["status"], "equal"); + invoke(&peer, "cancel_request", json!({"id": 522})).await.unwrap(); + let error = invoke(&peer, "fs_compare_directories", compare_args(522)).await.unwrap_err(); + assert_eq!(error.kind, ide_core::error::ErrorKind::Cancelled); + let error = invoke( + &peer, + "fs_copy_merge", + json!({"sourceRoot": left, "destinationRoot": right, "path": "../escape", "overwrite": true}), + ) + .await + .unwrap_err(); + assert_eq!(error.kind, ide_core::error::ErrorKind::InvalidInput); + // JVM icons use the same read-only protocol as local windows. let java = project.join("src/Foo.java"); let kotlin = project.join("src/Singleton.kt"); diff --git a/crates/ide-vfs/src/compare.rs b/crates/ide-vfs/src/compare.rs new file mode 100644 index 000000000..8f29b1008 --- /dev/null +++ b/crates/ide-vfs/src/compare.rs @@ -0,0 +1,505 @@ +//! Disk comparisons use the same excludes and layered ignore files as the project tree. +use crate::{EntryKind, ExcludeMatcher, rules::GitignoreStack}; +use ide_core::{CancellationToken, IdeError, IdeResult}; +use serde::{Deserialize, Serialize}; +use specta::Type; +use std::collections::BTreeMap; +use std::fs; +use std::io::Read; +use std::path::{Path, PathBuf}; + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize, Type)] +#[serde(rename_all = "camelCase")] +pub enum DirectoryCompareStatus { + LeftOnly, + RightOnly, + Different, + Equal, +} + +#[derive(Clone, Debug, Serialize, Deserialize, Type)] +#[serde(rename_all = "camelCase")] +pub struct DirectoryCompareEntry { + pub path: String, + pub status: DirectoryCompareStatus, + pub left_kind: Option, + pub right_kind: Option, + #[specta(optional)] + pub left_link: Option, + #[specta(optional)] + pub right_link: Option, +} + +#[derive(Clone, Debug, Default, Serialize, Deserialize, Type)] +#[serde(rename_all = "camelCase")] +pub struct DirectoryCompareProgress { + pub scanned: u32, + pub compared: u32, + pub total: Option, + pub bytes_read: f64, + pub path: String, +} + +struct Entry { + kind: EntryKind, + size: u64, + link: Option, +} + +fn check(cancel: &CancellationToken) -> IdeResult<()> { + if cancel.is_cancelled() { Err(IdeError::cancelled()) } else { Ok(()) } +} + +struct Rules { + base: PathBuf, + excludes: ExcludeMatcher, + ignore: GitignoreStack, +} + +impl Rules { + fn new(root: &Path, project: Option<&Path>, excludes: &[String]) -> Self { + Self { + base: project.filter(|p| root.starts_with(p)).unwrap_or(root).to_path_buf(), + excludes: ExcludeMatcher::new(excludes), + ignore: GitignoreStack::new(root), + } + } + + fn excluded(&self, path: &Path, dir: bool) -> bool { + path.file_name().is_some_and(|n| n == ".git") + || self.excludes.is_excluded(path.strip_prefix(&self.base).unwrap_or(path)) + || self.ignore.is_ignored(path, dir) + } +} + +fn scan( + root: &Path, + rules: &Rules, + cancel: &CancellationToken, + progress: &mut DirectoryCompareProgress, + emit: &impl Fn(DirectoryCompareProgress), +) -> IdeResult> { + if !fs::metadata(root)?.is_dir() { + return Err(IdeError::invalid(format!("{} is not a directory", root.display()))); + } + let mut result = BTreeMap::new(); + let mut pending = vec![root.to_path_buf()]; + while let Some(dir) = pending.pop() { + check(cancel)?; + for item in fs::read_dir(dir)? { + check(cancel)?; + let path = item?.path(); + let meta = fs::symlink_metadata(&path)?; + if rules.excluded(&path, meta.is_dir()) { + continue; + } + let kind = if meta.file_type().is_symlink() { + EntryKind::Symlink + } else if meta.is_dir() { + pending.push(path.clone()); + EntryKind::Dir + } else if meta.is_file() { + EntryKind::File + } else { + continue; + }; + let rel = path.strip_prefix(root).map_err(|e| IdeError::internal(e.to_string()))?; + let rel = ide_core::ipc_path::to_ipc(rel); + let link = if kind == EntryKind::Symlink { Some(fs::read_link(&path)?) } else { None }; + result.insert(rel.clone(), Entry { kind, size: meta.len(), link }); + progress.scanned += 1; + progress.path = rel; + emit(progress.clone()); + } + } + Ok(result) +} + +fn hash( + path: &Path, + cancel: &CancellationToken, + progress: &mut DirectoryCompareProgress, + emit: &impl Fn(DirectoryCompareProgress), +) -> IdeResult { + let mut file = fs::File::open(path)?; + let mut hash = gix::hash::hasher(gix::hash::Kind::Sha256); + let mut buffer = [0; 64 * 1024]; + loop { + check(cancel)?; + let len = file.read(&mut buffer)?; + if len == 0 { + break; + } + hash.update(&buffer[..len]); + progress.bytes_read += len as f64; + emit(progress.clone()); + } + hash.try_finalize().map_err(|e| IdeError::internal(e.to_string())) +} + +/// Size checks avoid reading unequal files. Equal-sized files are hashed in bounded, +/// cancellable chunks; symlinks compare their link text and are never traversed. +pub fn compare_directories( + left: &Path, + right: &Path, + project: Option<&Path>, + excludes: &[String], + cancel: &CancellationToken, + emit: impl Fn(DirectoryCompareProgress), +) -> IdeResult> { + check(cancel)?; + let mut progress = DirectoryCompareProgress::default(); + emit(progress.clone()); + let l = scan(left, &Rules::new(left, project, excludes), cancel, &mut progress, &emit)?; + let r = scan(right, &Rules::new(right, project, excludes), cancel, &mut progress, &emit)?; + let mut paths: Vec<_> = l.keys().chain(r.keys()).cloned().collect(); + paths.sort(); + paths.dedup(); + progress.total = Some(paths.len() as u32); + let mut rows = BTreeMap::new(); + for path in paths { + check(cancel)?; + progress.path.clone_from(&path); + let status = match (l.get(&path), r.get(&path)) { + (Some(_), None) => DirectoryCompareStatus::LeftOnly, + (None, Some(_)) => DirectoryCompareStatus::RightOnly, + (Some(a), Some(b)) => { + let equal = a.kind == b.kind + && match a.kind { + EntryKind::Dir => true, + EntryKind::Symlink => a.link == b.link, + EntryKind::File => { + a.size == b.size + && hash(&left.join(&path), cancel, &mut progress, &emit)? + == hash(&right.join(&path), cancel, &mut progress, &emit)? + } + }; + if equal { DirectoryCompareStatus::Equal } else { DirectoryCompareStatus::Different } + } + _ => unreachable!(), + }; + rows.insert( + path.clone(), + DirectoryCompareEntry { + path: path.clone(), + status, + left_kind: l.get(&path).map(|e| e.kind), + right_kind: r.get(&path).map(|e| e.kind), + left_link: l.get(&path).and_then(|e| e.link.as_ref()).map(|p| p.to_string_lossy().into_owned()), + right_link: r.get(&path).and_then(|e| e.link.as_ref()).map(|p| p.to_string_lossy().into_owned()), + }, + ); + progress.compared += 1; + emit(progress.clone()); + } + let changed: Vec<_> = + rows.values().filter(|r| r.status != DirectoryCompareStatus::Equal).map(|r| r.path.clone()).collect(); + for path in changed { + for parent in Path::new(&path).ancestors().skip(1) { + if let Some(row) = rows.get_mut(&ide_core::ipc_path::to_ipc(parent)) + && row.status == DirectoryCompareStatus::Equal + { + row.status = DirectoryCompareStatus::Different; + } + } + } + check(cancel)?; + Ok(rows.into_values().collect()) +} + +/// Merges a subtree without following links inside the comparison roots. Existing files +/// require explicit overwrite; directory merges preserve destination-only entries. +pub fn copy_merge( + from: &Path, + to: &Path, + overwrite: bool, + project: Option<&Path>, + excludes: &[String], + roots: (&Path, &Path), +) -> IdeResult<()> { + fn resolve(path: &Path) -> IdeResult { + if path.exists() { + return Ok(dunce::canonicalize(path)?); + } + let parent = path.parent().ok_or_else(|| IdeError::invalid("copy requires an absolute path"))?; + Ok(resolve(parent)?.join(path.file_name().ok_or_else(|| IdeError::invalid("missing file name"))?)) + } + if !from.is_absolute() || !to.is_absolute() { + return Err(IdeError::invalid("copy requires absolute paths")); + } + if !from.starts_with(roots.0) || !to.starts_with(roots.1) { + return Err(IdeError::invalid("copy paths must belong to the comparison roots")); + } + let source = resolve(from)?; + let target = resolve(to)?; + if source.starts_with(&target) || target.starts_with(&source) { + return Err(IdeError::invalid("cannot copy overlapping paths")); + } + for parent in to.ancestors().skip(1) { + // The user explicitly selected this root; aliases above it (e.g. /tmp + // on macOS) are valid. Links inside the copied subtree are not followed. + if to == roots.1 || parent == roots.1 { + break; + } + if fs::symlink_metadata(parent).is_ok_and(|m| m.file_type().is_symlink()) { + return Err(IdeError::invalid("cannot copy through a destination symlink")); + } + } + let source_base = project.filter(|p| from.starts_with(p)).or(Some(roots.0)); + let target_base = project.filter(|p| to.starts_with(p)).or(Some(roots.1)); + let rules = Rules::new(from, source_base, excludes); + let target_rules = Rules::new(to, target_base, excludes); + let mut pending = vec![(from.to_path_buf(), to.to_path_buf())]; + while let Some((src, dst)) = pending.pop() { + let meta = fs::symlink_metadata(&src)?; + if rules.excluded(&src, meta.is_dir()) || target_rules.excluded(&dst, meta.is_dir()) { + continue; + } + let existing = fs::symlink_metadata(&dst).ok(); + let merge = meta.is_dir() && existing.as_ref().is_some_and(|m| m.is_dir()); + if existing.is_some() && !merge && !overwrite { + return Err(std::io::Error::new(std::io::ErrorKind::AlreadyExists, dst.display().to_string()).into()); + } + if meta.is_dir() { + if existing.is_some() && !merge { + crate::delete(&dst)?; + } + fs::create_dir_all(&dst)?; + for entry in fs::read_dir(&src)? { + let entry = entry?; + pending.push((entry.path(), dst.join(entry.file_name()))); + } + } else { + if let Some(parent) = dst.parent() { + fs::create_dir_all(parent)?; + } + // Stage the complete file before touching its destination. + static NEXT: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0); + let id = NEXT.fetch_add(1, std::sync::atomic::Ordering::Relaxed); + let temp = dst.with_file_name(format!(".openidea-copy-{}-{id}", std::process::id())); + let mut staged = false; + let result: IdeResult<()> = (|| { + #[cfg(windows)] + if meta.file_type().is_symlink() { + use std::os::windows::fs::{FileTypeExt, symlink_dir, symlink_file}; + let target = fs::read_link(&src)?; + if meta.file_type().is_symlink_dir() { + symlink_dir(target, &temp)?; + } else { + symlink_file(target, &temp)?; + } + } else { + crate::copy(&src, &temp)?; + } + #[cfg(not(windows))] + crate::copy(&src, &temp)?; + staged = true; + // Recheck after staging: another writer may have created the target. + if fs::symlink_metadata(&dst).is_ok() { + if !overwrite { + return Err( + std::io::Error::new(std::io::ErrorKind::AlreadyExists, dst.display().to_string()).into() + ); + } + crate::delete(&dst)?; + } + fs::rename(&temp, &dst)?; + Ok(()) + })(); + if let Err(error) = &result + && (staged || error.kind != ide_core::error::ErrorKind::AlreadyExists) + { + let _ = crate::delete_permanently(&temp); + } + result?; + } + } + Ok(()) +} + +#[cfg(test)] +mod tests { + use super::*; + use ide_core::error::ErrorKind; + + fn put(root: &Path, path: &str, content: &[u8]) { + let path = root.join(path); + fs::create_dir_all(path.parent().unwrap()).unwrap(); + fs::write(path, content).unwrap(); + } + + #[test] + fn reports_add_delete_modify_equal_binary_unicode_empty_and_type_conflicts() { + let tmp = tempfile::tempdir().unwrap(); + let left = tmp.path().join("left"); + let right = tmp.path().join("right"); + put(&left, "子目录/仅左.txt", b"left"); + put(&right, "only-right", b"right"); + for (path, a, b) in [ + ("same", b"same".as_slice(), b"same".as_slice()), + ("binary", &[0, 255, 10], &[0, 254, 10]), + ("size", b"a", b"bb"), + ("conflict", b"file", b""), + ] { + put(&left, path, a); + if path == "conflict" { + put(&right, "conflict/child", b"child"); + } else { + put(&right, path, b); + } + } + fs::create_dir(left.join("empty")).unwrap(); + fs::create_dir(right.join("empty")).unwrap(); + let rows = compare_directories(&left, &right, None, &[], &CancellationToken::new(), |_| {}).unwrap(); + let status = |path| rows.iter().find(|r| r.path == path).unwrap().status; + assert_eq!(status("same"), DirectoryCompareStatus::Equal); + assert_eq!(status("empty"), DirectoryCompareStatus::Equal); + for path in ["binary", "size", "conflict"] { + assert_eq!(status(path), DirectoryCompareStatus::Different); + } + assert_eq!(status("子目录/仅左.txt"), DirectoryCompareStatus::LeftOnly); + assert_eq!(status("only-right"), DirectoryCompareStatus::RightOnly); + assert_eq!(status("conflict/child"), DirectoryCompareStatus::RightOnly); + } + + #[test] + fn applies_project_anchored_excludes_and_layered_ignores() { + let tmp = tempfile::tempdir().unwrap(); + let left = tmp.path().join("left"); + let right = tmp.path().join("right"); + for root in [&left, &right] { + put(root, "nested/node_modules/x", b"ignored"); + put(root, "target/x", b"ignored"); + put(root, ".git/config", b"ignored"); + put(root, "generated/x", b"ignored"); + put(root, ".gitignore", b"*.log\n"); + put(root, "nested/debug.log", b"ignored"); + put(root, "kept", b"kept"); + } + let excludes = ["**/node_modules", "**/target", "/left/generated", "/right/generated"].map(String::from); + let rows = + compare_directories(&left, &right, Some(tmp.path()), &excludes, &CancellationToken::new(), |_| {}).unwrap(); + assert!( + rows.iter() + .all(|r| !["node_modules", "target", ".git/", "generated", ".log"].iter().any(|p| r.path.contains(p))) + ); + assert!(rows.iter().any(|r| r.path == "kept")); + } + + #[test] + fn cancellation_stops_before_scan_during_scan_and_during_hashing() { + let tmp = tempfile::tempdir().unwrap(); + let left = tmp.path().join("left"); + let right = tmp.path().join("right"); + put(&left, "big", &vec![1; 1024 * 1024]); + put(&right, "big", &vec![1; 1024 * 1024]); + for phase in 0..3 { + let cancel = CancellationToken::new(); + if phase == 0 { + cancel.cancel(); + } + let result = compare_directories(&left, &right, None, &[], &cancel, |p| { + if phase == 1 && p.scanned > 0 || phase == 2 && p.bytes_read > 0.0 { + cancel.cancel(); + } + }); + assert_eq!(result.unwrap_err().kind, ErrorKind::Cancelled); + } + } + + #[test] + fn size_mismatches_are_not_hashed_and_directory_status_tracks_children() { + let tmp = tempfile::tempdir().unwrap(); + let left = tmp.path().join("left"); + let right = tmp.path().join("right"); + put(&left, "nested/file", b"a"); + put(&right, "nested/file", b"ab"); + let bytes = std::cell::Cell::new(0.0); + let rows = + compare_directories(&left, &right, None, &[], &CancellationToken::new(), |p| bytes.set(p.bytes_read)) + .unwrap(); + assert_eq!(bytes.get(), 0.0); + assert!(rows.iter().all(|r| r.status == DirectoryCompareStatus::Different)); + } + + #[test] + fn merges_copies_with_explicit_overwrite_and_keeps_destination_only_files() { + let tmp = tempfile::tempdir().unwrap(); + let left = tmp.path().join("left"); + let right = tmp.path().join("right"); + put(&left, "file", b"new"); + put(&left, "target/ignored", b"ignored"); + put(&right, "file", b"old"); + put(&right, "keep", b"keep"); + assert_eq!( + copy_merge(&left, &right, false, None, &["target".into()], (&left, &right)).unwrap_err().kind, + ErrorKind::AlreadyExists + ); + assert_eq!(fs::read(right.join("file")).unwrap(), b"old"); + copy_merge(&left, &right, true, None, &["target".into()], (&left, &right)).unwrap(); + assert_eq!(fs::read(right.join("file")).unwrap(), b"new"); + assert_eq!(fs::read(right.join("keep")).unwrap(), b"keep"); + assert!(!right.join("target").exists()); + for (from, to) in [(&left, left.clone()), (&left, left.join("child")), (&right, tmp.path().to_path_buf())] { + assert_eq!( + copy_merge(from, &to, true, None, &[], (tmp.path(), tmp.path())).unwrap_err().kind, + ErrorKind::InvalidInput + ); + } + } + + #[test] + fn subtree_copy_keeps_excludes_anchored_to_each_comparison_root() { + let tmp = tempfile::tempdir().unwrap(); + let left = tmp.path().join("left"); + let right = tmp.path().join("right"); + put(&left, "sub/build/keep", b"included below sub"); + put(&left, "sub/protected", b"do not overwrite"); + put(&right, "sub/protected", b"keep destination"); + put(&right, ".gitignore", b"sub/protected\n"); + copy_merge(&left.join("sub"), &right.join("sub"), true, None, &["/build".into()], (&left, &right)).unwrap(); + assert_eq!(fs::read(right.join("sub/build/keep")).unwrap(), b"included below sub"); + assert_eq!(fs::read(right.join("sub/protected")).unwrap(), b"keep destination"); + } + + #[test] + fn confirmed_copy_replaces_file_directory_type_conflicts() { + let tmp = tempfile::tempdir().unwrap(); + let left = tmp.path().join("left"); + let right = tmp.path().join("right"); + put(&left, "file", b"file"); + put(&right, "file/child", b"old directory"); + put(&left, "tree/child", b"new directory"); + put(&right, "tree", b"old file"); + for path in ["file", "tree"] { + copy_merge(&left.join(path), &right.join(path), true, None, &[], (&left, &right)).unwrap(); + } + assert_eq!(fs::read(right.join("file")).unwrap(), b"file"); + assert_eq!(fs::read(right.join("tree/child")).unwrap(), b"new directory"); + } + + #[cfg(unix)] + #[test] + fn symlinks_compare_link_text_and_are_not_followed_when_copying() { + use std::os::unix::fs::symlink; + let tmp = tempfile::tempdir().unwrap(); + let left = tmp.path().join("left"); + let right = tmp.path().join("right"); + fs::create_dir(&left).unwrap(); + fs::create_dir(&right).unwrap(); + symlink(".", left.join("loop")).unwrap(); + symlink("missing", right.join("loop")).unwrap(); + let rows = compare_directories(&left, &right, None, &[], &CancellationToken::new(), |_| {}).unwrap(); + assert_eq!(rows.len(), 1); + assert_eq!(rows[0].status, DirectoryCompareStatus::Different); + copy_merge(&left.join("loop"), &right.join("copied"), false, None, &[], (&left, &right)).unwrap(); + assert_eq!(fs::read_link(right.join("copied")).unwrap(), PathBuf::from(".")); + symlink(&right, tmp.path().join("alias")).unwrap(); + assert_eq!( + copy_merge(&left.join("loop"), &tmp.path().join("alias/new"), true, None, &[], (tmp.path(), tmp.path())) + .unwrap_err() + .kind, + ErrorKind::InvalidInput + ); + } +} diff --git a/crates/ide-vfs/src/lib.rs b/crates/ide-vfs/src/lib.rs index 55c28b71b..6ac24e21b 100644 --- a/crates/ide-vfs/src/lib.rs +++ b/crates/ide-vfs/src/lib.rs @@ -2,6 +2,7 @@ mod archive; mod bytes; +mod compare; mod encoding; mod ops; mod rules; @@ -20,6 +21,9 @@ pub use archive::{ read_archive_entry, split_archive_path, }; pub use bytes::{ByteRange, FileProbe, MAX_RANGE_LEN, base64, image_mime, probe, read_data_url, read_range}; +pub use compare::{ + DirectoryCompareEntry, DirectoryCompareProgress, DirectoryCompareStatus, compare_directories, copy_merge, +}; use encoding::SNIFF_LEN; pub use encoding::{ LARGE_FILE_THRESHOLD, MAX_OPEN_SIZE, READ_ONLY_THRESHOLD, decode_properties_escapes, encode, diff --git a/src-tauri/src/commands/fs.rs b/src-tauri/src/commands/fs.rs index 5ff8d0f10..efa29a9b5 100644 --- a/src-tauri/src/commands/fs.rs +++ b/src-tauri/src/commands/fs.rs @@ -5,6 +5,38 @@ use ide_vfs::FileEntry; use std::path::PathBuf; use tauri::{State, Window}; +#[tauri::command] +#[specta::specta] +pub async fn fs_entry_kind(state: State<'_, AppState>, path: PathBuf) -> IdeResult { + fs::entry_kind(&state.host, path).await +} + +#[tauri::command] +#[specta::specta] +pub async fn fs_compare_directories( + window: Window, + state: State<'_, AppState>, + left: PathBuf, + right: PathBuf, + request: ide_core::RequestId, + on_progress: tauri::ipc::Channel, +) -> IdeResult> { + fs::compare_directories(&state.host, window.label(), left, right, request, super::sender(on_progress)).await +} + +#[tauri::command] +#[specta::specta] +pub async fn fs_copy_merge( + window: Window, + state: State<'_, AppState>, + source_root: PathBuf, + destination_root: PathBuf, + path: PathBuf, + overwrite: bool, +) -> IdeResult<()> { + fs::copy_merge(&state.host, window.label(), source_root, destination_root, path, overwrite).await +} + #[tauri::command] #[specta::specta] pub fn fs_read_dir(window: Window, state: State<'_, AppState>, path: PathBuf) -> IdeResult> { diff --git a/src-tauri/src/commands/mod.rs b/src-tauri/src/commands/mod.rs index ab121db65..c71ce8405 100644 --- a/src-tauri/src/commands/mod.rs +++ b/src-tauri/src/commands/mod.rs @@ -126,6 +126,7 @@ pub fn builder() -> tauri_specta::Builder { notebook::notebook_interrupt, notebook::notebook_restart, fs::fs_read_dir, + fs::fs_entry_kind, bytes::fs_probe, bytes::fs_read_range, bytes::fs_read_image, @@ -136,6 +137,8 @@ pub fn builder() -> tauri_specta::Builder { fs::fs_set_writable, fs::fs_delete, fs::fs_copy, + fs::fs_copy_merge, + fs::fs_compare_directories, fs::fs_read_text, clipboard::clipboard_file_list, clipboard::clipboard_has_files, diff --git a/src/bindings.ts b/src/bindings.ts index 79eba7f80..97ce05285 100644 --- a/src/bindings.ts +++ b/src/bindings.ts @@ -145,6 +145,7 @@ export const commands = { notebookInterrupt: (id: string) => typedError(__TAURI_INVOKE("notebook_interrupt", { id })), notebookRestart: (id: string) => typedError(__TAURI_INVOKE("notebook_restart", { id })), fsReadDir: (path: string) => typedError(__TAURI_INVOKE("fs_read_dir", { path })), + fsEntryKind: (path: string) => typedError(__TAURI_INVOKE("fs_entry_kind", { path })), /** Size and text/binary classification, from the file's head only. */ fsProbe: (path: string) => typedError(__TAURI_INVOKE("fs_probe", { path })), /** Up to `len` bytes from `offset` (capped per call), base64-encoded. */ @@ -167,6 +168,8 @@ export const commands = { /** Moving to the trash can take a while (large trees): kept off the main thread. */ fsDelete: (path: string) => typedError(__TAURI_INVOKE("fs_delete", { path })), fsCopy: (from: string, to: string) => typedError(__TAURI_INVOKE("fs_copy", { from, to })), + fsCopyMerge: (sourceRoot: string, destinationRoot: string, path: string, overwrite: boolean) => typedError(__TAURI_INVOKE("fs_copy_merge", { sourceRoot, destinationRoot, path, overwrite })), + fsCompareDirectories: (left: string, right: string, request: RequestId, onProgress: Channel) => typedError(__TAURI_INVOKE("fs_compare_directories", { left, right, request, onProgress })), /** * Reads a text file without opening it as a document (previews, quick * definition). Prefers the unsaved buffer when the file is open. @@ -2513,6 +2516,25 @@ export type Diagnostic = { server?: string | null, }; +export type DirectoryCompareEntry = { + path: string, + status: DirectoryCompareStatus, + leftKind: EntryKind | null, + rightKind: EntryKind | null, + leftLink?: string | null, + rightLink?: string | null, +}; + +export type DirectoryCompareProgress = { + scanned: number, + compared: number, + total: number | null, + bytesRead: number | null, + path: string, +}; + +export type DirectoryCompareStatus = "leftOnly" | "rightOnly" | "different" | "equal"; + /** Changes under a folder (Show History on a directory). */ export type DirectoryHistory = { /** Snapshots of files under the folder and labels, newest first. */ diff --git a/src/features/project-tree/contextMenu.test.ts b/src/features/project-tree/contextMenu.test.ts index 622ddf3b0..d3f18a6d5 100644 --- a/src/features/project-tree/contextMenu.test.ts +++ b/src/features/project-tree/contextMenu.test.ts @@ -40,6 +40,7 @@ const OTHER_ACTIONS = [ "localHistory.putLabel", "diff.compareWith", "diff.compareFiles", + "diff.compareDirectories", "vcs.commit", "vcs.addToVcs", "vcs.annotate", @@ -75,6 +76,14 @@ afterEach(() => { }); describe("project view context menu", () => { + it("offers directory comparison only for two folders and Compare With for a single folder", () => { + expect(labels(contextMenuItems([node("/p/left", true), node("/p/right", true)]))).toContain("Compare Directories"); + expect(labels(contextMenuItems([node("/p/left", true)]))).toContain("Compare With…"); + const mixed = labels(contextMenuItems([node("/p/left", true), node("/p/a.txt")])); + for (const label of ["Compare Directories", "Compare Files", "Compare With…"]) expect(mixed).not.toContain(label); + expect(labels(contextMenuItems([node("/p/a.txt"), node("/p/b.txt")]))).toContain("Compare Files"); + }); + it("follows IDEA's order for a file", () => { const items = contextMenuItems([node(`${ROOT}/src/a.py`)]); expect(labels(items)).toEqual([ @@ -161,7 +170,7 @@ describe("project view context menu", () => { const l = labels(contextMenuItems([node(`${ROOT}/src`, true)])); expect(l).toContain("Mark Directory as"); expect(sub(contextMenuItems([node(`${ROOT}/src`, true)]), "Refactor")).toContain("Move Directory…"); - for (const fileOnly of ["Find Usages", "Reformat Code", "Optimize Imports", "Compare With…", "Run 'a'"]) + for (const fileOnly of ["Find Usages", "Reformat Code", "Optimize Imports", "Run 'a'"]) expect(l).not.toContain(fileOnly); }); diff --git a/src/features/project-tree/contextMenu.ts b/src/features/project-tree/contextMenu.ts index 1b35cf483..9775c9b4c 100644 --- a/src/features/project-tree/contextMenu.ts +++ b/src/features/project-tree/contextMenu.ts @@ -361,7 +361,17 @@ export function contextMenuItems(nodes: ProjectNode[]): MenuItem[] { ); } - // IDEA: Compare With… (one file) / Compare Files (two files). + // Compare selections of the same kind; mixed file/folder selections cannot apply. + const compareArg = single?.dir ? { path: single.path, directory: true } : single?.path; + if (nodes.length === 2 && nodes.every((n) => n.dir && !n.placeholder)) + push( + delegated( + "diff.compareDirectories", + nodes.map((n) => n.path), + "Compare Directories", + { icon: "diff" }, + ), + ); if (files.length === 2 && nodes.length === 2) push( delegated( @@ -371,9 +381,9 @@ export function contextMenuItems(nodes: ProjectNode[]): MenuItem[] { { icon: "diff" }, ), ); - else if (singleFile) + else if (single && !single.placeholder) push( - delegated("diff.compareWith", singleFile.path, "Compare With…", { + delegated("diff.compareWith", compareArg, "Compare With…", { icon: "diff", shortcut: keyLabel("project.compareWith"), }), diff --git a/src/features/vcs/ComparisonTree.tsx b/src/features/vcs/ComparisonTree.tsx new file mode 100644 index 000000000..e2fd952c6 --- /dev/null +++ b/src/features/vcs/ComparisonTree.tsx @@ -0,0 +1,78 @@ +import { useState, type ReactNode } from "react"; +import { Icon, Tree, fileIconName } from "@/ui"; +import { DiffEditor } from "./DiffEditor"; +import { diffInput, openDiff, type DiffData } from "./diffInput"; +import { dirKeys, type FileTreeNode } from "./fileTree"; +import styles from "./common.module.css"; + +/** Shared changes tree and on-demand diff surface for revisions and disk folders. */ +export function ComparisonTree({ + tree, + current, + onSelect, + diffFor, + renderDetails, + ariaLabel, + openOnActivate = false, + getColor, + onOpen, +}: { + tree: FileTreeNode[]; + current: F | null; + onSelect: (entry: F | null) => void; + diffFor: (entry: F) => DiffData | null; + renderDetails: (node: FileTreeNode) => ReactNode; + ariaLabel: string; + openOnActivate?: boolean; + getColor?: (entry: F) => string | undefined; + onOpen?: () => void; +}) { + const [selected, setSelected] = useState>(new Set()); + const [expanded, setExpanded] = useState | null>(null); + const data = current && diffFor(current); + const input = data ? diffInput(data) : null; + return ( +
+ > + roots={tree} + getKey={(n) => n.key} + getLabel={(n) => n.name} + getChildren={(n) => (n.file ? undefined : n.children)} + isExpandable={(n) => !n.file} + expanded={expanded ?? new Set(dirKeys(tree))} + onExpandedChange={setExpanded} + selected={selected} + onSelectionChange={(sel, lead) => { + setSelected(sel); + onSelect(lead?.file ?? lead?.directory ?? null); + }} + onActivate={(n) => { + const entry = n.file ?? n.directory; + if (!entry) return; + onSelect(entry); + const diff = diffFor(entry); + if (openOnActivate && diff) { + void openDiff(diff); + onOpen?.(); + } + }} + aria-label={ariaLabel} + className={styles.comparisonTree} + renderNode={(n) => ( + + + + {n.name} + + {renderDetails(n)} + + )} + /> + {input && ( +
+ +
+ )} +
+ ); +} diff --git a/src/features/vcs/DiffEditor.tsx b/src/features/vcs/DiffEditor.tsx index 49a2dc674..f44a47d02 100644 --- a/src/features/vcs/DiffEditor.tsx +++ b/src/features/vcs/DiffEditor.tsx @@ -200,6 +200,7 @@ export function DiffEditor({ input }: { input: EditorInput }) { const data = input.data as DiffData; const { path, left, right } = data; const [attached, setAttached] = useState(null); + const [binary, setBinary] = useState(null); /** Text of the sides that are not live documents. */ const [statics, setStatics] = useState<{ a: string | null; b: string | null } | null>(null); const [error, setError] = useState(null); @@ -263,15 +264,18 @@ export function DiffEditor({ input }: { input: EditorInput }) { const reload = useCallback(async () => { if (!attached) return; try { - const [a, b] = await Promise.all([ + const paths = [sideFile(left, path), sideFile(right, path)].filter((p): p is string => !!p); + const [a, b, probes] = await Promise.all([ attached.a ? null : loadSide(path, left), attached.b ? null : loadSide(path, right), + Promise.all(paths.map((p) => call(commands.fsProbe(p)).catch(() => null))), ]); const prev = staticsRef.current; if (!prev || prev.a !== a || prev.b !== b) { staticsRef.current = { a, b }; setStatics({ a, b }); } + setBinary(probes.some((p) => p?.binary)); setError(null); } catch (e) { setError(errorMessage(e)); @@ -311,9 +315,9 @@ export function DiffEditor({ input }: { input: EditorInput }) { left.rev === "HEAD" && !left.path && isWorktree(right); - const editableA = !!attached?.a && !attached.a.readOnly; - const editableB = !!attached?.b && !attached.b.readOnly; - const ready = !!attached && !!statics && lang !== null; + const editableA = !binary && !!attached?.a && !attached.a.readOnly; + const editableB = !binary && !!attached?.b && !attached.b.readOnly; + const ready = !!attached && !!statics && lang !== null && binary !== null; // Read when the views are built; toggling it later goes through `setSync`. const syncScroll = useRef(opts.syncScroll); @@ -983,7 +987,8 @@ export function DiffEditor({ input }: { input: EditorInput }) { void reload()} /> - {!ready + {binary && tx("Binary content")} + {!ready || binary ? "" : chunkInfo.count === 0 ? identical @@ -1047,7 +1052,11 @@ export function DiffEditor({ input }: { input: EditorInput }) { />
)} - {error ? ( + {binary ? ( +
+ Binary files cannot be shown as text +
+ ) : error ? (
{error}
) : !ready ? (
@@ -1061,7 +1070,7 @@ export function DiffEditor({ input }: { input: EditorInput }) { opts.highlight === "none" && styles.noHighlight, opts.mode === "split" && (opts.alignChanges ? !opts.syncScroll && styles.unsynced : styles.unaligned), )} - hidden={!!error || !ready} + hidden={!!binary || !!error || !ready} aria-label={diffTitle(data)} role="region" onContextMenu={onContextMenu} diff --git a/src/features/vcs/DirectoryCompare.tsx b/src/features/vcs/DirectoryCompare.tsx new file mode 100644 index 000000000..b70e2acad --- /dev/null +++ b/src/features/vcs/DirectoryCompare.tsx @@ -0,0 +1,291 @@ +import { useEffect, useMemo, useRef, useState } from "react"; +import { Channel } from "@tauri-apps/api/core"; +import type { DirectoryCompareEntry, DirectoryCompareProgress, DirectoryCompareStatus } from "@/bindings"; +import { call, commands, emitLocalIdeEvent, IpcError, isCancelled, nextRequestId } from "@/platform/ipc"; +import { notifyFileOperation } from "@/platform/fileOps"; +import { tx } from "@/platform/i18n"; +import { Button, Checkbox, Dialog, Input, Spinner, T } from "@/ui"; +import { upsertTask } from "@/workbench/tasks"; +import { ComparisonTree } from "./ComparisonTree"; +import { buildFileTree } from "./fileTree"; +import { confirmDialog, openDialog } from "./dialogs"; +import { openDiff, type DiffData, type DiffSide } from "./diffInput"; +import { compareFilesData } from "./compareData"; +import styles from "./common.module.css"; + +const STATUS: Record = { + leftOnly: "Only on left", + rightOnly: "Only on right", + different: "Contents differ", + equal: "Identical", +}; +const join = (root: string, path: string) => `${root.replace(/\/$/, "")}/${path}`; +const directory = (e: DirectoryCompareEntry) => e.leftKind === "dir" || e.rightKind === "dir"; + +export function directoryDiff(left: string, right: string, entry: DirectoryCompareEntry): DiffData | null { + if (directory(entry)) return null; + const data = compareFilesData(join(left, entry.path), join(right, entry.path)); + const missing = (): DiffSide => ({ type: "text", text: "", label: tx("(does not exist)") }); + return { + ...data, + title: entry.path, + left: + entry.leftKind === "symlink" + ? { type: "text", text: entry.leftLink ?? "", label: data.left.label ?? join(left, entry.path) } + : entry.leftKind + ? data.left + : missing(), + right: + entry.rightKind === "symlink" + ? { type: "text", text: entry.rightLink ?? "", label: data.right.label ?? join(right, entry.path) } + : entry.rightKind + ? data.right + : missing(), + }; +} + +export function showDirectoryComparison(left: string, right: string) { + if (left === right) return; + openDialog((close) => ); +} + +export function DirectoryCompareDialog({ left, right, onClose }: { left: string; right: string; onClose: () => void }) { + const [entries, setEntries] = useState([]); + const [current, setCurrent] = useState(null); + const [showEqual, setShowEqual] = useState(false); + const [filter, setFilter] = useState(""); + const [generation, setGeneration] = useState(0); + const [busy, setBusy] = useState(true); + const [operating, setOperating] = useState(false); + const [error, setError] = useState(null); + const [operationError, setOperationError] = useState(null); + const [progress, setProgress] = useState(null); + const [cancelled, setCancelled] = useState(false); + const cancel = useRef<() => void>(() => {}); + const mounted = useRef(true); + useEffect(() => { + mounted.current = true; + return () => { + mounted.current = false; + }; + }, []); + useEffect(() => { + let alive = true; + let pending = true; + const request = nextRequestId(); + const task = { + id: `directory-compare-${request}`, + title: tx("Comparing directories"), + message: null as string | null, + fraction: null as number | null, + cancel: () => { + void commands.cancelRequest(request); + }, + }; + cancel.current = task.cancel; + upsertTask({ ...task, done: false }); + const channel = new Channel(); + channel.onmessage = (p) => { + if (!alive) return; + setProgress(p); + task.message = p.path; + task.fraction = p.total ? p.compared / p.total : null; + upsertTask({ ...task, done: false }); + }; + void call(commands.fsCompareDirectories(left, right, request, channel)) + .then((rows) => { + if (!alive) return; + setEntries(rows); + setCurrent((prev) => rows.find((e) => e.path === prev?.path) ?? null); + }) + .catch((e) => { + if (!alive) return; + if (isCancelled(e)) setCancelled(true); + else setError(e instanceof Error ? e.message : String(e)); + }) + .finally(() => { + pending = false; + upsertTask({ ...task, done: true }); + if (alive) setBusy(false); + }); + return () => { + alive = false; + if (pending) task.cancel(); + upsertTask({ ...task, done: true }); + }; + }, [left, right, generation]); + + const visible = useMemo(() => { + const paths = new Set(); + const query = filter.trim().toLocaleLowerCase(); + for (const e of entries) { + if ((!showEqual && e.status === "equal") || !e.path.toLocaleLowerCase().includes(query)) continue; + let path = e.path; + while (path) { + paths.add(path); + const slash = path.lastIndexOf("/"); + path = slash < 0 ? "" : path.slice(0, slash); + } + } + return entries.filter((e) => paths.has(e.path)); + }, [entries, showEqual, filter]); + const tree = useMemo(() => buildFileTree(visible, (e) => e.path, directory), [visible]); + const selected = cancelled || error ? null : (visible.find((e) => e.path === current?.path) ?? null); + const diff = selected && directoryDiff(left, right, selected); + const refresh = () => { + setBusy(true); + setCancelled(false); + setError(null); + setProgress(null); + setGeneration((g) => g + 1); + }; + + const operate = async (side: "left" | "right" | "delete") => { + if (!selected || busy || operating) return; + setOperating(true); + setOperationError(null); + let attempted = false; + const targetRoot = side === "left" ? left : right; + try { + if (side === "delete") { + if (!!selected.leftKind === !!selected.rightKind) return; + const path = join(selected.leftKind ? left : right, selected.path); + if (!(await confirmDialog({ title: "Delete", message: tx`Delete ${path}?`, okLabel: "Delete", danger: true }))) + return; + attempted = true; + await call(commands.fsDelete(path)); + notifyFileOperation({ kind: "deleted", paths: [path] }); + emitLocalIdeEvent({ type: "fsChanged", created: [], modified: [], removed: [path] }); + } else { + const sourceRoot = side === "left" ? right : left; + const to = join(targetRoot, selected.path); + try { + attempted = true; + await call(commands.fsCopyMerge(sourceRoot, targetRoot, selected.path, false)); + } catch (e) { + if (!(e instanceof IpcError) || e.kind !== "alreadyExists") throw e; + if ( + !(await confirmDialog({ + title: "Overwrite files?", + message: tx`Copy to ${to} and overwrite existing files?`, + okLabel: "Overwrite", + danger: true, + })) + ) + return; + await call(commands.fsCopyMerge(sourceRoot, targetRoot, selected.path, true)); + } + notifyFileOperation({ kind: "created", paths: [to] }); + emitLocalIdeEvent({ type: "fsChanged", created: [to], modified: [to], removed: [] }); + } + } catch (e) { + if (mounted.current) setOperationError(e instanceof Error ? e.message : String(e)); + } finally { + if (mounted.current) { + setOperating(false); + if (attempted) refresh(); + } + } + }; + + return ( + { + if (diff) { + void openDiff(diff); + onClose(); + } + }, + }, + { label: "Close", role: "cancel" }, + ]} + > +
{tx`Left: ${left}`}
+
{tx`Right: ${right}`}
+
+ setFilter(e.target.value)} + /> + + +
+
+ + + + {operating && } +
+ {error && ( +
+ {tx(error)} +
+ )} + {operationError && ( +
+ {tx(operationError)} +
+ )} + {busy && ( +
+ + + {progress?.total != null + ? tx`Compared ${progress.compared} of ${progress.total} entries` + : tx`Scanned ${progress?.scanned ?? 0} entries`} + + +
+ )} + {cancelled && ( +
+ Comparison cancelled +
+ )} + {!busy && !cancelled && !error && !visible.length && ( +
+ No matching differences +
+ )} + {!!tree.length && ( + directoryDiff(left, right, e)} + openOnActivate={!busy && !operating} + onOpen={onClose} + ariaLabel="Compared files" + renderDetails={(n) => { + const entry = n.file ?? n.directory; + return {entry ? tx(STATUS[entry.status]) : n.count}; + }} + /> + )} +
+ ); +} diff --git a/src/features/vcs/__tests__/diffToolbar.test.tsx b/src/features/vcs/__tests__/diffToolbar.test.tsx index 9bd19206f..dbf74852f 100644 --- a/src/features/vcs/__tests__/diffToolbar.test.tsx +++ b/src/features/vcs/__tests__/diffToolbar.test.tsx @@ -66,6 +66,21 @@ beforeEach(() => { }); describe("Diff toolbar", () => { + it("shows a binary notice for disk comparisons instead of identical empty text", async () => { + probe.mockResolvedValue({ status: "ok", data: { size: 3, binary: true, tooLarge: false } }); + const binaryInput = { + ...input, + data: { path: "/p/right.bin", left: { type: "file", path: "/p/left.bin" }, right: { type: "worktree" } }, + } as EditorInput; + render(); + expect(await screen.findByText("Binary files cannot be shown as text")).toBeInTheDocument(); + expect(screen.queryByText("Contents are identical")).toBeNull(); + expect(screen.queryByRole("region", { name: /left.bin/ })).toBeNull(); + probe.mockResolvedValue({ status: "ok", data: { size: 3, binary: false, tooLarge: false } }); + fireEvent.click(screen.getByRole("button", { name: "Refresh" })); + await waitFor(() => expect(screen.queryByText("Binary files cannot be shown as text")).toBeNull()); + }); + it("puts Jump to Source right after Next Difference, in the navigation group", async () => { render(); await screen.findByRole("button", { name: "Jump to Source" }); diff --git a/src/features/vcs/__tests__/directoryCompare.test.tsx b/src/features/vcs/__tests__/directoryCompare.test.tsx new file mode 100644 index 000000000..896fc57e1 --- /dev/null +++ b/src/features/vcs/__tests__/directoryCompare.test.tsx @@ -0,0 +1,179 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +import { cleanup, fireEvent, render, screen, waitFor } from "@testing-library/react"; +import type { DirectoryCompareEntry } from "@/bindings"; + +const mocks = vi.hoisted(() => ({ + compare: vi.fn(), + cancel: vi.fn(), + copy: vi.fn(), + remove: vi.fn(), + confirm: vi.fn(), + open: vi.fn(), +})); +vi.mock("@/platform/ipc", async (original) => { + const real = await original(); + return { + ...real, + commands: { + ...real.commands, + fsCompareDirectories: mocks.compare, + fsCopyMerge: mocks.copy, + fsDelete: mocks.remove, + cancelRequest: mocks.cancel, + }, + }; +}); +vi.mock("@tauri-apps/api/core", async (original) => ({ + ...(await original()), + Channel: class { + onmessage = () => {}; + }, +})); +vi.mock("../DiffEditor", () => ({ + DiffEditor: ({ input }: { input: unknown }) =>
{JSON.stringify(input)}
, +})); +vi.mock("../dialogs", () => ({ confirmDialog: mocks.confirm, openDialog: vi.fn(), promptText: vi.fn() })); +vi.mock("../diffInput", async (original) => ({ + ...(await original()), + openDiff: mocks.open, +})); +import { DirectoryCompareDialog, directoryDiff } from "../DirectoryCompare"; + +const row = ( + path: string, + status: DirectoryCompareEntry["status"], + leftKind: DirectoryCompareEntry["leftKind"] = "file", + rightKind: DirectoryCompareEntry["rightKind"] = "file", +): DirectoryCompareEntry => ({ path, status, leftKind, rightKind }); +const rows = [ + row("nested", "different", "dir", "dir"), + row("nested/中文.txt", "different"), + row("only-left.txt", "leftOnly", "file", null), + row("only-right.txt", "rightOnly", null, "file"), + row("same.txt", "equal"), + row("empty", "leftOnly", "dir", null), +]; +const ok = (data: unknown = null) => ({ status: "ok", data }); +const setup = () => render( {}} />); + +beforeEach(() => { + vi.clearAllMocks(); + mocks.compare.mockResolvedValue(ok(rows)); + mocks.copy.mockResolvedValue(ok()); + mocks.remove.mockResolvedValue(ok()); + mocks.confirm.mockResolvedValue(true); +}); +afterEach(cleanup); + +describe("disk directory comparison", () => { + it("reuses the changes tree, filters names and toggles identical files", async () => { + setup(); + expect(await screen.findByText("中文.txt")).toBeInTheDocument(); + expect(screen.getAllByText("Only on left")).toHaveLength(2); + expect(screen.getByText("Only on right")).toBeInTheDocument(); + expect(screen.queryByText("same.txt")).toBeNull(); + fireEvent.click(screen.getByRole("checkbox", { name: "Show identical files" })); + expect(screen.getByText("same.txt")).toBeInTheDocument(); + fireEvent.change(screen.getByRole("textbox", { name: "Filter by name" }), { target: { value: "中文" } }); + expect(screen.queryByText("same.txt")).toBeNull(); + expect(screen.getByText("nested")).toBeInTheDocument(); + fireEvent.mouseDown(screen.getByText("nested"), { button: 0 }); + expect(screen.getByRole("button", { name: "Copy to Right" })).toBeEnabled(); + }); + + it("previews on selection and opens the existing diff on double click, including missing sides", async () => { + setup(); + fireEvent.mouseDown(await screen.findByText("中文.txt"), { button: 0 }); + expect(screen.getByTestId("diff")).toHaveTextContent("/p/left/nested/中文.txt"); + fireEvent.doubleClick(screen.getByText("中文.txt")); + expect(mocks.open).toHaveBeenCalledWith(expect.objectContaining({ path: "/p/right/nested/中文.txt" })); + expect(directoryDiff("/l", "/r", rows[2]!)?.right.type).toBe("text"); + expect(directoryDiff("/l", "/r", rows[3]!)?.left.type).toBe("text"); + expect(directoryDiff("/l", "/r", row("type", "different", "file", "dir"))).toBeNull(); + expect( + directoryDiff("/l", "/r", { + ...row("link", "different", "symlink", "symlink"), + leftLink: "one", + rightLink: "two", + }), + ).toMatchObject({ + left: { type: "text", text: "one" }, + right: { type: "text", text: "two" }, + }); + }); + + it.each(["Copy to Left", "Copy to Right"])( + "confirms before overwriting, refreshes and restores selection after %s", + async (label) => { + mocks.copy + .mockResolvedValueOnce({ status: "error", error: { kind: "alreadyExists", message: "exists" } }) + .mockResolvedValueOnce(ok()); + setup(); + fireEvent.mouseDown(await screen.findByText("中文.txt"), { button: 0 }); + fireEvent.click(screen.getByRole("button", { name: label })); + await waitFor(() => + expect(mocks.confirm).toHaveBeenCalledWith(expect.objectContaining({ title: "Overwrite files?" })), + ); + await waitFor(() => expect(mocks.compare).toHaveBeenCalledTimes(2)); + expect(mocks.copy.mock.calls[0]![3]).toBe(false); + expect(mocks.copy.mock.calls[1]![3]).toBe(true); + expect(mocks.copy.mock.calls[0]!.slice(0, 3)).toEqual( + label === "Copy to Left" + ? ["/p/right", "/p/left", "nested/中文.txt"] + : ["/p/left", "/p/right", "nested/中文.txt"], + ); + expect(screen.getByTestId("diff")).toBeInTheDocument(); + }, + ); + + it("does not overwrite when confirmation is declined and reports operation errors", async () => { + mocks.copy.mockResolvedValue({ status: "error", error: { kind: "alreadyExists", message: "exists" } }); + mocks.confirm.mockResolvedValue(false); + setup(); + fireEvent.mouseDown(await screen.findByText("中文.txt"), { button: 0 }); + fireEvent.click(screen.getByRole("button", { name: "Copy to Right" })); + await waitFor(() => expect(mocks.compare).toHaveBeenCalledTimes(2)); + expect(mocks.copy).toHaveBeenCalledTimes(1); + mocks.copy.mockResolvedValue({ status: "error", error: { kind: "permissionDenied", message: "Cannot write" } }); + fireEvent.click(screen.getByRole("button", { name: "Copy to Right" })); + expect(await screen.findByRole("alert")).toHaveTextContent("Cannot write"); + }); + + it("copies empty and nonempty subdirectories and confirms deletion only for one-sided entries", async () => { + setup(); + fireEvent.mouseDown(await screen.findByText("nested"), { button: 0 }); + expect(screen.getByRole("button", { name: "Delete" })).toBeDisabled(); + fireEvent.click(screen.getByRole("button", { name: "Copy to Right" })); + await waitFor(() => expect(mocks.copy).toHaveBeenCalledWith("/p/left", "/p/right", "nested", false)); + await waitFor(() => expect(mocks.compare).toHaveBeenCalledTimes(2)); + fireEvent.mouseDown(screen.getByText("empty"), { button: 0 }); + fireEvent.click(screen.getByRole("button", { name: "Copy to Right" })); + await waitFor(() => expect(mocks.copy).toHaveBeenCalledWith("/p/left", "/p/right", "empty", false)); + await waitFor(() => expect(mocks.compare).toHaveBeenCalledTimes(3)); + fireEvent.mouseDown(screen.getByText("only-left.txt"), { button: 0 }); + mocks.confirm.mockResolvedValueOnce(false); + fireEvent.click(screen.getByRole("button", { name: "Delete" })); + await waitFor(() => expect(mocks.confirm).toHaveBeenCalled()); + expect(mocks.remove).not.toHaveBeenCalled(); + fireEvent.click(screen.getByRole("button", { name: "Delete" })); + await waitFor(() => expect(mocks.remove).toHaveBeenCalledWith("/p/left/only-left.txt")); + }); + + it("streams progress, cancels on demand and on close, and ignores stale results after refresh", async () => { + let resolve!: (value: unknown) => void; + mocks.compare.mockImplementationOnce((_l, _r, _request, channel) => { + channel.onmessage({ scanned: 20, compared: 5, total: 10, bytesRead: 100, path: "big" }); + return new Promise((r) => { + resolve = r; + }); + }); + const view = setup(); + expect(await screen.findByText("Compared 5 of 10 entries")).toBeInTheDocument(); + const request = mocks.compare.mock.calls[0]![2]; + fireEvent.click(screen.getByRole("button", { name: "Cancel" })); + expect(mocks.cancel).toHaveBeenCalledWith(request); + view.unmount(); + expect(mocks.cancel).toHaveBeenCalledTimes(2); + resolve(ok(rows)); + }); +}); diff --git a/src/features/vcs/__tests__/directoryCompareActions.test.ts b/src/features/vcs/__tests__/directoryCompareActions.test.ts new file mode 100644 index 000000000..4a0d5cbae --- /dev/null +++ b/src/features/vcs/__tests__/directoryCompareActions.test.ts @@ -0,0 +1,95 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +const mocks = vi.hoisted(() => ({ + show: vi.fn(), + read: vi.fn(), + notify: vi.fn(), + pick: vi.fn(), + remote: vi.fn(), + prompt: vi.fn(), + openDiff: vi.fn(), +})); +vi.mock("../DirectoryCompare", () => ({ showDirectoryComparison: mocks.show })); +vi.mock("../dialogs", () => ({ promptText: mocks.prompt })); +vi.mock("../diffInput", () => ({ openDiff: mocks.openDiff })); +vi.mock("@tauri-apps/plugin-dialog", () => ({ open: mocks.pick })); +vi.mock("@/platform/remote", () => ({ isRemoteWindow: mocks.remote })); +vi.mock("@/platform/ipc", async (original) => ({ + ...(await original()), + isTauri: () => true, + commands: { fsEntryKind: mocks.read }, +})); +vi.mock("@/workbench/contributions", async (original) => ({ + ...(await original()), + notifications: () => ({ notify: mocks.notify }), +})); +import { getAction, isActionEnabled } from "@/platform/actions"; +import { provideProjectViewSelection } from "@/workbench/contributions"; +import { registerCompareActions } from "../compare"; + +let dispose: () => void; +beforeEach(() => { + vi.clearAllMocks(); + dispose = registerCompareActions(); + mocks.remote.mockReturnValue(false); + mocks.read.mockImplementation((path: string) => + Promise.resolve({ status: "ok", data: path.endsWith(".txt") ? "file" : "dir" }), + ); +}); +afterEach(() => dispose()); + +describe("directory compare actions", () => { + it("has a stable searchable action and resolves the selection for Find Action", async () => { + const unselect = provideProjectViewSelection(() => ["/p/left", "/p/right"]); + try { + const action = getAction("diff.compareDirectories")!; + expect(action.title).toBe("Compare Directories"); + expect(action.hidden).not.toBe(true); + expect(isActionEnabled(action, { projectOpen: true })).toBe(true); + await action.run({ ctx: { projectOpen: true } }); + expect(mocks.show).toHaveBeenCalledWith("/p/left", "/p/right"); + await action.run({ ctx: { projectOpen: true }, arg: { paths: ["/x/left", "/x/right"] } }); + expect(mocks.show).toHaveBeenLastCalledWith("/x/left", "/x/right"); + } finally { + unselect(); + } + }); + + it("rejects mixed selections and does not start a directory comparison", async () => { + await getAction("diff.compareDirectories")!.run({ ctx: {}, arg: ["/p/left", "/p/file.txt"] }); + expect(mocks.show).not.toHaveBeenCalled(); + expect(mocks.notify).toHaveBeenCalledWith(expect.objectContaining({ title: "Select two directories to compare" })); + }); + + it("uses the native folder picker for Compare With on a local directory", async () => { + mocks.pick.mockResolvedValue("/p/right"); + await getAction("diff.compareWith")!.run({ ctx: {}, arg: { path: "/p/left", directory: true } }); + expect(mocks.pick).toHaveBeenCalledWith(expect.objectContaining({ directory: true })); + expect(mocks.show).toHaveBeenCalledWith("/p/left", "/p/right"); + expect(mocks.openDiff).not.toHaveBeenCalled(); + }); + + it("uses remote paths and validates the selected directory via the routed filesystem", async () => { + mocks.remote.mockReturnValue(true); + mocks.prompt.mockResolvedValue({ value: "/remote/right" }); + const unselect = provideProjectViewSelection(() => ["/remote/left"]); + try { + await getAction("diff.compareWith")!.run({ ctx: {} }); + expect(mocks.prompt).toHaveBeenCalledWith( + expect.objectContaining({ label: "Directory path", initial: "/remote/left" }), + ); + expect(mocks.pick).not.toHaveBeenCalled(); + expect(mocks.read).toHaveBeenCalledWith("/remote/right"); + expect(mocks.show).toHaveBeenCalledWith("/remote/left", "/remote/right"); + } finally { + unselect(); + } + }); + + it("leaves file Compare With on the existing diff flow", async () => { + mocks.pick.mockResolvedValue("/p/b.txt"); + await getAction("diff.compareWith")!.run({ ctx: {}, arg: "/p/a.txt" }); + expect(mocks.pick).toHaveBeenCalledWith(expect.objectContaining({ directory: false })); + expect(mocks.openDiff).toHaveBeenCalledWith(expect.objectContaining({ path: "/p/b.txt" })); + expect(mocks.show).not.toHaveBeenCalled(); + }); +}); diff --git a/src/features/vcs/__tests__/fileTree.test.ts b/src/features/vcs/__tests__/fileTree.test.ts index c0327edca..158f32829 100644 --- a/src/features/vcs/__tests__/fileTree.test.ts +++ b/src/features/vcs/__tests__/fileTree.test.ts @@ -9,4 +9,21 @@ describe("buildFileTree", () => { expect(tree[1]!.children.map((c) => c.name)).toEqual(["a.ts", "b.ts"]); expect(dirKeys(tree)).toEqual(["d:docs/x/y", "d:src/app"]); }); + + it("retains explicit empty directories and their entries for subtree operations", () => { + const entries = [ + { path: "empty", dir: true }, + { path: "src", dir: true }, + { path: "src/nested", dir: true }, + { path: "src/nested/a", dir: false }, + ]; + const tree = buildFileTree( + entries, + (e) => e.path, + (e) => e.dir, + ); + expect(tree[0]).toMatchObject({ name: "empty", directory: entries[0], children: [], count: 0 }); + expect(tree[1]).toMatchObject({ name: "src", directory: entries[1] }); + expect(tree[1]!.children[0]).toMatchObject({ name: "nested", directory: entries[2] }); + }); }); diff --git a/src/features/vcs/common.module.css b/src/features/vcs/common.module.css index c18a071e9..9e9acc8df 100644 --- a/src/features/vcs/common.module.css +++ b/src/features/vcs/common.module.css @@ -310,6 +310,17 @@ color: var(--fg-subtle); overflow-wrap: anywhere; } +.compareToolbar { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 8px; + padding: 6px 14px; +} +.compareToolbar > input { + flex: 1; + min-width: 140px; +} .compareAdded { color: var(--vcs-added); font-variant-numeric: tabular-nums; diff --git a/src/features/vcs/compare.tsx b/src/features/vcs/compare.tsx index a2799e617..1437abdbe 100644 --- a/src/features/vcs/compare.tsx +++ b/src/features/vcs/compare.tsx @@ -4,10 +4,13 @@ */ import { activeEditor } from "@/editor/api"; import { registerActions } from "@/platform/actions"; -import { isTauri } from "@/platform/ipc"; -import { useProject } from "@/platform/project"; -import { maybeEditorService, notifications } from "@/workbench/contributions"; +import { call, commands, isTauri } from "@/platform/ipc"; +import { isRemoteWindow } from "@/platform/remote"; +import { maybeEditorService, notifications, projectViewSelection } from "@/workbench/contributions"; +import { promptText } from "./dialogs"; import { focusedDiffNavigator } from "./diffNavigator"; +import { compareFilesData, displayPath } from "./compareData"; +export { compareFilesData, displayPath } from "./compareData"; import { openDiff, type DiffData } from "./diffInput"; import { baseName } from "./model"; import { tx } from "@/platform/i18n"; @@ -27,20 +30,6 @@ function argPaths(arg: unknown): string[] { return p ? [p] : []; } -/** Project-relative path for labels. */ -export function displayPath(path: string, root = useProject.getState().project?.root ?? null): string { - return root && path.startsWith(root + "/") ? path.slice(root.length + 1) : path; -} - -/** Diff of two files on disk; both sides are live, editable documents. */ -export function compareFilesData(leftPath: string, rightPath: string): DiffData { - return { - path: rightPath, - left: { type: "file", path: leftPath, label: displayPath(leftPath) }, - right: { type: "worktree", label: displayPath(rightPath) }, - }; -} - /** Clipboard ↔ the file (editable) or ↔ the editor selection. */ export function clipboardDiffData(path: string, clipboard: string, selection: string | null): DiffData { return { @@ -122,6 +111,29 @@ async function pickComparison( const contextPath = (arg: unknown) => argPath(arg) ?? maybeEditorService()?.activePath() ?? undefined; +async function showDirectories(left: string, right: string) { + const { showDirectoryComparison } = await import("./DirectoryCompare"); + showDirectoryComparison(left, right); +} + +async function isDirectory(path: string): Promise { + try { + return (await call(commands.fsEntryKind(path))) === "dir"; + } catch { + return false; + } +} + +async function pickDirectory(near: string): Promise { + if (isRemoteWindow() || !isTauri()) { + const picked = await promptText({ title: "Compare With", label: "Directory path", initial: near, mono: true }); + return picked?.value ?? null; + } + const { open } = await import("@tauri-apps/plugin-dialog"); + const picked = await open({ multiple: false, directory: true, title: tx("Compare With"), defaultPath: near }); + return (Array.isArray(picked) ? picked[0] : picked) ?? null; +} + export function registerCompareActions(): () => void { return registerActions([ { @@ -210,10 +222,18 @@ export function registerCompareActions(): () => void { category: "Diff", icon: "diff", when: "projectOpen", - keywords: ["diff", "compare files"], + keywords: ["diff", "compare files", "compare folders"], run: async ({ arg }) => { - const path = contextPath(arg); + const path = argPath(arg) ?? projectViewSelection()[0] ?? contextPath(arg); if (!path) return info("Open or select a file to compare"); + const directoryArg = !!arg && typeof arg === "object" && "directory" in arg && arg.directory === true; + if (directoryArg || (isTauri() && (await isDirectory(path)))) { + const other = await pickDirectory(path); + if (!other || other === path) return; + if (!(await isDirectory(other))) return info("Select a directory to compare"); + await showDirectories(path, other); + return; + } const other = await pickComparison(path); if (!other) return; if (other.type === "file") { @@ -228,6 +248,20 @@ export function registerCompareActions(): () => void { } }, }, + { + id: "diff.compareDirectories", + title: "Compare Directories", + category: "Diff", + icon: "diff", + when: "projectOpen", + keywords: ["diff", "folders", "compare folders"], + run: async ({ arg }) => { + const paths = arg === undefined ? projectViewSelection() : argPaths(arg); + if (paths.length !== 2 || !(await isDirectory(paths[0]!)) || !(await isDirectory(paths[1]!))) + return info("Select two directories to compare"); + await showDirectories(paths[0]!, paths[1]!); + }, + }, { id: "diff.compareFiles", title: "Compare Files", diff --git a/src/features/vcs/compareData.ts b/src/features/vcs/compareData.ts new file mode 100644 index 000000000..fc693fce1 --- /dev/null +++ b/src/features/vcs/compareData.ts @@ -0,0 +1,16 @@ +import { useProject } from "@/platform/project"; +import type { DiffData } from "./diffInput"; + +/** Project-relative path for labels. */ +export function displayPath(path: string, root = useProject.getState().project?.root ?? null): string { + return root && path.startsWith(root + "/") ? path.slice(root.length + 1) : path; +} + +/** Diff of two files on disk; both sides are live, editable documents. */ +export function compareFilesData(leftPath: string, rightPath: string): DiffData { + return { + path: rightPath, + left: { type: "file", path: leftPath, label: displayPath(leftPath) }, + right: { type: "worktree", label: displayPath(rightPath) }, + }; +} diff --git a/src/features/vcs/fileTree.ts b/src/features/vcs/fileTree.ts index a31265634..72bd576fb 100644 --- a/src/features/vcs/fileTree.ts +++ b/src/features/vcs/fileTree.ts @@ -5,15 +5,22 @@ export interface FileTreeNode { /** Directory label (`src/app`) or file name. */ name: string; file: F | null; + /** An explicit directory entry, including empty directories. */ + directory?: F; children: FileTreeNode[]; /** Number of files below (1 for a file). */ count: number; } -export function buildFileTree(files: readonly F[], relPath: (f: F) => string): FileTreeNode[] { +export function buildFileTree( + files: readonly F[], + relPath: (f: F) => string, + isDirectory?: (f: F) => boolean, +): FileTreeNode[] { interface Dir { dirs: Map; files: { name: string; file: F; rel: string }[]; + entry?: F; } const root: Dir = { dirs: new Map(), files: [] }; for (const f of files) { @@ -26,7 +33,11 @@ export function buildFileTree(files: readonly F[], relPath: (f: F) => string) if (!next) d.dirs.set(p, (next = { dirs: new Map(), files: [] })); d = next; } - d.files.push({ name, file: f, rel }); + if (isDirectory?.(f)) { + let sub = d.dirs.get(name); + if (!sub) d.dirs.set(name, (sub = { dirs: new Map(), files: [] })); + sub.entry = f; + } else d.files.push({ name, file: f, rel }); } const convert = (d: Dir, prefix: string): FileTreeNode[] => { @@ -35,7 +46,7 @@ export function buildFileTree(files: readonly F[], relPath: (f: F) => string) let label = name; let path = prefix ? `${prefix}/${name}` : name; let cur = sub; - while (cur.files.length === 0 && cur.dirs.size === 1) { + while (!cur.entry && cur.files.length === 0 && cur.dirs.size === 1) { const [n, only] = [...cur.dirs][0]!; label += `/${n}`; path += `/${n}`; @@ -46,6 +57,7 @@ export function buildFileTree(files: readonly F[], relPath: (f: F) => string) key: `d:${path}`, name: label, file: null, + directory: cur.entry, children, count: children.reduce((n, c) => n + c.count, 0), }); diff --git a/src/features/vcs/operations.tsx b/src/features/vcs/operations.tsx index e0099acd0..b18a7ae1d 100644 --- a/src/features/vcs/operations.tsx +++ b/src/features/vcs/operations.tsx @@ -8,7 +8,7 @@ import { useEffect, useMemo, useState } from "react"; import type { ChangedFile, Commit, CompareResult, ResetMode, WorkingTreeChange } from "@/bindings"; import { executeAction } from "@/platform/actions"; import { call, commands, nextRequestId } from "@/platform/ipc"; -import { Checkbox, Dialog, Icon, Input, Tree, Spinner, fileIconName, T } from "@/ui"; +import { Checkbox, Dialog, Icon, Input, Spinner, T } from "@/ui"; import { notifications } from "@/workbench/contributions"; import { diffInput, openDiff, type DiffData, type DiffSide } from "./diffInput"; import { openDialog, promptText } from "./dialogs"; @@ -17,10 +17,10 @@ import { runGitOperation, runOp } from "./ops"; import { reloadLog, useGitLog } from "./logStore"; import { conflictedFiles, currentRepo, currentRepoRoot, refreshNow, repoName, repoOf, useVcs } from "./store"; import styles from "./common.module.css"; -import { DiffEditor } from "./DiffEditor"; -import { buildFileTree, dirKeys, type FileTreeNode } from "./fileTree"; +import { ComparisonTree } from "./ComparisonTree"; +import { buildFileTree, type FileTreeNode } from "./fileTree"; import { tx } from "@/platform/i18n"; -import { displayPath } from "./compare"; +import { displayPath } from "./compareData"; // --------------------------------------------------------------------------- // Operation in progress @@ -528,8 +528,6 @@ export function ChangesBetweenDialog({ const [files, setFiles] = useState(null); const [result, setResult] = useState(null); const [error, setError] = useState(null); - const [selected, setSelected] = useState>(new Set()); - const [expanded, setExpanded] = useState | null>(null); const [current, setCurrent] = useState(null); const fromRev = from.rev; const toRev = to?.rev ?? null; @@ -665,52 +663,25 @@ export function ChangesBetweenDialog({
) : null} {files && files.length > 0 ? ( -
- > - roots={tree} - getKey={(n) => n.key} - getLabel={(n) => n.name} - getChildren={(n) => (n.file ? undefined : n.children)} - isExpandable={(n) => !n.file} - expanded={expanded ?? new Set(dirKeys(tree))} - onExpandedChange={setExpanded} - selected={selected} - onSelectionChange={(sel, lead) => { - setSelected(sel); - if (lead?.file) setCurrent(lead.file); - }} - onActivate={(n) => n.file && setCurrent(n.file)} - aria-label="Changed files" - className={styles.comparisonTree} - renderNode={(n) => ( - - - - {n.name} - - {n.file ? ( - <> - {tx(n.file.kind)} - {n.file.added !== undefined && +{n.file.added}} - {n.file.removed !== undefined && −{n.file.removed}} - - ) : ( - {n.count} - )} - - )} - /> - {input && ( -
- -
- )} -
+ KIND_COLOR[f.kind === "untracked" ? "added" : f.kind]} + ariaLabel="Changed files" + renderDetails={(n) => + n.file ? ( + <> + {tx(n.file.kind)} + {n.file.added !== undefined && +{n.file.added}} + {n.file.removed !== undefined && −{n.file.removed}} + + ) : ( + {n.count} + ) + } + /> ) : null} ); diff --git a/src/platform/locales/text/zh.json b/src/platform/locales/text/zh.json index 0f69670d7..a7637c16d 100644 --- a/src/platform/locales/text/zh.json +++ b/src/platform/locales/text/zh.json @@ -5382,5 +5382,36 @@ "in {length} repositories": "在 {length} 个仓库中", "No repository in the selection has revision {label}": "所选内容中的仓库均无版本 {label}", "{repoName} has no revision {label}": "{repoName} 没有版本 {label}", - "Waiting for language server…": "正在等待语言服务器…" + "Waiting for language server…": "正在等待语言服务器…", + "Compare Directories": "比较目录", + "Select two directories to compare": "选择两个要比较的目录", + "Select a directory to compare": "选择要比较的目录", + "Directory path": "目录路径", + "Only on left": "仅左侧", + "Only on right": "仅右侧", + "Contents differ": "内容不同", + "Comparing directories": "正在比较目录", + "Filter by name": "按名称过滤", + "Show identical files": "显示相同文件", + "Copy to Left": "复制到左侧", + "Copy to Right": "复制到右侧", + "Compared files": "比较的文件", + "Comparison cancelled": "已取消比较", + "No matching differences": "没有匹配的差异", + "Overwrite files?": "覆盖文件?", + "Copy to {to} and overwrite existing files?": "复制到 {to} 并覆盖已有文件?", + "Left: {left}": "左侧:{left}", + "Right: {right}": "右侧:{right}", + "Compared {compared} of {total} entries": "已比较 {compared} / {total} 个条目", + "Scanned {scanned} entries": "已扫描 {scanned} 个条目", + "Binary content": "二进制内容", + "Binary files cannot be shown as text": "二进制文件无法以文本形式显示", + "Delete {path}?": "删除 {path}?", + "copy requires an absolute path": "复制需要绝对路径", + "missing file name": "缺少文件名", + "copy requires absolute paths": "复制需要绝对路径", + "copy paths must belong to the comparison roots": "复制路径必须位于比较的根目录内", + "cannot copy overlapping paths": "无法在相互包含的路径之间复制", + "cannot copy through a destination symlink": "无法通过目标目录内的符号链接复制", + "expected a relative comparison entry path": "需要比较条目的相对路径" } From 0c54266d03988be2c98cd370442ffce68d86647c Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sun, 1 Nov 2026 15:18:53 +0800 Subject: [PATCH 11/27] fix(java): build mixed-language Maven dependencies before Java launch (#659) Run/Debug of a Java-only module that depends on a Kotlin/Groovy/Scala module in the same reactor launched with stale classes or failed with Unresolved compilation problem, and a successful Maven build was still reported with the old JDT compile errors. Root cause: the pre-launch external build only checked the launch module's own sources, and Maven shared target/classes with JDT autobuild. Fix: walk the launch module's reactor dependency closure (transitive, test scope aware) for non-Java sources; when found, run Maven from the reactor root (-pl -am clean compile, test-compile for test launches) and block the launch on failure or cancel with the Maven errors in the console. JDT autobuild is paused while Maven runs and restored afterwards, and the launch uses a per-launch snapshot of the closure's output so JDT cannot overwrite it. A successful Maven build no longer shows the stale JDT warning. Pure Java projects and Gradle keep their previous path; the debugger adapter choice still follows the launch module. Verified on macOS with single- and multi-module Maven projects (new Kotlin values in Run and Debug, Kotlin error blocks the launch, cancel, pure Java does not invoke Maven). Editor type resolution for Kotlin in Java is handled separately. Part of #428 --- crates/ide-build/src/compile/mod.rs | 237 +++++++++++++++++++++++++++- crates/ide-host/Cargo.toml | 2 +- crates/ide-host/src/ops/java.rs | 110 +++++++++++-- crates/ide-host/src/project.rs | 4 + crates/ide-lsp/src/jdtls.rs | 37 +++++ crates/ide-lsp/src/server.rs | 25 ++- 6 files changed, 395 insertions(+), 20 deletions(-) diff --git a/crates/ide-build/src/compile/mod.rs b/crates/ide-build/src/compile/mod.rs index 857912ada..b674e1adf 100644 --- a/crates/ide-build/src/compile/mod.rs +++ b/crates/ide-build/src/compile/mod.rs @@ -237,12 +237,7 @@ fn maven_steps(root: &Path, model: &BuildModel, kind: BuildKind, module: Option< if !m.projects.iter().any(|p| p.dir == rel) { return Err(IdeError::not_found("no linked Maven project found for module")); } - let top = tops - .iter() - .filter(|t| t.dir.is_empty() || rel == t.dir || rel.starts_with(&format!("{}/", t.dir))) - .max_by_key(|t| t.dir.len()) - .copied() - .unwrap_or(tops[0]); + let top = maven_reactor(m, &rel).ok_or_else(|| IdeError::not_found("no linked Maven project found for module"))?; let top_dir = subdir(root, &top.dir); if module == top_dir { return Ok(vec![step(top, &[])]); @@ -611,6 +606,90 @@ pub fn has_non_java_sources(module: &Path) -> bool { walk(&module.join("src"), 12) } +fn reactor_projects<'a>(m: &'a maven::MavenModel, top: &'a maven::MavenProject) -> Vec<&'a maven::MavenProject> { + let mut projects = Vec::new(); + let mut pending = vec![top]; + let mut seen = HashSet::new(); + while let Some(p) = pending.pop() { + if !seen.insert(&p.pom) { + continue; + } + projects.push(p); + pending.extend(m.projects.iter().filter(|child| p.modules.contains(&child.pom))); + } + projects +} + +fn maven_reactor<'a>(m: &'a maven::MavenModel, module: &str) -> Option<&'a maven::MavenProject> { + m.projects.iter().filter(|p| !p.aggregated).find(|top| reactor_projects(m, top).iter().any(|p| p.dir == module)) +} + +/// Launch module first, followed by its upstream modules in the same Maven reactor. +/// External artifacts and unrelated linked reactors are never rebuilt for this launch. +fn maven_launch_projects<'a>( + root: &Path, + m: &'a maven::MavenModel, + module: &Path, + test: bool, +) -> Vec<&'a maven::MavenProject> { + let rel = rel_str(root, module); + let Some(top) = maven_reactor(m, &rel) else { return Vec::new() }; + let reactor = reactor_projects(m, top); + let Some(start) = reactor.iter().find(|p| p.dir == rel) else { return Vec::new() }; + let mut pending = vec![*start]; + let mut seen = HashSet::new(); + let mut projects = Vec::new(); + while let Some(p) = pending.pop() { + if !seen.insert(&p.pom) { + continue; + } + projects.push(p); + for dep in &p.dependencies { + if !dep.resolved() || (dep.scope == "test" && (!test || p.pom != start.pom)) { + continue; + } + if let Some(upstream) = reactor.iter().find(|u| { + u.group_id == dep.group_id + && u.artifact_id == dep.artifact_id + && dep.version.as_ref().is_none_or(|v| *v == u.version) + }) { + pending.push(*upstream); + } + } + } + projects +} + +/// Whether a launch requires the external JVM compiler. Maven includes upstream +/// reactor dependencies; adapter selection remains a separate, module-local decision. +pub fn launch_has_non_java_sources(root: &Path, model: &BuildModel, module: &Path, test: bool) -> bool { + if let Some(m) = &model.maven { + let projects = maven_launch_projects(root, m, module, test); + if !projects.is_empty() { + return projects.iter().any(|p| has_non_java_sources(&subdir(root, &p.dir))); + } + } + has_non_java_sources(module) +} + +fn launch_plan(root: &Path, model: &BuildModel, module: &Path, test: bool) -> IdeResult { + let kind = if model.maven.as_ref().is_some_and(|m| m.projects.iter().any(|p| subdir(root, &p.dir) == module)) { + // JDT may have left newer error stubs in Maven's output directories. + BuildKind::Rebuild + } else { + BuildKind::Build + }; + let mut plan = plan(root, model, kind, Some(module))?; + if plan.system == BuildSystem::Maven && !test { + for step in &mut plan.steps { + if let Some(goal) = step.args.last_mut() { + *goal = "compile".into(); + } + } + } + Ok(plan) +} + /// Compiles the module at `module` with its build system before a JVM launch and /// returns the class directories it wrote, to put ahead of the jdtls classpath. pub fn build_for_launch( @@ -620,7 +699,7 @@ pub fn build_for_launch( test: bool, cancel: &CancellationToken, ) -> IdeResult> { - let plan = plan(root, model, BuildKind::Build, Some(module))?; + let plan = launch_plan(root, model, module, test)?; let result = run(root, &plan, cancel, &|_| {})?; if !result.success { let errors: Vec = result @@ -635,6 +714,14 @@ pub fn build_for_launch( .collect(); return Err(IdeError::internal(format!("Build failed:\n{}", errors.join("\n")))); } + if plan.system == BuildSystem::Maven + && let Some(m) = &model.maven + { + return Ok(maven_launch_projects(root, m, module, test) + .iter() + .flat_map(|p| launch_class_dirs(plan.system, &subdir(root, &p.dir), test && subdir(root, &p.dir) == module)) + .collect()); + } Ok(launch_class_dirs(plan.system, module, test)) } @@ -821,6 +908,142 @@ mod tests { } } + fn reactor_model() -> BuildModel { + let project = |dir: &str, deps: &[&str]| maven::MavenProject { + pom: format!("{dir}/pom.xml"), + dir: dir.into(), + group_id: "probe".into(), + artifact_id: dir.into(), + version: "1".into(), + aggregated: true, + dependencies: deps + .iter() + .map(|d| maven::MavenDependency { + group_id: "probe".into(), + artifact_id: (*d).into(), + version: Some("1".into()), + scope: "compile".into(), + ..Default::default() + }) + .collect(), + ..Default::default() + }; + let mut projects = vec![ + project("app", &["middle"]), + project("middle", &["lib"]), + project("lib", &["app"]), + project("unrelated", &[]), + ]; + projects.insert( + 0, + maven::MavenProject { + pom: "pom.xml".into(), + artifact_id: "reactor".into(), + command: "mvnw".into(), + modules: projects.iter().map(|p| p.pom.clone()).collect(), + options: vec!["-s".into(), "settings.xml".into()], + env: BTreeMap::from([("JAVA_HOME".into(), "/jdk".into())]), + ..Default::default() + }, + ); + BuildModel { maven: Some(maven::MavenModel { projects, ..Default::default() }), ..Default::default() } + } + + #[test] + fn mixed_launch_detection_follows_only_reactor_dependencies() { + for extension in ["kt", "groovy", "scala"] { + let tmp = tempfile::tempdir().unwrap(); + let root = tmp.path(); + let mut model = reactor_model(); + write(root, "app/src/main/java/Application.java", "class Application {}"); + write(root, &format!("unrelated/src/main/java/Other.{extension}"), ""); + assert!(!launch_has_non_java_sources(root, &model, &root.join("app"), false)); + write(root, &format!("lib/src/main/java/Channel.{extension}"), ""); + assert!(launch_has_non_java_sources(root, &model, &root.join("app"), false)); + assert_eq!( + maven_launch_projects(root, model.maven.as_ref().unwrap(), &root.join("app"), false).len(), + 3, + "cycles terminate" + ); + let m = model.maven.as_mut().unwrap(); + m.projects[2].dependencies[0].scope = "test".into(); + assert!( + !launch_has_non_java_sources(root, &model, &root.join("app"), true), + "upstream test dependencies are not transitive" + ); + let m = model.maven.as_mut().unwrap(); + m.projects[1].dependencies[0].scope = "test".into(); + m.projects[2].dependencies[0].scope = "compile".into(); + assert!(!launch_has_non_java_sources(root, &model, &root.join("app"), false)); + assert!(launch_has_non_java_sources(root, &model, &root.join("app"), true)); + model.maven.as_mut().unwrap().projects[2].dependencies[0].version = Some("external".into()); + assert!(!launch_has_non_java_sources(root, &model, &root.join("app"), true)); + model.maven.as_mut().unwrap().projects[2].dependencies[0].version = Some("1".into()); + model.maven.as_mut().unwrap().projects[3].aggregated = false; + model.maven.as_mut().unwrap().projects[0].modules.retain(|p| p != "lib/pom.xml"); + assert!( + !launch_has_non_java_sources(root, &model, &root.join("app"), true), + "another linked reactor is external" + ); + } + } + + #[test] + fn maven_launch_steps_use_reactor_settings_and_launch_scope() { + let tmp = tempfile::tempdir().unwrap(); + let root = tmp.path(); + write(root, "app/pom.xml", ""); + let model = reactor_model(); + for (test, goal) in [(false, "compile"), (true, "test-compile")] { + let plan = launch_plan(root, &model, &root.join("app"), test).unwrap(); + let step = &plan.steps[0]; + assert_eq!(step.cwd, root); + assert_eq!(step.program, "mvnw"); + assert_eq!(step.env["JAVA_HOME"], "/jdk"); + assert_eq!( + step.args, + ["-B", "-Dstyle.color=never", "-s", "settings.xml", "-pl", "app", "-am", "clean", goal] + ); + } + } + + #[cfg(unix)] + #[test] + fn external_launch_returns_upstream_outputs_and_blocks_failure_or_cancellation() { + use std::os::unix::fs::PermissionsExt; + let tmp = tempfile::tempdir().unwrap(); + let root = tmp.path(); + write(root, "app/pom.xml", ""); + write( + root, + "mvnw", + "#!/bin/sh\nmkdir -p app/target/classes middle/target/classes lib/target/classes app/target/test-classes\n", + ); + let wrapper = root.join("mvnw"); + std::fs::set_permissions(&wrapper, std::fs::Permissions::from_mode(0o755)).unwrap(); + let mut model = reactor_model(); + model.maven.as_mut().unwrap().projects[0].command = wrapper.to_string_lossy().into_owned(); + let dirs = build_for_launch(root, &model, &root.join("app"), true, &CancellationToken::new()).unwrap(); + assert_eq!( + dirs, + ["app/target/test-classes", "app/target/classes", "middle/target/classes", "lib/target/classes"] + .map(|p| root.join(p)) + ); + write( + root, + "mvnw", + "#!/bin/sh\necho '[ERROR] Kotlin compilation failed: unresolved reference broken' >&2\nexit 1\n", + ); + let error = build_for_launch(root, &model, &root.join("app"), false, &CancellationToken::new()).unwrap_err(); + assert!(error.message.contains("Kotlin compilation failed"), "{}", error.message); + let cancel = CancellationToken::new(); + cancel.cancel(); + assert_eq!( + build_for_launch(root, &model, &root.join("app"), false, &cancel).unwrap_err().kind, + ide_core::error::ErrorKind::Cancelled + ); + } + #[test] fn non_java_launch_class_dirs() { let tmp = tempfile::tempdir().unwrap(); diff --git a/crates/ide-host/Cargo.toml b/crates/ide-host/Cargo.toml index 4518fa0ff..c63304344 100644 --- a/crates/ide-host/Cargo.toml +++ b/crates/ide-host/Cargo.toml @@ -48,7 +48,7 @@ parking_lot.workspace = true dunce.workspace = true dirs.workspace = true uuid.workspace = true +tempfile.workspace = true [dev-dependencies] tokio = { workspace = true, features = ["rt-multi-thread", "macros", "io-util", "test-util"] } -tempfile.workspace = true diff --git a/crates/ide-host/src/ops/java.rs b/crates/ide-host/src/ops/java.rs index 4eccfb01f..6e334ca73 100644 --- a/crates/ide-host/src/ops/java.rs +++ b/crates/ide-host/src/ops/java.rs @@ -5,7 +5,7 @@ use crate::rpc::Dispatcher; use super::build::load; use ide_build::compile; use ide_core::{CancellationToken, IdeError, IdeResult, RequestId}; -use ide_lsp::jdtls::JavaLaunchInfo; +use ide_lsp::jdtls::{JavaBuildStatus, JavaLaunchInfo}; use std::path::PathBuf; /// Cancellable with `cancel_request(request)`. @@ -39,23 +39,42 @@ async fn resolve_launch( let project = host.project(window)?; let module = project.root.join(module); let settings = project.settings.effective(); - // Let jdtls finish its build before the external compiler writes Kotlin/Scala classes. - let mut info = project.lsp.java_launch(&module, test, build, cancel).await?; + let (model, external, delegated) = { + let project = project.clone(); + let settings = settings.clone(); + let module = module.clone(); + tokio::task::spawn_blocking(move || { + let model = load(&project.root, &project.build_cache_dir(), &settings); + let external = build && compile::launch_has_non_java_sources(&project.root, &model, &module, test); + let delegated = external + && model.maven.as_ref().is_some_and(|m| m.projects.iter().any(|p| project.root.join(&p.dir) == module)); + (model, external, delegated) + }) + .await + .map_err(|e| IdeError::internal(e.to_string()))? + }; + let external_build = if delegated { Some(project.lsp.java_external_build(&module, cancel).await?) } else { None }; + let mut info = project.lsp.java_launch(&module, test, build && !delegated, cancel).await?; let lsp_ms = started.elapsed().as_millis(); let data_dir = host.data_dir.clone(); let cancel = cancel.clone(); tokio::task::spawn_blocking(move || { - let built = if build && compile::has_non_java_sources(&module) { - compile::build_for_launch( - &project.root, - &load(&project.root, &project.build_cache_dir(), &settings), - &module, - test, - &cancel, - )? + let _external_build = external_build; + let built = if external { + compile::build_for_launch(&project.root, &model, &module, test, &cancel)? } else { Vec::new() }; + let built = if delegated { + let (snapshot, copies) = snapshot_outputs(&mut info, &built, &cancel)?; + project.java_launch_outputs.lock().push(snapshot); + info.build = Some(JavaBuildStatus::Succeeded); + info.errors.clear(); + info.error_count = 0; + copies + } else { + built + }; let mut class_paths: Vec = built.iter().map(|p| p.to_string_lossy().into_owned()).collect(); for p in std::mem::take(&mut info.class_paths) { if !class_paths.contains(&p) { @@ -103,6 +122,35 @@ async fn resolve_launch( .map_err(|e| IdeError::internal(e.to_string()))? } +fn snapshot_outputs( + info: &mut JavaLaunchInfo, + built: &[PathBuf], + cancel: &CancellationToken, +) -> IdeResult<(tempfile::TempDir, Vec)> { + let snapshot = tempfile::Builder::new().prefix("openidea-java-launch-").tempdir()?; + let mut copies = Vec::new(); + for (index, source) in built.iter().enumerate() { + if cancel.is_cancelled() { + return Err(IdeError::cancelled()); + } + let dest = snapshot.path().join(index.to_string()); + ide_vfs::copy(source, &dest)?; + let original = source.to_string_lossy(); + info.class_paths.retain(|p| p != original.as_ref()); + let mut modular = false; + for path in &mut info.module_paths { + if path == original.as_ref() { + *path = dest.to_string_lossy().into_owned(); + modular = true; + } + } + if !modular { + copies.push(dest); + } + } + Ok((snapshot, copies)) +} + /// Port of java-debug's DAP server inside the jdtls serving `module` (started on demand). pub async fn java_debug_server(host: &Host, window: &str, module: PathBuf) -> IdeResult { host.require_trust(window)?; @@ -132,3 +180,43 @@ pub(crate) fn register(d: &mut Dispatcher) { d.add("java_debug_server", |c| async move { java_debug_server(&c.host, &c.window, c.arg("module")?).await }); d.add("java_build_workspace", |c| async move { java_build_workspace(&c.host, &c.window, c.arg("module")?).await }); } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn launch_snapshots_survive_jdt_overwrites_and_replace_module_outputs() { + let root = tempfile::tempdir().unwrap(); + let app = root.path().join("app/target/classes"); + let lib = root.path().join("lib/target/classes"); + for dir in [&app, &lib] { + std::fs::create_dir_all(dir).unwrap(); + std::fs::write(dir.join("Channel.class"), "Maven bytecode").unwrap(); + } + let mut info = JavaLaunchInfo { + class_paths: vec![app.to_string_lossy().into_owned(), "stdlib.jar".into()], + module_paths: vec![lib.to_string_lossy().into_owned()], + ..Default::default() + }; + let (snapshot, paths) = + snapshot_outputs(&mut info, &[app.clone(), lib.clone()], &CancellationToken::new()).unwrap(); + assert_eq!(paths, [snapshot.path().join("0")]); + assert_eq!(info.class_paths, ["stdlib.jar"]); + assert_eq!(info.module_paths, [snapshot.path().join("1").to_string_lossy().into_owned()]); + std::fs::write(app.join("Channel.class"), "JDT error stub").unwrap(); + std::fs::remove_dir_all(lib).unwrap(); + for index in ["0", "1"] { + assert_eq!( + std::fs::read_to_string(snapshot.path().join(index).join("Channel.class")).unwrap(), + "Maven bytecode" + ); + } + let cancel = CancellationToken::new(); + cancel.cancel(); + assert_eq!( + snapshot_outputs(&mut info, &[app], &cancel).unwrap_err().kind, + ide_core::error::ErrorKind::Cancelled + ); + } +} diff --git a/crates/ide-host/src/project.rs b/crates/ide-host/src/project.rs index 24cc4aa34..caf5afea0 100644 --- a/crates/ide-host/src/project.rs +++ b/crates/ide-host/src/project.rs @@ -42,6 +42,8 @@ pub struct Project { pub detected_roots: Arc>>, /// Per-project cache directory (build tool sync results…). pub cache_dir: PathBuf, + /// Launch snapshots stay alive while any JVM of this project may load classes. + pub(crate) java_launch_outputs: Mutex>, /// Database tool window: data sources and their connections. pub db: Arc, /// HTTP Client responses (IDEA's `.idea/httpRequests`), in the app data dir. @@ -366,6 +368,7 @@ impl Host { syntax, detected_roots, cache_dir: self.data_dir.join("cache").join(&project_key), + java_launch_outputs: Mutex::new(Vec::new()), db, http_history, agents, @@ -481,6 +484,7 @@ impl Host { syntax, detected_roots: Arc::default(), cache_dir: self.data_dir.join("cache").join(&project_key), + java_launch_outputs: Mutex::new(Vec::new()), db, http_history, agents, diff --git a/crates/ide-lsp/src/jdtls.rs b/crates/ide-lsp/src/jdtls.rs index e66cafe63..09d6ed610 100644 --- a/crates/ide-lsp/src/jdtls.rs +++ b/crates/ide-lsp/src/jdtls.rs @@ -189,6 +189,24 @@ pub struct JavaCompileError { pub message: String, } +/// Holds off JDT writers while an external compiler builds and snapshots launch outputs. +/// Restores current settings even when preparation fails or is cancelled. +pub struct JavaExternalBuild { + server: Arc, + run: Running, + _lock: tokio::sync::OwnedMutexGuard<()>, +} + +impl Drop for JavaExternalBuild { + fn drop(&mut self) { + self.server.java_autobuild_suspended.store(false, std::sync::atomic::Ordering::SeqCst); + let settings = crate::handler::all_settings(&self.server.effective_config()); + if let Err(e) = self.run.peer.notify("workspace/didChangeConfiguration", json!({ "settings": settings })) { + tracing::debug!("jdtls: restoring autobuild: {e}"); + } + } +} + /// Error diagnostics sorted by file and position, capped at `limit`, and their total. pub fn compile_errors( diagnostics: Vec<(PathBuf, lsp_types::Diagnostic)>, @@ -433,9 +451,28 @@ impl LspManager { .map_err(|e| crate::rpc_err(&server.name, "java/projectConfigurationsUpdate", e)) } + /// Pause autobuild before resolving the launch classpath. That query takes the + /// Java project's workspace scheduling rule, draining the interrupted autobuild. + /// Keep this guard until Maven outputs have been copied out of JDT's reach. + pub async fn java_external_build(&self, path: &Path, cancel: &CancellationToken) -> IdeResult { + let (server, run) = self.jdtls(path, cancel).await?; + let lock = cancellable_wait(cancel, server.java_build_lock.clone().lock_owned()).await?; + server.java_autobuild_suspended.store(true, std::sync::atomic::Ordering::SeqCst); + let guard = JavaExternalBuild { server, run, _lock: lock }; + let settings = crate::handler::all_settings(&guard.server.effective_config()); + guard + .run + .peer + .notify("workspace/didChangeConfiguration", json!({ "settings": settings })) + .map_err(|e| crate::rpc_err(SERVER, "workspace/didChangeConfiguration", e))?; + Ok(guard) + } + /// Incremental build of the jdtls workspace (`java/buildWorkspace`), so /// class files are up to date before a launch. pub async fn java_build(&self, path: &Path, cancel: &CancellationToken) -> IdeResult { + let (server, _) = self.jdtls(path, cancel).await?; + let _lock = cancellable_wait(cancel, server.java_build_lock.lock()).await?; let mut v = self.jdtls_request(path, "java/buildWorkspace", json!(false), BUILD_TIMEOUT, cancel).await?; // The first build can finish the Maven import before ServiceReady is handled. let (server, run) = self.jdtls(path, cancel).await?; diff --git a/crates/ide-lsp/src/server.rs b/crates/ide-lsp/src/server.rs index 018c81ee0..81c21b021 100644 --- a/crates/ide-lsp/src/server.rs +++ b/crates/ide-lsp/src/server.rs @@ -99,6 +99,8 @@ pub struct Server { /// Woken when the last `$/progress` task ends. idle_notify: Notify, transient: Mutex>, + pub java_build_lock: Arc>, + pub java_autobuild_suspended: std::sync::atomic::AtomicBool, pub external_project: tokio::sync::Mutex, pub external_diagnostics: std::sync::atomic::AtomicBool, pub external_refresh_queued: std::sync::atomic::AtomicBool, @@ -126,6 +128,8 @@ impl Server { published_notify: Notify::new(), idle_notify: Notify::new(), transient: Mutex::new(HashMap::new()), + java_build_lock: Arc::new(tokio::sync::Mutex::new(())), + java_autobuild_suspended: std::sync::atomic::AtomicBool::new(false), external_project: tokio::sync::Mutex::new(Default::default()), external_diagnostics: std::sync::atomic::AtomicBool::new(false), external_refresh_queued: std::sync::atomic::AtomicBool::new(false), @@ -134,7 +138,13 @@ impl Server { /// Configuration of the current (or last) instance; the base config before the first launch. pub fn effective_config(&self) -> LanguageServerConfig { - self.effective.lock().clone().unwrap_or_else(|| self.config.clone()) + let mut config = self.effective.lock().clone().unwrap_or_else(|| self.config.clone()); + if self.java_autobuild_suspended.load(std::sync::atomic::Ordering::SeqCst) { + let mut settings = crate::handler::all_settings(&config); + settings["java"]["autobuild"]["enabled"] = serde_json::json!(false); + config.settings = Some(settings); + } + config } pub fn set_effective_config(&self, config: LanguageServerConfig) { @@ -553,6 +563,19 @@ mod tests { assert_eq!(s.record_crash(), Some(Duration::from_millis(500))); } + #[test] + fn external_build_suspends_only_the_effective_autobuild_setting() { + let mut config: LanguageServerConfig = toml::from_str("name = \"jdtls\"\ncommand = \"jdtls\"").unwrap(); + config.settings = Some(serde_json::json!({"java": {"autobuild": {"enabled": true}, "other": "kept"}})); + let server = Server::new(config.clone(), PathBuf::from("/p"), LanguageId::new("java")); + server.java_autobuild_suspended.store(true, std::sync::atomic::Ordering::SeqCst); + let settings = crate::handler::all_settings(&server.effective_config()); + assert_eq!(settings["java"]["autobuild"]["enabled"], false); + assert_eq!(settings["java"]["other"], "kept"); + server.java_autobuild_suspended.store(false, std::sync::atomic::Ordering::SeqCst); + assert_eq!(server.effective_config(), config); + } + #[tokio::test(flavor = "multi_thread")] async fn a_failed_start_reports_its_status_before_waiters_wake() { // The race behind "jdtls is not ready (Starting)": a request woken by the From f8d6f9df7757180a67ea3b2d78504766a8f6f67e Mon Sep 17 00:00:00 2001 From: arookieofc <2128194521@qq.com> Date: Sun, 1 Nov 2026 15:45:35 +0800 Subject: [PATCH 12/27] fix(editor): Shift+F6 renames the file when no language server covers it (#653) In files no language server covers (Markdown, .properties, plain text), Shift+F6 only showed a transient "no running language server supports rename" hint at the caret, so the default rename shortcut looked broken. Root cause: when prepare_rename reported no server and the syntax fallback declined, startRename fell through to the error hint. It now hands off to project.rename, which opens the file rename dialog for the active file; a running server that lacks rename keeps its hint. Verified on macOS: Shift+F6 in .md and .properties editors renames the file, symbol rename in TypeScript is unchanged, and Shift+F6 in the project view still renames the selected file. Fixes #651 Co-authored-by: a-rookie-of-C-language <186315048+a-rookie-of-C-language@users.noreply.github.com> --- src/editor/lsp/rename.ts | 7 +++++- src/editor/lsp/syntaxFallback.test.ts | 35 +++++++++++++++++++++++++++ src/platform/ipc.ts | 5 ++++ 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/src/editor/lsp/rename.ts b/src/editor/lsp/rename.ts index 48fb7ec45..aaeed7547 100644 --- a/src/editor/lsp/rename.ts +++ b/src/editor/lsp/rename.ts @@ -15,12 +15,14 @@ import type { EditorView } from "@codemirror/view"; import { commands, isCancelled, + isNoServer, nextRequestId, unavailableText, type Pos, type RequestId, type WorkspaceEdit, } from "@/platform/ipc"; +import { executeAction } from "@/platform/actions"; import { whenSynced, type EditorDocContext } from "@/editor/api"; import { structure } from "@/editor/structure"; import { docOf, incompleteNote, isUnavailable, lspRequest, reportLspError } from "./lsp"; @@ -78,7 +80,10 @@ export async function startRename(view: EditorView) { range = await lspRequest(() => commands.lspPrepareRename(doc.doc, pos)); } catch (e) { if (isCancelled(e)) return; - if (!(await startSyntaxRename(view, doc, pos, e))) reportLspError(view, e, true); + if (await startSyntaxRename(view, doc, pos, e)) return; + // No server covers this file (a plain text file): Shift+F6 renames the file, like IDEA. + if (isNoServer(e) && (await executeAction("project.rename"))) return; + reportLspError(view, e, true); return; } if (!range) { diff --git a/src/editor/lsp/syntaxFallback.test.ts b/src/editor/lsp/syntaxFallback.test.ts index 2b811ad5d..366cbb6da 100644 --- a/src/editor/lsp/syntaxFallback.test.ts +++ b/src/editor/lsp/syntaxFallback.test.ts @@ -30,6 +30,13 @@ vi.mock("@/platform/ipc", async (orig) => { return { ...actual, isTauri: () => true, commands: { ...actual.commands, ...cmd } }; }); +const executeAction = vi.hoisted(() => vi.fn()); +vi.mock("@/platform/actions", async (orig) => { + const actual = await orig(); + executeAction.mockImplementation(actual.executeAction); + return { ...actual, executeAction }; +}); + const openFile = vi.fn(async () => {}); const { provideEditorService } = await import("@/workbench/contributions"); provideEditorService({ openFile } as never); @@ -488,6 +495,34 @@ describe("rename wiring", () => { }); }); + it("renames the file itself when no server covers it (a plain text file)", async () => { + cmd.lspPrepareRename.mockReturnValueOnce( + Promise.resolve({ + status: "error", + error: { kind: "unavailable", message: "no running language server supports rename" } as IdeError, + }), + ); + cmd.syntaxSupport.mockReturnValueOnce(ok({ tree: false, locals: false })); + executeAction.mockResolvedValueOnce(true); + const view = editor("# notes", "markdown", 2); + await startRename(view); + expect(executeAction).toHaveBeenCalledWith("project.rename"); + expect(document.querySelector(".cm-lsp-hint")).toBeNull(); + }); + + it("keeps the hint when a server runs but lacks rename (no file fallback)", async () => { + cmd.lspPrepareRename.mockReturnValueOnce( + Promise.resolve({ + status: "error", + error: { kind: "unavailable", message: "jdtls doesn't support rename" } as IdeError, + }), + ); + const view = editor("class A {}", "java", 6); + await startRename(view); + expect(executeAction).not.toHaveBeenCalledWith("project.rename"); + expect(document.querySelector(".cm-lsp-hint")?.textContent).toContain("jdtls doesn't support rename"); + }); + it("respects a server refusal over valid code, but falls back over broken code", async () => { cmd.lspPrepareRename.mockReturnValueOnce(ok(null)); const view = editor("const x = 1;", "typescript", 6); diff --git a/src/platform/ipc.ts b/src/platform/ipc.ts index 9936911de..b9f8c1080 100644 --- a/src/platform/ipc.ts +++ b/src/platform/ipc.ts @@ -46,6 +46,11 @@ export function unavailableText(e: unknown, fallback = "No language server avail return e instanceof IpcError && e.kind === "unavailable" && LACKS_FEATURE.test(e.message) ? e.message : fallback; } +/** True when `unavailable` means no server is running for the file, rather than a running server lacking the feature. */ +export function isNoServer(e: unknown): boolean { + return e instanceof IpcError && e.kind === "unavailable" && !LACKS_FEATURE.test(e.message); +} + // Ids are shared by every window of the backend and outlive a reload there (a cancel that // arrives before its request began is remembered), so each page starts at a random point. let nextId = 1 + Math.floor(Math.random() * 0x7000_0000); From 5c0a5239faefa279474acff1f1740c14b2c4819c Mon Sep 17 00:00:00 2001 From: arookieofc <2128194521@qq.com> Date: Sun, 1 Nov 2026 15:53:24 +0800 Subject: [PATCH 13/27] feat(appearance): fallback font for the custom UI font (#660) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a UI fallback font under Settings › Appearance › Use custom font, so glyphs missing from the chosen UI font (e.g. CJK in Menlo) render in a font the user picks instead of the system default. The fallback joins the UI font stack used by menus, the project tree and dialogs, and resolves macOS user fonts through the shared font loader. Also keeps the custom font controls wrapping together at narrow widths and covers save/clear/disable, stack composition and settings round-trip in tests. Fixes #654 Co-authored-by: a-rookie-of-C-language <186315048+a-rookie-of-C-language@users.noreply.github.com> --- crates/ide-core/src/settings.rs | 17 +++++ src/bindings.ts | 2 + .../settings/__tests__/behavior.test.ts | 24 ++++++- .../settings/__tests__/dialog.test.tsx | 18 +++++ src/features/settings/appearanceRuntime.ts | 2 +- src/features/settings/model/behaviorSchema.ts | 3 + .../settings/pages/Behavior.module.css | 15 +++- src/features/settings/pages/behavior.tsx | 68 ++++++++++++------- src/platform/fonts.test.ts | 22 ++++-- src/platform/fonts.ts | 7 +- src/platform/locales/text/zh.json | 2 + 11 files changed, 142 insertions(+), 38 deletions(-) diff --git a/crates/ide-core/src/settings.rs b/crates/ide-core/src/settings.rs index f9390f0da..1b49cd813 100644 --- a/crates/ide-core/src/settings.rs +++ b/crates/ide-core/src/settings.rs @@ -276,6 +276,8 @@ pub struct AppearanceSettings { /// Apply `ui_font_family` / `ui_font_size` (otherwise the theme's). pub use_custom_font: bool, pub ui_font_family: String, + /// Font tried when `ui_font_family` lacks a glyph; empty = none. + pub ui_font_fallback: String, pub contrast_scrollbars: bool, /// Adjust colours for red-green vision deficiency. pub red_green_vision: bool, @@ -326,6 +328,7 @@ impl Default for AppearanceSettings { zoom: 100, use_custom_font: false, ui_font_family: "Inter".into(), + ui_font_fallback: String::new(), contrast_scrollbars: false, red_green_vision: false, different_tool_window_background: false, @@ -721,6 +724,20 @@ impl Settings { mod tests { use super::*; + #[test] + fn ui_font_fallback_defaults_empty_and_round_trips() { + let old: Settings = serde_json::from_str(r#"{"appearance":{"useCustomFont":true}}"#).unwrap(); + assert!(old.appearance.ui_font_fallback.is_empty()); + for family in ["", "Songti SC", "Maple Mono NF CN"] { + let mut settings = Settings::default(); + settings.appearance.ui_font_fallback = family.into(); + let json = serde_json::to_value(&settings).unwrap(); + assert_eq!(json["appearance"]["uiFontFallback"], family); + let restored: Settings = serde_json::from_value(json).unwrap(); + assert_eq!(restored.appearance.ui_font_fallback, family); + } + } + #[test] fn tool_window_badges_default_on_and_round_trip() { let old: Settings = serde_json::from_str(r#"{"appearance":{"showToolWindowNames":true}}"#).unwrap(); diff --git a/src/bindings.ts b/src/bindings.ts index 97ce05285..5c4e5a3bf 100644 --- a/src/bindings.ts +++ b/src/bindings.ts @@ -1422,6 +1422,8 @@ export type AppearanceSettings = { /** Apply `ui_font_family` / `ui_font_size` (otherwise the theme's). */ useCustomFont?: boolean, uiFontFamily?: string, + /** Font tried when `ui_font_family` lacks a glyph; empty = none. */ + uiFontFallback?: string, contrastScrollbars?: boolean, /** Adjust colours for red-green vision deficiency. */ redGreenVision?: boolean, diff --git a/src/features/settings/__tests__/behavior.test.ts b/src/features/settings/__tests__/behavior.test.ts index 3f2cff405..e17a9eb13 100644 --- a/src/features/settings/__tests__/behavior.test.ts +++ b/src/features/settings/__tests__/behavior.test.ts @@ -1,7 +1,8 @@ import { describe, expect, it } from "vitest"; import { formatPattern, formatTimestamp } from "@/platform/dateFormat"; import { resolveThemeId } from "@/workbench/theme"; -import { nextZoom } from "../appearanceRuntime"; +import { applyAppearanceOptions, nextZoom } from "../appearanceRuntime"; +import { validateSettings } from "../model/schema"; import { validateAppearanceExtras, validateNotifications } from "../model/behaviorSchema"; describe("appearance & behavior settings", () => { @@ -27,6 +28,27 @@ describe("appearance & behavior settings", () => { expect(validateAppearanceExtras({ showToolWindowBadges: 1 }).showToolWindowBadges).toBe(true); }); + it("keeps the UI fallback font empty by default and trims a stored one", () => { + expect(validateAppearanceExtras({}).uiFontFallback).toBe(""); + expect(validateAppearanceExtras({ uiFontFallback: " 思源黑体 " }).uiFontFallback).toBe("思源黑体"); + expect(validateAppearanceExtras({ uiFontFallback: 5 }).uiFontFallback).toBe(""); + }); + + it("applies and clears the UI fallback, and removes custom fonts when disabled", () => { + const root = document.createElement("div"); + const settings = validateSettings({ + appearance: { useCustomFont: true, uiFontFamily: "Menlo", uiFontFallback: "Songti SC" }, + }); + applyAppearanceOptions(settings, root); + expect(root.style.getPropertyValue("--font-ui")).toBe('"Menlo", "Songti SC", system-ui, sans-serif'); + settings.appearance.uiFontFallback = ""; + applyAppearanceOptions(settings, root); + expect(root.style.getPropertyValue("--font-ui")).toBe('"Menlo", system-ui, sans-serif'); + settings.appearance.useCustomFont = false; + applyAppearanceOptions(settings, root); + expect(root.style.getPropertyValue("--font-ui")).toBe(""); + }); + it("formats dates with an override pattern and pretty dates", () => { const d = new Date(2026, 0, 5, 14, 7); expect(formatPattern(d, "dd.MM.yyyy")).toBe("05.01.2026"); diff --git a/src/features/settings/__tests__/dialog.test.tsx b/src/features/settings/__tests__/dialog.test.tsx index 4a11b98c0..dbdb5f024 100644 --- a/src/features/settings/__tests__/dialog.test.tsx +++ b/src/features/settings/__tests__/dialog.test.tsx @@ -222,6 +222,24 @@ describe("Settings dialog", () => { ]); }); + it("enables, saves and clears the custom UI fallback font", async () => { + const dialog = await openDialog("appearance"); + const fallback = within(dialog).getByRole("combobox", { name: "UI fallback font" }); + const custom = within(dialog).getByRole("checkbox", { name: "Use custom font:" }); + expect(fallback).toBeDisabled(); + fireEvent.click(custom); + expect(fallback).toBeEnabled(); + fireEvent.change(fallback, { target: { value: "Songti SC" } }); + expect(settingsSet).not.toHaveBeenCalled(); + await act(async () => fireEvent.click(within(dialog).getByRole("button", { name: "Apply" }))); + expect(settingsSet).toHaveBeenCalledWith("global", "appearance.uiFontFallback", JSON.stringify("Songti SC")); + fireEvent.change(fallback, { target: { value: "" } }); + await act(async () => fireEvent.click(within(dialog).getByRole("button", { name: "Apply" }))); + expect(settingsSet).toHaveBeenCalledWith("global", "appearance.uiFontFallback", JSON.stringify("")); + fireEvent.click(custom); + expect(fallback).toBeDisabled(); + }); + it("edits and saves independent custom font weights", async () => { const dialog = await openDialog("editor.font"); for (const [label, value] of [ diff --git a/src/features/settings/appearanceRuntime.ts b/src/features/settings/appearanceRuntime.ts index 3052bf659..c60c5744b 100644 --- a/src/features/settings/appearanceRuntime.ts +++ b/src/features/settings/appearanceRuntime.ts @@ -33,7 +33,7 @@ export function applyAppearanceOptions(s: ValidSettings, root: HTMLElement = doc if (size === DEFAULT_SETTINGS.appearance.uiFontSize) root.style.removeProperty(name); else root.style.setProperty(name, `${size + delta}px`); } - if (a.useCustomFont) root.style.setProperty("--font-ui", uiFontFamily(a.uiFontFamily)); + if (a.useCustomFont) root.style.setProperty("--font-ui", uiFontFamily(a.uiFontFamily, a.uiFontFallback)); else root.style.removeProperty("--font-ui"); flag(root, "compact", a.compactMode); diff --git a/src/features/settings/model/behaviorSchema.ts b/src/features/settings/model/behaviorSchema.ts index 37fadb745..d1dacd1ee 100644 --- a/src/features/settings/model/behaviorSchema.ts +++ b/src/features/settings/model/behaviorSchema.ts @@ -20,6 +20,7 @@ export interface AppearanceExtras { zoom: number; useCustomFont: boolean; uiFontFamily: string; + uiFontFallback: string; contrastScrollbars: boolean; redGreenVision: boolean; differentToolWindowBackground: boolean; @@ -72,6 +73,7 @@ export const DEFAULT_APPEARANCE_EXTRAS: AppearanceExtras = { zoom: 100, useCustomFont: false, uiFontFamily: "Inter", + uiFontFallback: "", contrastScrollbars: false, redGreenVision: false, differentToolWindowBackground: false, @@ -123,6 +125,7 @@ export function validateAppearanceExtras(raw: unknown): AppearanceExtras { zoom: int(a.zoom, d.zoom, ZOOM_LIMITS), useCustomFont: b("useCustomFont"), uiFontFamily: typeof a.uiFontFamily === "string" && a.uiFontFamily.trim() ? a.uiFontFamily.trim() : d.uiFontFamily, + uiFontFallback: typeof a.uiFontFallback === "string" ? a.uiFontFallback.trim() : d.uiFontFallback, contrastScrollbars: b("contrastScrollbars"), redGreenVision: b("redGreenVision"), differentToolWindowBackground: b("differentToolWindowBackground"), diff --git a/src/features/settings/pages/Behavior.module.css b/src/features/settings/pages/Behavior.module.css index a1c511bbc..0a36ad272 100644 --- a/src/features/settings/pages/Behavior.module.css +++ b/src/features/settings/pages/Behavior.module.css @@ -24,7 +24,7 @@ padding: 8px 14px; } -/* "[x] Use custom font: [Inter] Size: [13]" */ +/* Inline option groups, with custom font controls wrapping together. */ .fontRow { display: flex; align-items: center; @@ -37,8 +37,17 @@ .fontInput { width: 220px; } -.sizeLabel { - margin-left: 8px; +.customFontRow { + flex-wrap: wrap; +} +.fontOption { + display: inline-flex; + align-items: center; + gap: 8px; + max-width: 100%; +} +.fontOption > label { + flex-shrink: 0; } .sizeInput { width: 64px; diff --git a/src/features/settings/pages/behavior.tsx b/src/features/settings/pages/behavior.tsx index f2a1732a0..6143d3abb 100644 --- a/src/features/settings/pages/behavior.tsx +++ b/src/features/settings/pages/behavior.tsx @@ -181,35 +181,53 @@ function ZoomRow() { function CustomFontRow() { const [on, setOn] = useSetting("appearance.useCustomFont"); const [family, setFamily] = useSetting("appearance.uiFontFamily"); + const [fallback, setFallback] = useSetting("appearance.uiFontFallback"); const [size, setSize] = useSetting("appearance.uiFontSize"); const id = useId(); const matched = useLabelMatch("Use custom font"); return ( -
- } /> - - - {on ? ( - + + } /> + + + + + - ) : ( - - )} + + + + {on ? ( + + ) : ( + + )} +
); } @@ -531,7 +549,7 @@ export const BEHAVIOR_PAGES: PageSpec[] = [ { kind: "custom", label: "Use custom font", - keywords: ["UI font size", "Size", "font family"], + keywords: ["UI font size", "Size", "font family", "fallback font"], component: CustomFontRow, }, { kind: "toggle", key: "appearance.contrastScrollbars", label: "Use contrast scrollbars" }, diff --git a/src/platform/fonts.test.ts b/src/platform/fonts.test.ts index f8060c04c..65cf7520f 100644 --- a/src/platform/fonts.test.ts +++ b/src/platform/fonts.test.ts @@ -36,11 +36,13 @@ it("escapes CSS special characters without turning a family into a list", () => describe("uiFontFamily", () => { it.each([ - ["Inter", '"Inter Variable", "Inter", system-ui, sans-serif'], - ["JetBrains Mono", '"JetBrains Mono Variable", "JetBrains Mono", system-ui, sans-serif'], - [' "PingFang SC" ', '"PingFang SC", system-ui, sans-serif'], - ])("%j", (family, expected) => { - expect(uiFontFamily(family)).toBe(expected); + ["Inter", "", '"Inter Variable", "Inter", system-ui, sans-serif'], + ["JetBrains Mono", "", '"JetBrains Mono Variable", "JetBrains Mono", system-ui, sans-serif'], + [' "PingFang SC" ', "", '"PingFang SC", system-ui, sans-serif'], + ["Inter", "思源黑体", '"Inter Variable", "Inter", "思源黑体", system-ui, sans-serif'], + ["Inter", " ", '"Inter Variable", "Inter", system-ui, sans-serif'], + ])("%j + %j", (family, fallback, expected) => { + expect(uiFontFamily(family, fallback)).toBe(expected); }); }); @@ -126,6 +128,16 @@ describe("macOS user font resolver", () => { expect(invoke).not.toHaveBeenCalled(); }); + it("loads a UI fallback through the shared macOS user font resolver", async () => { + const { fonts, invoke, registered } = await resolver(false); + const family = fonts.uiFontFamily("Inter", "Maple Mono NF CN"); + expect(family).toBe('"Inter Variable", "Inter", "OpenIDEA User Font 0", "Maple Mono NF CN", system-ui, sans-serif'); + expect(fonts.monoFontFamily("Inter", "Maple Mono NF CN")).toContain('"OpenIDEA User Font 0"'); + await fonts.fontsLoaded(family, 13); + expect(invoke).toHaveBeenCalledExactlyOnceWith("user_font_data", { family: "Maple Mono NF CN" }); + expect(registered).toHaveLength(3); + }); + it("detects user fonts that WKWebView exposes only to connected canvases without loading bytes", async () => { const { fonts, invoke, canvases } = await resolver("connected"); expect(fonts.fontAvailable("Maple Mono NF CN")).toBe(true); diff --git a/src/platform/fonts.ts b/src/platform/fonts.ts index 161a98739..9acf9eb31 100644 --- a/src/platform/fonts.ts +++ b/src/platform/fonts.ts @@ -140,7 +140,8 @@ export async function fontsLoaded(family: string, size: number): Promise { } } -/** Bundled aliases also apply when selected for the interface. */ -export function uiFontFamily(family: string): string { - return [...familyFaces(family), "system-ui", "sans-serif"].join(", "); +/** Bundled aliases also apply when selected for the interface; `fallback` covers glyphs `family` lacks (empty = none). */ +export function uiFontFamily(family: string, fallback = ""): string { + const fb = familyName(fallback); + return [...familyFaces(family), ...(fb ? familyFaces(fb) : []), "system-ui", "sans-serif"].join(", "); } diff --git a/src/platform/locales/text/zh.json b/src/platform/locales/text/zh.json index a7637c16d..8204ccd51 100644 --- a/src/platform/locales/text/zh.json +++ b/src/platform/locales/text/zh.json @@ -760,6 +760,7 @@ "Failed": "失败", "Failed to restart language server": "重启语言服务器失败", "Fallback font": "备用字体", + "Fallback font:": "备用字体:", "Fetch": "获取", "Fetches remotes in the background so incoming commits show in the Branches popup. Auto stops after an authentication failure.": "在后台获取远程,以便传入的提交显示在“分支”弹出窗口中。“自动”在身份验证失败后停止。", "Field access": "字段访问", @@ -2223,6 +2224,7 @@ "Merged with main toolbar": "与主工具栏合并", "UI Options": "UI 选项", "UI elements take up less screen space": "UI 元素占用更少的屏幕空间", + "UI fallback font": "UI 备用字体", "UI font": "UI 字体", "UI font size": "UI 字体大小", "Uninstalled {name}": "已卸载 {name}", From d3e63d8ff0febf8a8f82a58efa20aa9e846553e5 Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sun, 1 Nov 2026 16:05:16 +0800 Subject: [PATCH 14/27] feat(search): select and open multiple search results (#670) Search Everywhere and Recent Files lists now support multi-selection: Shift+Up/Down and Shift+click extend a range from the anchor, Cmd/Ctrl+click toggles a row, and Enter opens every selected file, symbol or text result in list order, leaving focus on the lead row. Actions in a mixed selection are skipped; a single selection behaves as before. Selection resets when the query or tab changes. The row-selection model used by Find in Files moves to src/ui so the shared List can opt into modifier selection. Fixes #647 --- .../search/__tests__/dialogs.test.tsx | 280 +++++++++++++++++- src/features/search/common/open.ts | 14 + .../search/everywhere/SearchEverywhere.tsx | 100 +++++-- src/features/search/find/rowSelection.ts | 53 +--- src/features/search/recent/RecentPopups.tsx | 69 ++++- src/ui/List.tsx | 16 +- src/ui/index.ts | 1 + src/ui/rowSelection.test.ts | 22 ++ src/ui/rowSelection.ts | 74 +++++ 9 files changed, 535 insertions(+), 94 deletions(-) create mode 100644 src/ui/rowSelection.test.ts create mode 100644 src/ui/rowSelection.ts diff --git a/src/features/search/__tests__/dialogs.test.tsx b/src/features/search/__tests__/dialogs.test.tsx index 3e10bacd2..202c6dffe 100644 --- a/src/features/search/__tests__/dialogs.test.tsx +++ b/src/features/search/__tests__/dialogs.test.tsx @@ -1,12 +1,17 @@ -import { afterEach, describe, expect, it, vi } from "vitest"; +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { act, fireEvent, render, screen, within } from "@testing-library/react"; import { registerAction } from "@/platform/actions"; import type { SeDeps } from "../everywhere/controller"; +const defaultFindFiles: SeDeps["findFiles"] = async (q) => + q ? [{ path: "/p/src/OrderController.kt", relPath: "src/OrderController.kt", score: 1, indices: [4, 5, 6] }] : []; +let findFiles = defaultFindFiles; +let findSymbols: SeDeps["findSymbols"] = async () => []; +let settings: NonNullable = async () => []; const fakeDeps = (): SeDeps => ({ - findFiles: async (q) => - q ? [{ path: "/p/src/OrderController.kt", relPath: "src/OrderController.kt", score: 1, indices: [4, 5, 6] }] : [], - findSymbols: async () => [], + findFiles: (...args) => findFiles(...args), + findSymbols: (...args) => findSymbols(...args), + settings: () => settings(), searchText: async () => {}, cancel: () => {}, nextRequestId: () => 1, @@ -18,6 +23,11 @@ const fakeDeps = (): SeDeps => ({ now: () => 0, }); +vi.mock("../common/open", async (orig) => ({ + ...(await orig()), + openLocation: vi.fn(async () => {}), +})); + vi.mock("../everywhere/deps", () => ({ ipcDeps: () => fakeDeps(), loadLanguages: async () => [ @@ -42,6 +52,12 @@ vi.mock("../find/windowStore", async (orig) => ({ }), })); +const contributions = await import("@/workbench/contributions"); +const { commands } = await import("@/platform/ipc"); +const { RecentPopupsOverlay } = await import("../recent/RecentPopups"); +const { showRecentPopup, hideRecentPopup, useRecentPopup } = await import("../recent/store"); +const { openLocation } = await import("../common/open"); +const { usePlatform } = await import("@/platform/platformInfo"); const { allActions } = await import("@/platform/actions"); (globalThis as unknown as { __actions: typeof allActions }).__actions = allActions; const { SearchEverywhereOverlay } = await import("../everywhere/SearchEverywhere"); @@ -52,10 +68,18 @@ const { showFindPopup, hideFindPopup } = await import("../find/store"); const tick = () => act(() => new Promise((r) => setTimeout(r, 100))); +beforeEach(() => { + findFiles = defaultFindFiles; + findSymbols = async () => []; + settings = async () => []; + vi.mocked(openLocation).mockClear(); +}); + afterEach(() => { act(() => { hideSearchEverywhere(); hideFindPopup(); + hideRecentPopup(); }); }); @@ -203,6 +227,254 @@ describe("Search Everywhere dialog", () => { }); }); +const duplicateFiles: Awaited> = ["one", "two", "three"].map((dir) => ({ + path: `/p/${dir}/index.ts`, + relPath: `${dir}/index.ts`, + score: 1, + indices: [0, 1, 2, 3, 4], +})); +const resultOptions = () => within(document.getElementById("se-results")!).getAllByRole("option"); +const selectedOptions = () => resultOptions().filter((r) => r.getAttribute("aria-selected") === "true"); +async function showDuplicateFiles() { + findFiles = async () => duplicateFiles; + render(); + act(() => showSearchEverywhere("files", { query: "index" })); + await tick(); + return screen.getByLabelText("Search query"); +} +function clickOption(index: number, modifiers = {}) { + const row = resultOptions()[index]!; + fireEvent.mouseDown(row, modifiers); + fireEvent.click(row, modifiers); +} + +describe("Search Everywhere multi-selection", () => { + it("extends, shrinks, crosses the anchor and clamps Shift selection; plain arrows select one", async () => { + const input = await showDuplicateFiles(); + const key = (key: string, shiftKey = true) => fireEvent.keyDown(input, { key, shiftKey }); + key("ArrowDown", false); + key("ArrowDown"); + expect(selectedOptions()).toEqual(resultOptions().slice(1)); + key("ArrowDown"); + expect(selectedOptions()).toHaveLength(2); + key("ArrowUp"); + expect(selectedOptions()).toEqual([resultOptions()[1]]); + key("ArrowUp"); + expect(selectedOptions()).toEqual(resultOptions().slice(0, 2)); + key("ArrowDown", false); + expect(selectedOptions()).toEqual([resultOptions()[1]]); + expect(screen.getByRole("listbox", { name: "Results" })).toHaveAttribute("aria-multiselectable", "true"); + }); + + it("Shift-click selects a range without opening; an ordinary click opens just that file", async () => { + await showDuplicateFiles(); + clickOption(2, { shiftKey: true }); + expect(selectedOptions()).toHaveLength(3); + expect(openLocation).not.toHaveBeenCalled(); + expect(useSearchEverywhere.getState().open).toBe(true); + clickOption(1); + await tick(); + expect(openLocation).toHaveBeenCalledExactlyOnceWith("/p/two/index.ts", null, { side: false }); + expect(useSearchEverywhere.getState().open).toBe(false); + }); + + it.each(["macos", "windows", "linux"] as const)("uses the primary modifier to toggle a row on %s", async (os) => { + const previous = usePlatform.getState().os; + usePlatform.setState({ os }); + try { + const input = await showDuplicateFiles(); + const modifier = os === "macos" ? { metaKey: true } : { ctrlKey: true }; + clickOption(2, modifier); + expect(selectedOptions()).toEqual([resultOptions()[0], resultOptions()[2]]); + clickOption(0, modifier); + expect(selectedOptions()).toEqual([resultOptions()[2]]); + expect(openLocation).not.toHaveBeenCalled(); + fireEvent.keyDown(input, { key: "Enter" }); + await tick(); + expect(openLocation).toHaveBeenCalledExactlyOnceWith("/p/three/index.ts", null, { side: false }); + } finally { + usePlatform.setState({ os: previous }); + } + }); + + it("awaits each open in list order, keeps tabs and restores an upward range's lead", async () => { + const input = await showDuplicateFiles(); + fireEvent.keyDown(input, { key: "ArrowDown" }); + fireEvent.keyDown(input, { key: "ArrowDown" }); + fireEvent.keyDown(input, { key: "ArrowUp", shiftKey: true }); + let finishFirst!: () => void; + vi.mocked(openLocation).mockImplementationOnce( + () => + new Promise((r) => { + finishFirst = r; + }), + ); + fireEvent.keyDown(input, { key: "Enter" }); + await tick(); + expect(openLocation).toHaveBeenCalledTimes(1); + expect(useSearchEverywhere.getState().open).toBe(true); + fireEvent.keyDown(input, { key: "Enter" }); + expect(openLocation).toHaveBeenCalledTimes(1); + expect(openLocation).toHaveBeenNthCalledWith(1, "/p/two/index.ts", null, { + preview: false, + focus: false, + side: false, + }); + await act(async () => finishFirst()); + await tick(); + expect(vi.mocked(openLocation).mock.calls).toEqual([ + ["/p/two/index.ts", null, { preview: false, focus: false, side: false }], + ["/p/three/index.ts", null, { preview: false, focus: false, side: false }], + ["/p/two/index.ts", null, { preview: false, focus: true, side: false }], + ]); + expect(useSearchEverywhere.getState().open).toBe(false); + }); + + it("resets selection immediately on query changes and tab switches", async () => { + const input = await showDuplicateFiles(); + clickOption(2, { shiftKey: true }); + fireEvent.change(input, { target: { value: "index.t" } }); + expect(selectedOptions()).toHaveLength(1); + await tick(); + clickOption(2, { shiftKey: true }); + fireEvent.click(screen.getByRole("tab", { name: "All" })); + expect(selectedOptions()).toHaveLength(1); + await tick(); + expect(selectedOptions()).toHaveLength(1); + }); + + it.each(["classes", "symbols"] as const)("opens selected %s at their positions", async (tab) => { + findSymbols = async () => + ["First", "Second"].map((name, line) => ({ + name, + kind: tab === "classes" ? "class" : "function", + container: null, + path: `/p/${name}.ts`, + relPath: `${name}.ts`, + score: 1, + indices: [0], + range: { start: { line, col: 2 }, end: { line, col: 5 } }, + })); + render(); + act(() => showSearchEverywhere(tab, { query: "s" })); + await tick(); + const input = screen.getByLabelText("Search query"); + fireEvent.keyDown(input, { key: "ArrowDown", shiftKey: true }); + fireEvent.keyDown(input, { key: "Enter" }); + await tick(); + expect(openLocation).toHaveBeenNthCalledWith( + 1, + "/p/First.ts", + { line: 0, col: 2 }, + expect.objectContaining({ preview: false }), + ); + expect(openLocation).toHaveBeenNthCalledWith( + 2, + "/p/Second.ts", + { line: 1, col: 2 }, + expect.objectContaining({ preview: false }), + ); + }); + + it("ignores actions and settings in a mixed selection even when the lead is an action", async () => { + const run = vi.fn(); + const dispose = registerAction({ id: "test.index", title: "Index", category: "Test", run }); + findFiles = async () => duplicateFiles.slice(0, 2); + settings = async () => [{ pageId: "editor", title: "Index", path: ["Editor"] }]; + render(); + act(() => showSearchEverywhere("all", { query: "index" })); + await tick(); + const input = screen.getByLabelText("Search query"); + const count = resultOptions().length; + for (let i = 1; i < count; i++) fireEvent.keyDown(input, { key: "ArrowDown" }); + for (let i = 1; i < count; i++) fireEvent.keyDown(input, { key: "ArrowUp", shiftKey: true }); + expect(selectedOptions()).toHaveLength(count); + fireEvent.keyDown(input, { key: "Enter" }); + await tick(); + expect(run).not.toHaveBeenCalled(); + expect(vi.mocked(openLocation).mock.calls.map((c) => c[0])).toEqual([ + "/p/one/index.ts", + "/p/two/index.ts", + "/p/two/index.ts", + ]); + dispose(); + }); + + it("does not execute a multi-selection containing only actions", async () => { + const run = vi.fn(); + const disposers = ["One", "Two"].map((name) => + registerAction({ id: `test.index${name}`, title: `Index ${name}`, run }), + ); + render(); + act(() => showSearchEverywhere("actions", { query: "index" })); + await tick(); + const input = screen.getByLabelText("Search query"); + fireEvent.keyDown(input, { key: "ArrowDown", shiftKey: true }); + fireEvent.keyDown(input, { key: "Enter" }); + await tick(); + expect(run).not.toHaveBeenCalled(); + expect(openLocation).not.toHaveBeenCalled(); + disposers.forEach((d) => d()); + }); +}); + +describe("Recent Files multi-selection", () => { + async function showFiles() { + vi.spyOn(commands, "recentFiles").mockResolvedValue({ status: "ok", data: duplicateFiles.map((f) => f.path) }); + render(); + act(() => showRecentPopup("files")); + await tick(); + return screen.getByLabelText("Filter recent files"); + } + const options = () => within(screen.getByRole("listbox", { name: "Recent files" })).getAllByRole("option"); + afterEach(() => vi.restoreAllMocks()); + + it("extends and shrinks a keyboard range, then opens its files in order", async () => { + const input = await showFiles(); + fireEvent.keyDown(input, { key: "ArrowDown" }); + fireEvent.keyDown(input, { key: "ArrowUp", shiftKey: true }); + expect(options().filter((r) => r.getAttribute("aria-selected") === "true")).toHaveLength(2); + fireEvent.keyDown(input, { key: "Enter" }); + await tick(); + expect(vi.mocked(openLocation).mock.calls.map((c) => c[0])).toEqual([ + "/p/one/index.ts", + "/p/two/index.ts", + "/p/one/index.ts", + ]); + expect(useRecentPopup.getState().open).toBeNull(); + }); + + it("starts a range at the initially selected previous file", async () => { + vi.spyOn(contributions, "maybeEditorService").mockReturnValue({ + activePath: () => "/p/one/index.ts", + } as import("@/workbench/contributions").EditorService); + const input = await showFiles(); + expect(options()[1]).toHaveAttribute("aria-selected", "true"); + fireEvent.keyDown(input, { key: "ArrowDown", shiftKey: true }); + expect(options()[0]).toHaveAttribute("aria-selected", "false"); + expect(options()[1]).toHaveAttribute("aria-selected", "true"); + expect(options()[2]).toHaveAttribute("aria-selected", "true"); + }); + + it("handles modifier clicks and resets on filter text changes", async () => { + const input = await showFiles(); + const click = (i: number, modifiers: object) => { + fireEvent.mouseDown(options()[i]!, modifiers); + fireEvent.click(options()[i]!, modifiers); + }; + click(2, { shiftKey: true }); + expect(options().filter((r) => r.getAttribute("aria-selected") === "true")).toHaveLength(3); + click(1, { metaKey: true }); + expect(options().filter((r) => r.getAttribute("aria-selected") === "true")).toEqual([options()[0], options()[2]]); + expect(openLocation).not.toHaveBeenCalled(); + fireEvent.change(input, { target: { value: "index" } }); + expect(options().filter((r) => r.getAttribute("aria-selected") === "true")).toHaveLength(1); + click(1, {}); + await tick(); + expect(openLocation).toHaveBeenCalledExactlyOnceWith("/p/two/index.ts", null, { side: false }); + }); +}); + describe("Find in Files dialog", () => { it("streams results and previews the replacement", async () => { render(); diff --git a/src/features/search/common/open.ts b/src/features/search/common/open.ts index c5f52601f..a11da3857 100644 --- a/src/features/search/common/open.ts +++ b/src/features/search/common/open.ts @@ -82,3 +82,17 @@ export function saveJson(key: string, value: unknown) { /* storage unavailable */ } } + +/** Open persistent tabs in list order, then restore the lead's focus and position. */ +export async function openInListOrder( + items: readonly T[], + lead: T | undefined, + open: (item: T, options: Omit) => Promise, + side = false, + afterOpen?: () => Promise, +): Promise { + for (const item of items) await open(item, { preview: false, focus: false, side }); + await afterOpen?.(); + const target = lead && items.includes(lead) ? lead : items.at(-1); + if (target) await open(target, { preview: false, focus: true, side }); +} diff --git a/src/features/search/everywhere/SearchEverywhere.tsx b/src/features/search/everywhere/SearchEverywhere.tsx index f5bd6c410..c5c50460f 100644 --- a/src/features/search/everywhere/SearchEverywhere.tsx +++ b/src/features/search/everywhere/SearchEverywhere.tsx @@ -18,12 +18,16 @@ import { Select, Toggle, listNavigate, + selectRow, + selectedRows, + rowSelectionMode, + type RowSelection, type MenuItem, T, } from "@/ui"; import { useFileDecoration } from "@/workbench/contributions"; import { highlightTokens, languageForPath, type CodeToken } from "@/editor/lsp/markdown"; -import { badgeKind, basename, openLocation, relDir } from "../common/open"; +import { badgeKind, basename, openInListOrder, openLocation, relDir } from "../common/open"; import { parseLocationQuery } from "../common/query"; import { CodePreview, type PreviewHighlight } from "../find/parts"; import { SeController, type SeSnapshot } from "./controller"; @@ -81,7 +85,8 @@ export function SearchEverywhereOverlay() { return open ? : null; } -type Selection = { key: string | null; index: number; moved: boolean }; +type Selection = RowSelection & { key: string | null; anchorKey: string | null; moved: boolean }; +const INITIAL_SELECTION: Selection = { key: null, anchorKey: null, lead: -1, anchor: -1, keys: null, moved: false }; function SearchEverywhereDialog() { const tx = useTx(); @@ -100,7 +105,7 @@ function SearchEverywhereDialog() { const [extra, setExtra] = useState>>({}); const [snap, setSnap] = useState(null); const [controller] = useState(() => new SeController(ipcDeps(ctx), setSnap)); - const [sel, setSel] = useState({ key: null, index: -1, moved: false }); + const [sel, setSel] = useState(INITIAL_SELECTION); const [menu, setMenu] = useState<{ anchor: Element; items: MenuItem[]; @@ -134,12 +139,19 @@ function SearchEverywhereDialog() { return () => clearTimeout(t); }, [query, debounced]); + // Reset selection immediately, including while the new query is debouncing. + const [selectionInputs, setSelectionInputs] = useState({ query, tab }); + if (selectionInputs.query !== query || selectionInputs.tab !== tab) { + setSelectionInputs({ query, tab }); + setSel(INITIAL_SELECTION); + } + // New query / scope: forget "Show more" and the user's selection. const [prevInputs, setPrevInputs] = useState({ debounced, tab }); if (prevInputs.debounced !== debounced || prevInputs.tab !== tab) { setPrevInputs({ debounced, tab }); setExtra({}); - setSel({ key: null, index: -1, moved: false }); + setSel(INITIAL_SELECTION); } // "/fi" lists scope commands instead of searching. @@ -177,7 +189,7 @@ function SearchEverywhereDialog() { () => listing ?? (snap ? buildRows(snap.sections, { headers: !parsed.text.trim(), mix }) : []), [listing, snap, parsed.text, mix], ); - const active = stableIndex(rows, sel.key, sel.index, sel.moved); + const active = stableIndex(rows, sel.key, sel.lead, sel.moved); const activeRow = active >= 0 ? rows[active] : undefined; // Rows still answer an older query (debounce / in-flight search): Enter must wait. const settled = @@ -187,8 +199,20 @@ function SearchEverywhereDialog() { snap.tab === tab && topResultSettled(snap.sections, mix); const pendingEnter = useRef<{ side: boolean } | null>(null); + const opening = useRef(false); - const select = (index: number) => setSel({ key: rows[index]?.key ?? null, index, moved: true }); + const chosen = selectedRows(rows, { ...sel, lead: active }); + const select = (index: number, e?: KeyboardEvent | MouseEvent) => { + const anchor = rows.findIndex((r) => r.key === sel.anchorKey); + const next = selectRow( + rows, + { ...sel, lead: active, anchor: anchor < 0 ? active : anchor }, + index, + rowSelectionMode(e), + isSectionRow, + ); + setSel({ ...next, key: rows[next.lead]?.key ?? null, anchorKey: rows[next.anchor]?.key ?? null, moved: true }); + }; /** Typed or picked query; "/files foo" switches to Files with "foo". */ const setQuery = (value: string) => { history.current.pos = -1; @@ -246,24 +270,13 @@ function SearchEverywhereDialog() { case "more": { const step = tab === "all" ? MORE_STEP_ALL : MORE_STEP_TAB; setExtra((e) => ({ ...e, [row.section]: (e[row.section] ?? 0) + step })); - setSel({ key: null, index: rows.indexOf(row), moved: true }); + setSel({ ...INITIAL_SELECTION, lead: rows.indexOf(row), moved: true }); return; } case "file": - return closeThen( - () => void openLocation(row.path, row.line !== null ? { line: row.line, col: row.col ?? 0 } : null, { side }), - ); case "symbol": - return closeThen(() => void openLocation(row.path, { line: row.line, col: row.col }, { side })); case "text": - return closeThen( - () => - void openLocation( - row.path, - { line: row.line, col: row.col, endLine: row.line, endCol: row.endCol }, - { side }, - ), - ); + return closeThen(() => void openResult(row, { side })); case "action": if (!row.enabled) return; pushRecentAction(row.id); @@ -277,11 +290,27 @@ function SearchEverywhereDialog() { } }; + const activateSelection = (side = false) => { + if (opening.current) return; + if (chosen.length <= 1) return activate(chosen[0], side); + const navigable = chosen.filter(isNavigationRow); + if (!navigable.length) return close(); + opening.current = true; + pushSearchHistory(tab, query); + void openInListOrder( + navigable, + activeRow && isNavigationRow(activeRow) ? activeRow : undefined, + openResult, + side, + () => new Promise((resolve) => closeThen(resolve)), + ); + }; + useEffect(() => { const pending = pendingEnter.current; if (!pending || !settled) return; pendingEnter.current = null; - activate(activeRow, pending.side); + activateSelection(pending.side); }); /** IDEA's ⌥↵ on an action: record a shortcut for it (written to the active keymap). */ @@ -291,7 +320,7 @@ function SearchEverywhereDialog() { const row = activeRow; if (!row || row.kind === "section" || row.kind === "more" || row.kind === "command") return; if (row.kind === "action") return assignShortcut(row.id); - const anchor = listRef.current?.querySelector('[aria-selected="true"]') ?? inputRef.current; + const anchor = listRef.current?.querySelector('[data-lead="true"]') ?? inputRef.current; if (!anchor) return; const copy = (text: string) => void navigator.clipboard?.writeText(text).catch(() => {}); const items: MenuItem[] = @@ -331,7 +360,7 @@ function SearchEverywhereDialog() { closeThen(() => void executeAction("find.inPath", { query: parsed.text })); else if (listing) activate(activeRow); else if (!settled && !sel.moved) pendingEnter.current = { side: e.shiftKey }; - else activate(activeRow, e.shiftKey); + else activateSelection(e.shiftKey); return; } if (e.altKey && (e.key === "ArrowUp" || e.key === "ArrowDown")) { @@ -347,15 +376,15 @@ function SearchEverywhereDialog() { const jump = groupJump(rows, active, e.key === "PageDown" || e.key === "ArrowDown" ? 1 : -1); if (jump !== null) { e.preventDefault(); - select(jump); + select(jump, e); return; } } if (!["ArrowDown", "ArrowUp", "PageDown", "PageUp"].includes(e.key)) return; - const next = listNavigate(e.key, { items: rows, active, isSection: isSectionRow, wrap: true, pageSize: 10 }); + const next = listNavigate(e.key, { items: rows, active, isSection: isSectionRow, wrap: !e.shiftKey, pageSize: 10 }); if (next === null) return; e.preventDefault(); - select(next); + select(next, e); }; const maxList = preview ? MAX_LIST_PREVIEW : MAX_LIST; @@ -522,7 +551,8 @@ function SearchEverywhereDialog() { {r.kind === "section" ? {r.title} : ""} )} activeIndex={active} - onActiveChange={select} + onSelect={select} + isSelected={(r) => !!sel.keys?.has(r.key)} onActivate={(r, _i, e) => activate(r, (e as MouseEvent).shiftKey)} focusable={false} rowHeight={ROW} @@ -844,3 +874,21 @@ function FileRow({ ); } + +type NavigationRow = Extract; +function isNavigationRow(row: SeRow): row is NavigationRow { + return row.kind === "file" || row.kind === "symbol" || row.kind === "text"; +} +function openResult(row: NavigationRow, options: Parameters[2]): Promise { + if (row.kind === "file") + return openLocation(row.path, row.line !== null ? { line: row.line, col: row.col ?? 0 } : null, options); + return openLocation( + row.path, + { + line: row.line, + col: row.col, + ...(row.kind === "text" ? { endLine: row.line, endCol: row.endCol } : {}), + }, + options, + ); +} diff --git a/src/features/search/find/rowSelection.ts b/src/features/search/find/rowSelection.ts index 19d35b58a..6930c0073 100644 --- a/src/features/search/find/rowSelection.ts +++ b/src/features/search/find/rowSelection.ts @@ -1,52 +1 @@ -/** - * Multi-selection of the Find in Files results list: click / ↑↓ select one row, - * ⇧ extends from the anchor, ⌘/Ctrl toggles a row (IDEA's results table). - */ - -export interface RowSelection { - /** Active row (keyboard focus, preview). */ - lead: number; - /** Start of ⇧ ranges. */ - anchor: number; - /** Keys of the selected rows; `null` when only the lead is selected. */ - keys: ReadonlySet | null; -} - -export const SINGLE_FIRST: RowSelection = { lead: 0, anchor: 0, keys: null }; - -export function selectRow( - rows: ReadonlyArray<{ key: string }>, - sel: RowSelection, - index: number, - mode: "single" | "range" | "toggle" = "single", -): RowSelection { - if (index < 0 || index >= rows.length) return sel; - if (mode === "range") { - const anchor = Math.min(Math.max(0, sel.anchor), rows.length - 1); - const [a, b] = anchor <= index ? [anchor, index] : [index, anchor]; - return { lead: index, anchor, keys: new Set(rows.slice(a, b + 1).map((r) => r.key)) }; - } - if (mode === "toggle") { - const keys = new Set(sel.keys ?? (rows[sel.lead] ? [rows[sel.lead]!.key] : [])); - const key = rows[index]!.key; - if (!keys.has(key)) return { lead: index, anchor: index, keys: keys.add(key) }; - keys.delete(key); - const rest = rows.findLastIndex((r) => keys.has(r.key)); - if (rest < 0) return { lead: index, anchor: index, keys: null }; - return { lead: rest, anchor: rest, keys }; - } - return { lead: index, anchor: index, keys: null }; -} - -/** The selected rows in list order (the lead when nothing else is selected). */ -export function selectedRows(rows: readonly T[], sel: RowSelection): T[] { - if (!rows.length) return []; - const lead = Math.min(sel.lead, rows.length - 1); - if (!sel.keys) return [rows[lead]!]; - const out = rows.filter((r) => sel.keys!.has(r.key)); - return out.length ? out : [rows[lead]!]; -} - -export function isRowSelected(sel: RowSelection, key: string): boolean { - return !!sel.keys?.has(key); -} +export { SINGLE_FIRST, isRowSelected, selectRow, selectedRows, type RowSelection } from "@/ui/rowSelection"; diff --git a/src/features/search/recent/RecentPopups.tsx b/src/features/search/recent/RecentPopups.tsx index efab57b66..a6b79e08b 100644 --- a/src/features/search/recent/RecentPopups.tsx +++ b/src/features/search/recent/RecentPopups.tsx @@ -5,7 +5,21 @@ import { editorsFor, getNavigationHistory } from "@/editor/api"; import { call, commands, type OutlineItem } from "@/platform/ipc"; import { shortcutLabel } from "@/platform/keymap"; import { useProject } from "@/platform/project"; -import { Checkbox, Dialog, HighlightedText, Icon, List, fileIconName, listNavigate, T } from "@/ui"; +import { + Checkbox, + Dialog, + HighlightedText, + Icon, + List, + fileIconName, + listNavigate, + selectRow, + selectedRows, + rowSelectionMode, + SINGLE_FIRST, + type RowSelection, + T, +} from "@/ui"; import { maybeEditorService, toolWindowService, @@ -15,7 +29,7 @@ import { type ToolWindowContribution, } from "@/workbench/contributions"; import { highlightTokens, languageForPath, type CodeToken } from "@/editor/lsp/markdown"; -import { basename, openLocation } from "../common/open"; +import { basename, openInListOrder, openLocation } from "../common/open"; import { outlinePathAt } from "../structure/outline"; import { fromNavigationHistory, isDismissed, mergeLocations, type RecentLocation } from "../common/locations"; import { dismissLocation, useTracking } from "../common/tracking"; @@ -73,6 +87,14 @@ function RecentFilesDialog() { const [column, setColumn] = useState<"files" | "tools">("files"); const [fileIndex, setFileIndex] = useState(null); const [toolIndex, setToolIndex] = useState(0); + const opening = useRef(false); + const [previousEditedOnly, setPreviousEditedOnly] = useState(editedOnly); + const [fileSelection, setFileSelection] = useState(SINGLE_FIRST); + if (previousEditedOnly !== editedOnly) { + setPreviousEditedOnly(editedOnly); + setFileSelection(SINGLE_FIRST); + setFileIndex(null); + } const inputRef = useRef(null); // The current editor: a file path, or the key of a non-file editor (Switcher lists those too). const activePath = useMemo(() => { @@ -106,6 +128,7 @@ function RecentFilesDialog() { ), [paths, tabs, removed, query, root, edited, editedOnly], ); + const fileRows = useMemo(() => files.map((f) => ({ ...f, key: f.path })), [files]); const tools = useMemo(() => switcherToolWindows(toolWindows.values(), !!root, query), [toolWindows, root, query]); const fIndex = files.length ? Math.min(fileIndex ?? initialFileIndex(files, activePath, query), files.length - 1) @@ -123,6 +146,31 @@ function RecentFilesDialog() { ); }; + const selectFile = (index: number, e?: KeyboardEvent | ReactMouseEvent) => { + const next = selectRow( + fileRows, + { ...fileSelection, lead: fIndex, anchor: fileSelection.keys ? fileSelection.anchor : fIndex }, + index, + switcher ? "single" : rowSelectionMode(e), + ); + setFileSelection(next); + setFileIndex(next.lead); + setColumn("files"); + }; + const openFiles = (side = false) => { + if (opening.current) return; + const chosen = selectedRows(fileRows, { ...fileSelection, lead: fIndex }); + if (chosen.length <= 1) return openFile(chosen[0], side); + opening.current = true; + void openInListOrder( + chosen, + fileRows[fIndex], + (f, options) => openLocation(f.path, null, options), + side, + () => new Promise((resolve) => afterClose(resolve)), + ); + }; + const openTool = (tw: ToolWindowContribution | undefined) => { if (tw) afterClose(() => toolWindowService().show(tw.id, true)); }; @@ -143,6 +191,7 @@ function RecentFilesDialog() { if (!switcher) void call(commands.removeRecent(item.path)).catch(() => {}); setRemoved((r) => new Set(r).add(item.path)); setFileIndex(fIndex); + setFileSelection({ lead: fIndex, anchor: fIndex, keys: null }); }; // Switcher: each ⌃⇥ moves one row, past the end into the other column; releasing Ctrl opens the selection. @@ -182,7 +231,7 @@ function RecentFilesDialog() { // Nothing recent matches: carry the text over to Go to File. const text = query.trim(); afterClose(() => showSearchEverywhere("files", { query: text })); - } else if (effectiveColumn === "files") openFile(files[fIndex], e.shiftKey); + } else if (effectiveColumn === "files") openFiles(e.shiftKey); else openTool(tools[tIndex]?.tw); return; } @@ -201,6 +250,7 @@ function RecentFilesDialog() { if (e.key === "Tab" || ((e.key === "ArrowLeft" || e.key === "ArrowRight") && !query)) { e.preventDefault(); e.stopPropagation(); + setFileSelection(SINGLE_FIRST); setColumn( e.key === "ArrowLeft" ? "tools" @@ -215,8 +265,8 @@ function RecentFilesDialog() { if (!NAV_KEYS.includes(e.key)) return; e.preventDefault(); if (effectiveColumn === "files") { - const next = listNavigate(e.key, { items: files, active: fIndex, wrap: true }); - if (next !== null) setFileIndex(next); + const next = listNavigate(e.key, { items: files, active: fIndex, wrap: switcher || !e.shiftKey }); + if (next !== null) selectFile(next, e); } else { const next = listNavigate(e.key, { items: tools, active: tIndex, wrap: true }); if (next !== null) setToolIndex(next); @@ -248,6 +298,7 @@ function RecentFilesDialog() { onChange={(e) => { setQuery(e.target.value); setFileIndex(null); + setFileSelection(SINGLE_FIRST); setToolIndex(0); }} onKeyDown={onKeyDown} @@ -280,6 +331,7 @@ function RecentFilesDialog() { getKey={(t) => t.tw.id} activeIndex={effectiveColumn === "tools" ? tIndex : -1} onActiveChange={(i) => { + setFileSelection(SINGLE_FIRST); setToolIndex(i); setColumn("tools"); }} @@ -307,10 +359,9 @@ function RecentFilesDialog() { items={files} getKey={(f) => f.path} activeIndex={effectiveColumn === "files" ? fIndex : -1} - onActiveChange={(i) => { - setFileIndex(i); - setColumn("files"); - }} + onActiveChange={switcher ? (i) => selectFile(i) : undefined} + onSelect={switcher ? undefined : selectFile} + isSelected={(f) => effectiveColumn === "files" && !!fileSelection.keys?.has(f.path)} onActivate={(f, _i, e) => openFile(f, e.shiftKey)} focusable={false} rowHeight={24} diff --git a/src/ui/List.tsx b/src/ui/List.tsx index 5a361ddcd..71417a26d 100644 --- a/src/ui/List.tsx +++ b/src/ui/List.tsx @@ -16,6 +16,7 @@ import { } from "react"; import clsx from "clsx"; import { useVirtualizer } from "@tanstack/react-virtual"; +import { rowSelectionMode } from "./rowSelection"; import styles from "./List.module.css"; export interface ListRowState { @@ -32,6 +33,8 @@ export interface ListProps { activeIndex?: number; defaultActiveIndex?: number; onActiveChange?: (index: number) => void; + /** Opt into modifier selection; modified clicks select without activating. */ + onSelect?: (index: number, e: KeyboardEvent | MouseEvent) => void; /** Rows selected besides the active one (multi-selection); drawn like the active row. */ isSelected?: (item: T, index: number) => boolean; onActivate?: (item: T, index: number, e: KeyboardEvent | MouseEvent) => void; @@ -115,6 +118,7 @@ export function List({ activeIndex, defaultActiveIndex, onActiveChange, + onSelect, isSelected, onActivate, onContextMenu, @@ -169,7 +173,8 @@ export function List({ const next = listNavigate(e.key, { items, active, isSection, pageSize }); if (next === null) return; e.preventDefault(); - if (next !== active) setActive(next); + if (onSelect) onSelect(next, e); + else if (next !== active) setActive(next); }; if (!items.length && empty) return
{empty}
; @@ -178,6 +183,7 @@ export function List({
({ id={`${baseId}-${v.index}`} role="option" aria-selected={selected} + data-lead={isActive || undefined} aria-posinset={optionIndex.idx[v.index]} aria-setsize={optionIndex.count} className={clsx(styles.row, selected && styles.active)} @@ -217,9 +224,12 @@ export function List({ onMouseDown={(e) => { if (e.button !== 0) return; if (!focusable) e.preventDefault(); - setActive(v.index); + if (!onSelect) setActive(v.index); + }} + onClick={(e) => { + onSelect?.(v.index, e); + if (!onSelect || rowSelectionMode(e) === "single") onActivate?.(item, v.index, e); }} - onClick={(e) => onActivate?.(item, v.index, e)} onContextMenu={onContextMenu ? (e) => onContextMenu(item, v.index, e) : undefined} > {renderItem(item, { active: isActive, index: v.index })} diff --git a/src/ui/index.ts b/src/ui/index.ts index 21427a32f..669975184 100644 --- a/src/ui/index.ts +++ b/src/ui/index.ts @@ -33,3 +33,4 @@ export { lazyComponent, prefetchLazyComponents } from "./lazy"; export { T } from "./T"; export { selectableText, copyMenuFor, copyText } from "./selectableText"; export { useSelectionBoundary } from "./useSelectionBoundary"; +export * from "./rowSelection"; diff --git a/src/ui/rowSelection.test.ts b/src/ui/rowSelection.test.ts new file mode 100644 index 000000000..c06936aec --- /dev/null +++ b/src/ui/rowSelection.test.ts @@ -0,0 +1,22 @@ +import { describe, expect, it } from "vitest"; +import { selectRow, selectedRows } from "./rowSelection"; + +describe("list selection across sections", () => { + it("selects only options across headers in either direction", () => { + const rows = [ + { key: "files", section: true }, + { key: "a", section: false }, + { key: "symbols", section: true }, + { key: "b", section: false }, + { key: "actions", section: true }, + { key: "c", section: false }, + ]; + const single = { lead: 3, anchor: 3, keys: null }; + const section = (row: (typeof rows)[number]) => row.section; + const down = selectRow(rows, single, 5, "range", section); + expect(selectedRows(rows, down).map((r) => r.key)).toEqual(["b", "c"]); + const up = selectRow(rows, down, 1, "range", section); + expect(selectedRows(rows, up).map((r) => r.key)).toEqual(["a", "b"]); + expect(selectRow(rows, up, 2, "toggle", section)).toBe(up); + }); +}); diff --git a/src/ui/rowSelection.ts b/src/ui/rowSelection.ts new file mode 100644 index 000000000..05c8261dc --- /dev/null +++ b/src/ui/rowSelection.ts @@ -0,0 +1,74 @@ +import { hasPrimaryModifier } from "@/platform/keymap"; + +/** + * Multi-selection of list rows: click / ↑↓ select one row, + * ⇧ extends from the anchor, ⌘/Ctrl toggles a row. + */ + +export interface RowSelection { + /** Active row (keyboard focus, preview). */ + lead: number; + /** Start of ⇧ ranges. */ + anchor: number; + /** Keys of the selected rows; `null` when only the lead is selected. */ + keys: ReadonlySet | null; +} + +export const SINGLE_FIRST: RowSelection = { lead: 0, anchor: 0, keys: null }; + +export function selectRow( + rows: readonly T[], + sel: RowSelection, + index: number, + mode: "single" | "range" | "toggle" = "single", + isSection?: (row: T) => boolean, +): RowSelection { + if (index < 0 || index >= rows.length || isSection?.(rows[index]!)) return sel; + if (mode === "range") { + const anchor = Math.min(Math.max(0, sel.anchor), rows.length - 1); + const [a, b] = anchor <= index ? [anchor, index] : [index, anchor]; + return { + lead: index, + anchor, + keys: new Set( + rows + .slice(a, b + 1) + .filter((r) => !isSection?.(r)) + .map((r) => r.key), + ), + }; + } + if (mode === "toggle") { + const keys = new Set(sel.keys ?? (rows[sel.lead] ? [rows[sel.lead]!.key] : [])); + const key = rows[index]!.key; + if (!keys.has(key)) return { lead: index, anchor: index, keys: keys.add(key) }; + keys.delete(key); + const rest = rows.findLastIndex((r) => keys.has(r.key)); + if (rest < 0) return { lead: index, anchor: index, keys: null }; + return { lead: rest, anchor: rest, keys }; + } + return { lead: index, anchor: index, keys: null }; +} + +/** The selected rows in list order (the lead when nothing else is selected). */ +export function selectedRows(rows: readonly T[], sel: RowSelection): T[] { + if (!rows.length || sel.lead < 0) return []; + const lead = Math.min(sel.lead, rows.length - 1); + if (!sel.keys) return [rows[lead]!]; + const out = rows.filter((r) => sel.keys!.has(r.key)); + return out.length ? out : [rows[lead]!]; +} + +export function isRowSelected(sel: RowSelection, key: string): boolean { + return !!sel.keys?.has(key); +} + +export function rowSelectionMode(e?: { + shiftKey: boolean; + metaKey: boolean; + ctrlKey: boolean; + type: string; +}): "single" | "range" | "toggle" { + if (e?.shiftKey) return "range"; + return e?.type === "click" && hasPrimaryModifier(e) ? "toggle" : "single"; +} From f19eacc33647406533bd48802567776d3e175e89 Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sun, 1 Nov 2026 16:08:16 +0800 Subject: [PATCH 15/27] fix(java): skip unchanged Maven launch builds (#667) Run/Debug of a Maven module with Kotlin/Groovy/Scala sources rebuilt the module and its reactor dependencies with Maven before every launch, even when nothing had changed. Each successful launch build now records a fingerprint of its inputs (sources and resource roots of the dependency closure, module and parent POMs, imported BOMs, wrapper/.mvn/settings/toolchains, JDK, command line and environment) together with an immutable snapshot of its outputs in the project cache. A later launch with the same fingerprint reuses the snapshot without running Maven; Run and Debug share it, application and test launches are kept apart. Inputs that cannot be resolved reliably (dynamic roots overridden by profiles or -D) always rebuild. A failed, cancelled or concurrently edited build never publishes a reusable record. Superseded snapshots stay available while JVMs of the current session may still load classes and are removed when the project closes; snapshots left by earlier sessions and no longer referenced are cleaned on the first launch. Fixes #530 --- crates/ide-build/src/compile/fingerprint.rs | 321 +++++++++++++++++ crates/ide-build/src/compile/mod.rs | 3 + crates/ide-build/src/maven.rs | 66 ++++ crates/ide-build/src/process.rs | 2 +- crates/ide-host/src/ops/java.rs | 59 ++-- crates/ide-host/src/ops/java/cache.rs | 371 ++++++++++++++++++++ crates/ide-host/src/project.rs | 12 +- 7 files changed, 798 insertions(+), 36 deletions(-) create mode 100644 crates/ide-build/src/compile/fingerprint.rs create mode 100644 crates/ide-host/src/ops/java/cache.rs diff --git a/crates/ide-build/src/compile/fingerprint.rs b/crates/ide-build/src/compile/fingerprint.rs new file mode 100644 index 000000000..8274003d6 --- /dev/null +++ b/crates/ide-build/src/compile/fingerprint.rs @@ -0,0 +1,321 @@ +//! Metadata fingerprints for successful Maven launch builds. +use super::*; +use std::fs; +use std::hash::{Hash, Hasher}; +use std::time::SystemTime; + +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] +pub struct LaunchFingerprint { + version: u32, + parameters: String, + files: BTreeMap>, +} + +fn scan( + path: &Path, + files: &mut BTreeMap>, + ancestors: &mut HashSet, + cancel: &CancellationToken, +) -> IdeResult<()> { + if cancel.is_cancelled() { + return Err(IdeError::cancelled()); + } + let meta = match fs::metadata(path) { + Ok(meta) => meta, + Err(e) if e.kind() == std::io::ErrorKind::NotFound => { + files.insert(path.to_path_buf(), None); + return Ok(()); + } + Err(e) => return Err(e.into()), + }; + if meta.is_dir() { + let canonical = dunce::canonicalize(path)?; + if !ancestors.insert(canonical.clone()) { + return Err(IdeError::internal("cyclic launch input directory")); + } + // Directory mtimes change on irrelevant JDT writes. File paths detect additions/deletions. + files.insert(path.to_path_buf(), None); + for entry in fs::read_dir(path)? { + scan(&entry?.path(), files, ancestors, cancel)?; + } + ancestors.remove(&canonical); + } else if meta.is_file() { + files.insert(path.to_path_buf(), Some((meta.len(), meta.modified()?))); + } else { + return Err(IdeError::internal("unsupported launch input file")); + } + Ok(()) +} + +/// `None` means an input cannot be resolved safely: build normally without reuse. +/// All filesystem work belongs on the caller's blocking thread. +pub fn launch_fingerprint( + root: &Path, + model: &BuildModel, + module: &Path, + test: bool, + local_repo: Option, + cancel: &CancellationToken, +) -> IdeResult> { + let Some(m) = &model.maven else { return Ok(None) }; + let projects = maven_launch_projects(root, m, module, test); + if projects.is_empty() { + return Ok(None); + } + let Some(mut inputs) = maven::launch_inputs(root, &projects, local_repo) else { return Ok(None) }; + let plan = launch_plan(root, model, module, test)?; + let mut environment: BTreeMap = std::env::vars() + .map(|(key, value)| (key.to_ascii_uppercase(), value)) + .filter(|(key, _)| { + key.starts_with("MAVEN_") + || key.starts_with("JAVA_") + || key.starts_with("JDK_") + || matches!( + key.as_str(), + "PATH" | "HOME" | "LANG" | "LC_ALL" | "_JAVA_OPTIONS" | "M2_HOME" | "MAVEN_HOME" + ) + }) + .collect(); + // Explicit step values override the inherited environment just as they do in Command. + for step in &plan.steps { + environment.extend(step.env.iter().map(|(key, value)| (key.to_ascii_uppercase(), value.clone()))); + for dir in step.cwd.ancestors() { + inputs.extend([dir.join(".mvn"), dir.join("mvnw"), dir.join("mvnw.cmd")]); + if dir == root { + break; + } + } + let program = process::program_path(&step.program, &step.env); + inputs.push(program.clone()); + // Maven installed via a symlink still reads conf from its distribution. + if let Ok(program) = dunce::canonicalize(program) + && let Some(home) = program.parent().and_then(Path::parent) + { + for conf in ["conf", "libexec/conf"] { + inputs.extend([home.join(conf).join("settings.xml"), home.join(conf).join("toolchains.xml")]); + } + } + if !environment.contains_key("JAVA_HOME") { + let java = process::program_path(if cfg!(windows) { "java.exe" } else { "java" }, &step.env); + inputs.push(java.clone()); + if let Ok(java) = dunce::canonicalize(java) + && let Some(home) = java.parent().and_then(Path::parent) + { + inputs.push(home.join("release")); + } + } + for (i, arg) in step.args.iter().enumerate() { + if matches!(arg.as_str(), "-s" | "--settings" | "-gs" | "--global-settings" | "-t" | "--toolchains") + && let Some(file) = step.args.get(i + 1) + { + inputs.push(step.cwd.join(file)); + } + for prefix in ["--settings=", "--global-settings=", "--toolchains="] { + if let Some(file) = arg.strip_prefix(prefix) { + inputs.push(step.cwd.join(file)); + } + } + } + } + if let Some(home) = dirs::home_dir() { + inputs.extend([home.join(".m2/settings.xml"), home.join(".m2/toolchains.xml")]); + } + for key in ["MAVEN_HOME", "M2_HOME"] { + if let Some(home) = environment.get(key) { + inputs.extend([Path::new(home).join("conf/settings.xml"), Path::new(home).join("conf/toolchains.xml")]); + } + } + if let Some(home) = environment.get("JAVA_HOME") { + inputs.extend([ + Path::new(home).join("release"), + Path::new(home).join("lib/modules"), + Path::new(home).join("lib/tools.jar"), + Path::new(home).join(if cfg!(windows) { "bin/java.exe" } else { "bin/java" }), + ]); + } + let steps: Vec<_> = + plan.steps.iter().map(|s| (process::program_path(&s.program, &s.env), &s.args, &s.cwd, &s.env)).collect(); + // Profiles and plugins can read arbitrary environment variables. Keep a signature + // of the inherited environment without persisting unrelated credentials. + let inherited: BTreeMap<_, _> = std::env::vars_os().collect(); + let mut inherited_hash = std::hash::DefaultHasher::new(); + inherited.hash(&mut inherited_hash); + let parameters = + serde_json::to_string(&(root, module, test, steps, environment, inherited_hash.finish(), projects)) + .map_err(|e| IdeError::internal(e.to_string()))?; + let mut files = BTreeMap::new(); + for path in inputs { + scan(&path, &mut files, &mut HashSet::new(), cancel)?; + } + // Store project inputs relative to the project, including each file's relative path. + let files = files.into_iter().map(|(p, stamp)| (p.strip_prefix(root).unwrap_or(&p).to_path_buf(), stamp)).collect(); + Ok(Some(LaunchFingerprint { version: 1, parameters, files })) +} + +#[cfg(test)] +mod tests { + use super::*; + + fn write(root: &Path, rel: &str, value: &str) { + let path = root.join(rel); + fs::create_dir_all(path.parent().unwrap()).unwrap(); + fs::write(path, value).unwrap(); + } + + fn fixture(root: &Path) -> BuildModel { + write( + root, + "pom.xml", + r#"demoparent1 + pomlibapp"#, + ); + write( + root, + "lib/pom.xml", + r#"demoparent1 + libcodeconf"#, + ); + write( + root, + "app/pom.xml", + r#"demoparent1 + appdemolib1"#, + ); + write(root, "lib/src/main/kotlin/Channel.kt", "value"); + write(root, "app/src/main/resources/app.properties", "key=value"); + write(root, "lib/conf/custom.properties", "custom=value"); + write(root, "lib/code/Custom.java", "class Custom {}"); + BuildModel { maven: Some(maven::load(root)), ..Default::default() } + } + + fn fingerprint(root: &Path, model: &BuildModel) -> Option { + launch_fingerprint(root, model, &root.join("app"), false, None, &CancellationToken::new()).unwrap() + } + + #[test] + fn unchanged_inputs_match_but_source_resource_pom_add_delete_and_mtime_invalidate() { + for rel in [ + "lib/src/main/kotlin/Channel.kt", + "app/src/main/resources/app.properties", + "lib/conf/custom.properties", + "lib/code/Custom.java", + "app/pom.xml", + "lib/pom.xml", + "pom.xml", + ".mvn/maven.config", + "lib/src/main/groovy/New.groovy", + "app/src/test/scala/Test.scala", + ] { + let dir = tempfile::tempdir().unwrap(); + let root = dir.path(); + let model = fixture(root); + let before = fingerprint(root, &model); + assert!(before.is_some()); + assert_eq!(before, fingerprint(root, &model), "unchanged {rel}"); + let serialized = serde_json::to_vec(&before).unwrap(); + assert_eq!(before, serde_json::from_slice(&serialized).unwrap()); + let value = if rel.ends_with("pom.xml") { + format!("{}", fs::read_to_string(root.join(rel)).unwrap()) + } else { + "changed input".to_owned() + }; + write(root, rel, &value); + let changed = fingerprint(root, &model); + assert_ne!(before, changed, "changed/added {rel}"); + let file = fs::OpenOptions::new().write(true).open(root.join(rel)).unwrap(); + file.set_modified(SystemTime::UNIX_EPOCH + std::time::Duration::from_secs(42)).unwrap(); + let touched = fingerprint(root, &model); + assert_ne!(changed, touched, "mtime-only {rel}"); + fs::remove_file(root.join(rel)).unwrap(); + assert_ne!(touched, fingerprint(root, &model), "deleted {rel}"); + } + } + + #[test] + fn profile_options_jdk_goal_and_wrapper_invalidate_without_using_class_outputs() { + let dir = tempfile::tempdir().unwrap(); + let root = dir.path(); + let mut model = fixture(root); + let before = fingerprint(root, &model); + write(root, "lib/target/classes/Channel.class", "JDT stub"); + write(root, "app/target/classes/Main.class", "JDT stub"); + assert_eq!(before, fingerprint(root, &model)); + let mut previous = before.clone(); + for option in ["-Pdev", "-Pprod", "-DskipTests", "-o"] { + model.maven.as_mut().unwrap().projects[0].options = vec![option.into()]; + let current = fingerprint(root, &model); + assert_ne!(previous, current, "{option}"); + previous = current; + } + model.maven.as_mut().unwrap().projects[0].options.clear(); + model.maven.as_mut().unwrap().projects[0] + .env + .insert("JAVA_HOME".into(), root.join("jdk").to_string_lossy().into_owned()); + let jdk = fingerprint(root, &model); + assert_ne!(before, jdk); + write(root, "jdk/release", "JAVA_VERSION=21"); + assert_ne!(jdk, fingerprint(root, &model)); + model.maven.as_mut().unwrap().projects[0].env.clear(); + let test = launch_fingerprint(root, &model, &root.join("app"), true, None, &CancellationToken::new()) + .unwrap() + .unwrap(); + assert_ne!(before, Some(test)); + write(root, "mvnw", "wrapper changed"); + assert_ne!(before, fingerprint(root, &model)); + } + + #[test] + fn unresolved_roots_and_cancel_never_claim_up_to_date() { + let dir = tempfile::tempdir().unwrap(); + let root = dir.path(); + let model = fixture(root); + write( + root, + "lib/pom.xml", + "lib${unknown}/src", + ); + assert!( + launch_fingerprint(root, &model, &root.join("app"), false, None, &CancellationToken::new()) + .unwrap() + .is_none() + ); + let model = fixture(root); + let cancel = CancellationToken::new(); + cancel.cancel(); + assert!(launch_fingerprint(root, &model, &root.join("app"), false, None, &cancel).is_err()); + } + #[test] + fn external_parent_and_selected_settings_files_invalidate() { + let dir = tempfile::tempdir().unwrap(); + let root = dir.path().join("project"); + let repo = dir.path().join("repository"); + write( + &repo, + "demo/parent/1/parent-1.pom", + "demoparent1", + ); + write( + &root, + "pom.xml", + "demoparent1app", + ); + let mut model = crate::load(&root, &root.join("cache"), Some(repo.clone())); + let settings = dir.path().join("custom-settings.xml"); + fs::write(&settings, "").unwrap(); + model.maven.as_mut().unwrap().projects[0].options = vec!["-s".into(), settings.to_string_lossy().into_owned()]; + let get = + || launch_fingerprint(&root, &model, &root, false, Some(repo.clone()), &CancellationToken::new()).unwrap(); + let before = get(); + assert!(before.is_some()); + write( + &repo, + "demo/parent/1/parent-1.pom", + "demoparent1", + ); + let parent = get(); + assert_ne!(before, parent); + fs::write(settings, "dev") + .unwrap(); + assert_ne!(parent, get()); + } +} diff --git a/crates/ide-build/src/compile/mod.rs b/crates/ide-build/src/compile/mod.rs index b674e1adf..9cd0ea26f 100644 --- a/crates/ide-build/src/compile/mod.rs +++ b/crates/ide-build/src/compile/mod.rs @@ -3,8 +3,11 @@ //! background with cancellation and parses the compiler output into messages //! for the Build tool window, the Problems view and the editor. +mod fingerprint; mod parse; +pub use fingerprint::{LaunchFingerprint, launch_fingerprint}; + use crate::process::{self, Stream}; use crate::{BuildModel, maven}; use ide_core::{CancellationToken, Diagnostic, IdeError, IdeResult, Pos, Range, Severity}; diff --git a/crates/ide-build/src/maven.rs b/crates/ide-build/src/maven.rs index 2c0e3f8fb..7f2561003 100644 --- a/crates/ide-build/src/maven.rs +++ b/crates/ide-build/src/maven.rs @@ -601,6 +601,72 @@ impl Resolver { } } +/// Files and source/resource trees consumed by a launch build. Unresolved custom +/// roots disable reuse rather than silently omitting an input. +pub(crate) fn launch_inputs( + root: &Path, + projects: &[&MavenProject], + local_repo: Option, +) -> Option> { + fn roots(el: &Element, parent: &str, dir: &Path, out: &mut Vec) -> Option<()> { + let input = + matches!(el.name.as_str(), "sourceDirectory" | "testSourceDirectory" | "sourceDir" | "testSourceDir") + || (matches!(parent, "sources" | "sourceDirs" | "testSources" | "testSourceDirs") + && matches!(el.name.as_str(), "source" | "sourceDir" | "testSourceDir")) + || (matches!(parent, "resource" | "testResource" | "source" | "testSource") && el.name == "directory") + || (parent == "filters" && el.name == "filter"); + // Profile activation may depend on the presence of an otherwise unrelated file. + let activation = parent == "file" && matches!(el.name.as_str(), "exists" | "missing"); + if input || activation { + // Other properties can be overridden by -D, profiles or settings. + // Without Maven's effective roots, conservatively disable reuse for them. + let value = el + .text + .trim() + .replace("${project.basedir}", &dir.to_string_lossy()) + .replace("${basedir}", &dir.to_string_lossy()); + if value.contains("${") { + return None; + } + if !value.is_empty() { + out.push(dir.join(value)); + } + } + for child in &el.children { + roots(child, &el.name, dir, out)?; + } + Some(()) + } + let mut resolver = Resolver::new(local_repo.or_else(default_local_repo)); + let mut out = Vec::new(); + for project in projects { + let dir = root.join(&project.dir); + // Include all conventional language/resource roots, including nonstandard files under src. + out.push(dir.join("src")); + let pom = root.join(&project.pom); + resolver.context(&pom, 0); + let mut path = pom; + let mut seen = HashSet::new(); + loop { + let canonical = dunce::canonicalize(&path).ok()?; + if !seen.insert(canonical) || seen.len() > MAX_PARENT_DEPTH { + return None; + } + out.push(path.clone()); + let text = std::fs::read_to_string(&path).ok()?; + roots(&xml::parse(&text)?, "", &dir, &mut out)?; + let raw = resolver.pom(&path)?; + let Some(parent) = raw.parent else { break }; + path = resolver.parent_path(path.parent()?, &parent)?; + } + } + // Also track imported BOMs read while resolving inheritance. + out.extend(resolver.poms.into_keys()); + out.sort(); + out.dedup(); + Some(out) +} + // ---------------------------------------------------------------- plugins /// `maven-clean-plugin` → `clean`, `spring-boot-maven-plugin` → `spring-boot`. diff --git a/crates/ide-build/src/process.rs b/crates/ide-build/src/process.rs index b598eb791..8177089f0 100644 --- a/crates/ide-build/src/process.rs +++ b/crates/ide-build/src/process.rs @@ -37,7 +37,7 @@ fn kill_tree(child: &mut Child) { /// `program` as spawnable: a bare name (`mvn`, `mvn.cmd`) resolves on the IDE's /// search path — the login shell's `PATH` plus version-manager shims — since the /// app's own `PATH` can be minimal and `Command` would not see `mvn` there. -fn program_path(program: &str, env: &BTreeMap) -> std::path::PathBuf { +pub(crate) fn program_path(program: &str, env: &BTreeMap) -> std::path::PathBuf { let path = std::path::Path::new(program); if !path.is_relative() || path.components().count() > 1 { return path.to_path_buf(); diff --git a/crates/ide-host/src/ops/java.rs b/crates/ide-host/src/ops/java.rs index 6e334ca73..47beb38d5 100644 --- a/crates/ide-host/src/ops/java.rs +++ b/crates/ide-host/src/ops/java.rs @@ -1,4 +1,6 @@ //! Java launch support: classpath / JDK resolution and the java-debug server (jdtls). +pub(crate) mod cache; + use crate::Host; use crate::rpc::Dispatcher; @@ -44,10 +46,13 @@ async fn resolve_launch( let settings = settings.clone(); let module = module.clone(); tokio::task::spawn_blocking(move || { + project.java_launch_snapshots.lock().initialize(); let model = load(&project.root, &project.build_cache_dir(), &settings); - let external = build && compile::launch_has_non_java_sources(&project.root, &model, &module, test); - let delegated = external - && model.maven.as_ref().is_some_and(|m| m.projects.iter().any(|p| project.root.join(&p.dir) == module)); + let non_java = build && compile::launch_has_non_java_sources(&project.root, &model, &module, test); + let delegated = build + && model.maven.as_ref().is_some_and(|m| m.projects.iter().any(|p| project.root.join(&p.dir) == module)) + && (non_java || cache::has_record(&project.root, &project.build_cache_dir(), &module)); + let external = non_java || delegated; (model, external, delegated) }) .await @@ -60,20 +65,24 @@ async fn resolve_launch( let cancel = cancel.clone(); tokio::task::spawn_blocking(move || { let _external_build = external_build; - let built = if external { - compile::build_for_launch(&project.root, &model, &module, test, &cancel)? - } else { - Vec::new() - }; let built = if delegated { - let (snapshot, copies) = snapshot_outputs(&mut info, &built, &cancel)?; - project.java_launch_outputs.lock().push(snapshot); + let outputs = project.java_launch_snapshots.lock().build( + &project.root, + &model, + &module, + test, + ide_sdk::apply::maven_local_repository(&project.root, &settings), + &cancel, + )?; + let copies = use_snapshot(&mut info, &outputs.originals, &outputs.snapshot); info.build = Some(JavaBuildStatus::Succeeded); info.errors.clear(); info.error_count = 0; copies + } else if external { + compile::build_for_launch(&project.root, &model, &module, test, &cancel)? } else { - built + Vec::new() }; let mut class_paths: Vec = built.iter().map(|p| p.to_string_lossy().into_owned()).collect(); for p in std::mem::take(&mut info.class_paths) { @@ -122,19 +131,10 @@ async fn resolve_launch( .map_err(|e| IdeError::internal(e.to_string()))? } -fn snapshot_outputs( - info: &mut JavaLaunchInfo, - built: &[PathBuf], - cancel: &CancellationToken, -) -> IdeResult<(tempfile::TempDir, Vec)> { - let snapshot = tempfile::Builder::new().prefix("openidea-java-launch-").tempdir()?; +fn use_snapshot(info: &mut JavaLaunchInfo, built: &[PathBuf], snapshot: &std::path::Path) -> Vec { let mut copies = Vec::new(); for (index, source) in built.iter().enumerate() { - if cancel.is_cancelled() { - return Err(IdeError::cancelled()); - } - let dest = snapshot.path().join(index.to_string()); - ide_vfs::copy(source, &dest)?; + let dest = snapshot.join(index.to_string()); let original = source.to_string_lossy(); info.class_paths.retain(|p| p != original.as_ref()); let mut modular = false; @@ -148,7 +148,7 @@ fn snapshot_outputs( copies.push(dest); } } - Ok((snapshot, copies)) + copies } /// Port of java-debug's DAP server inside the jdtls serving `module` (started on demand). @@ -199,8 +199,11 @@ mod tests { module_paths: vec![lib.to_string_lossy().into_owned()], ..Default::default() }; - let (snapshot, paths) = - snapshot_outputs(&mut info, &[app.clone(), lib.clone()], &CancellationToken::new()).unwrap(); + let snapshot = tempfile::tempdir().unwrap(); + for (i, source) in [&app, &lib].iter().enumerate() { + ide_vfs::copy(source, &snapshot.path().join(i.to_string())).unwrap(); + } + let paths = use_snapshot(&mut info, &[app.clone(), lib.clone()], snapshot.path()); assert_eq!(paths, [snapshot.path().join("0")]); assert_eq!(info.class_paths, ["stdlib.jar"]); assert_eq!(info.module_paths, [snapshot.path().join("1").to_string_lossy().into_owned()]); @@ -212,11 +215,5 @@ mod tests { "Maven bytecode" ); } - let cancel = CancellationToken::new(); - cancel.cancel(); - assert_eq!( - snapshot_outputs(&mut info, &[app], &cancel).unwrap_err().kind, - ide_core::error::ErrorKind::Cancelled - ); } } diff --git a/crates/ide-host/src/ops/java/cache.rs b/crates/ide-host/src/ops/java/cache.rs new file mode 100644 index 000000000..422ade156 --- /dev/null +++ b/crates/ide-host/src/ops/java/cache.rs @@ -0,0 +1,371 @@ +//! Immutable Maven outputs retained in the project cache, including across close/reopen. +use ide_build::compile::{self, LaunchFingerprint}; +use ide_core::{CancellationToken, IdeError, IdeResult}; +use serde::{Deserialize, Serialize}; +use std::collections::HashSet; +use std::fs; +use std::path::{Path, PathBuf}; + +#[derive(Debug, Serialize, Deserialize)] +pub(super) struct Outputs { + fingerprint: Option, + pub snapshot: PathBuf, + pub originals: Vec, +} + +impl Outputs { + fn reusable(&self, fingerprint: &Option, snapshots: &Path) -> bool { + fingerprint.is_some() + && self.fingerprint == *fingerprint + && self.snapshot.parent() == Some(snapshots) + && !self.originals.is_empty() + && (0..self.originals.len()).all(|i| self.snapshot.join(i.to_string()).is_dir()) + } +} + +fn record_path(root: &Path, cache: &Path, module: &Path, test: bool) -> Option { + Some(cache.join("java-launch/records").join(module.strip_prefix(root).ok()?).join(if test { + "test.json" + } else { + "main.json" + })) +} + +pub(super) fn has_record(root: &Path, cache: &Path, module: &Path) -> bool { + [false, true].into_iter().any(|test| record_path(root, cache, module, test).is_some_and(|record| record.is_file())) +} + +/// Owned by Project: running JVMs may still load superseded outputs until it drops. +pub(crate) struct Session { + cache: PathBuf, + initialized: bool, + unreferenced: Vec, +} + +impl Session { + pub(crate) fn new(cache: PathBuf) -> Self { + Self { cache, initialized: false, unreferenced: Vec::new() } + } + + pub(super) fn initialize(&mut self) { + if !self.initialized { + self.initialized = true; + if let Err(error) = sweep(&self.cache) { + tracing::warn!(%error, "Cannot clean previous Java launch snapshots"); + } + } + } + + pub(super) fn build( + &mut self, + root: &Path, + model: &ide_build::BuildModel, + module: &Path, + test: bool, + local_repo: Option, + cancel: &CancellationToken, + ) -> IdeResult { + self.initialize(); + let cache = &self.cache; + let record = + record_path(root, cache, module, test).ok_or_else(|| IdeError::internal("launch outside project"))?; + let snapshots = cache.join("java-launch/snapshots"); + let fingerprint = || match compile::launch_fingerprint(root, model, module, test, local_repo.clone(), cancel) { + Ok(value) => Ok(value), + Err(e) if cancel.is_cancelled() => Err(e), + Err(e) => { + tracing::debug!(error = %e, "Cannot fingerprint Maven launch; rebuilding"); + Ok(None) + } + }; + let before = fingerprint()?; + let previous = fs::read(&record).ok().and_then(|bytes| serde_json::from_slice::(&bytes).ok()); + if let Some(outputs) = previous.as_ref() + && outputs.reusable(&before, &snapshots) + { + tracing::info!(module = %module.display(), test, "Reusing Maven launch snapshot"); + return Ok(previous.unwrap()); + } + // Retain a non-reusable record even on failure, so removing the final mixed + // source still delegates to Maven to clean its old classes on the next launch. + fs::create_dir_all(record.parent().unwrap())?; + fs::write(&record, b"null")?; + if let Some(previous) = previous { + self.unreferenced.push(previous.snapshot); + } + let originals = compile::build_for_launch(root, model, module, test, cancel)?; + fs::create_dir_all(&snapshots)?; + let snapshot = tempfile::Builder::new().prefix("launch-").tempdir_in(&snapshots)?.keep(); + // Retain every new snapshot even if copying or publishing its record fails. + self.unreferenced.push(snapshot.clone()); + for (i, source) in originals.iter().enumerate() { + if cancel.is_cancelled() { + return Err(IdeError::cancelled()); + } + ide_vfs::copy(source, &snapshot.join(i.to_string()))?; + } + let after = fingerprint()?; + if cancel.is_cancelled() { + return Err(IdeError::cancelled()); + } + let mut outputs = Outputs { fingerprint: None, snapshot, originals }; + if before.is_some() && before == after { + outputs.fingerprint = before; + fs::create_dir_all(record.parent().unwrap())?; + let mut file = tempfile::NamedTempFile::new_in(record.parent().unwrap())?; + serde_json::to_writer(file.as_file_mut(), &outputs).map_err(|e| IdeError::internal(e.to_string()))?; + file.persist(&record).map_err(|e| IdeError::from(e.error))?; + self.unreferenced.retain(|path| path != &outputs.snapshot); + } + Ok(outputs) + } +} + +impl Drop for Session { + fn drop(&mut self) { + // Recheck all records: another module or launch mode may reference a path. + if let Ok(referenced) = referenced_snapshots(&self.cache) { + let snapshots = self.cache.join("java-launch/snapshots"); + for path in &self.unreferenced { + remove_unreferenced(path, &snapshots, &referenced); + } + } + } +} + +fn referenced_snapshots(cache: &Path) -> std::io::Result> { + let mut referenced = HashSet::new(); + let records = cache.join("java-launch/records"); + if !records.try_exists()? { + return Ok(referenced); + } + let mut pending = vec![records]; + while let Some(dir) = pending.pop() { + for entry in fs::read_dir(dir)? { + let entry = entry?; + let kind = entry.file_type()?; + if kind.is_dir() { + pending.push(entry.path()); + } else if kind.is_file() && entry.path().extension().is_some_and(|ext| ext == "json") { + let outputs: Option = serde_json::from_slice(&fs::read(entry.path())?)?; + if let Some(outputs) = outputs + && let Ok(path) = fs::canonicalize(outputs.snapshot) + { + referenced.insert(path); + } + } + } + } + Ok(referenced) +} + +fn remove_unreferenced(path: &Path, snapshots: &Path, referenced: &HashSet) { + // Only real launch-* directories directly inside snapshots, never symlinks. + if path.parent() != Some(snapshots) + || !path.file_name().is_some_and(|name| name.to_string_lossy().starts_with("launch-")) + || !fs::symlink_metadata(path).is_ok_and(|meta| meta.file_type().is_dir()) + { + return; + } + if let (Ok(path), Ok(snapshots)) = (fs::canonicalize(path), fs::canonicalize(snapshots)) + && path.parent() == Some(snapshots.as_path()) + && !referenced.contains(&path) + && let Err(error) = fs::remove_dir_all(&path) + { + tracing::warn!(%error, path = %path.display(), "Cannot remove Java launch snapshot"); + } +} + +fn sweep(cache: &Path) -> std::io::Result<()> { + let referenced = referenced_snapshots(cache)?; + let snapshots = cache.join("java-launch/snapshots"); + if snapshots.try_exists()? { + for entry in fs::read_dir(&snapshots)? { + remove_unreferenced(&entry?.path(), &snapshots, &referenced); + } + } + Ok(()) +} + +#[cfg(all(test, unix))] +mod tests { + use super::*; + use std::os::unix::fs::PermissionsExt; + + fn fixture(root: &Path) -> ide_build::BuildModel { + fs::write( + root.join("pom.xml"), + r#"demoapp1"#, + ) + .unwrap(); + let script = root.join("mvnw"); + fs::write(&script, "#!/bin/sh\necho build >> calls\nif [ -f src/main/kotlin/broken ]; then exit 1; fi\nmkdir -p target/classes\ncp src/main/kotlin/Main.kt target/classes/Main.class\n").unwrap(); + fs::set_permissions(&script, fs::Permissions::from_mode(0o755)).unwrap(); + fs::create_dir_all(root.join("src/main/kotlin")).unwrap(); + fs::write(root.join("src/main/kotlin/Main.kt"), "first").unwrap(); + ide_build::load(root, &root.join("cache"), None) + } + + #[test] + fn successful_snapshots_reuse_across_close_and_rebuild_for_changes_missing_outputs_or_failure() { + let dir = tempfile::tempdir().unwrap(); + let root = dir.path(); + let model = fixture(root); + let cache = root.join("cache"); + let cancel = CancellationToken::new(); + let mut session = Session::new(cache.clone()); + let mut build = || session.build(root, &model, root, false, None, &cancel); + let first = build().unwrap(); + let snapshot = first.snapshot.clone(); + drop(first); + // Dropping an Outputs value leaves the persisted snapshot reusable. + let second = build().unwrap(); + assert_eq!(snapshot, second.snapshot); + assert_eq!(fs::read_to_string(root.join("calls")).unwrap().lines().count(), 1); + fs::write(root.join("target/classes/Main.class"), "JDT stub").unwrap(); + assert_eq!(snapshot, build().unwrap().snapshot); + assert_eq!(fs::read_to_string(snapshot.join("0/Main.class")).unwrap(), "first"); + fs::write(root.join("src/main/kotlin/Main.kt"), "updated").unwrap(); + let updated = build().unwrap(); + assert_ne!(snapshot, updated.snapshot); + assert_eq!(fs::read_to_string(updated.snapshot.join("0/Main.class")).unwrap(), "updated"); + assert!(snapshot.join("0/Main.class").is_file(), "previous JVMs may still load it"); + fs::remove_dir_all(updated.snapshot.join("0")).unwrap(); + let rebuilt = build().unwrap(); + assert_ne!(rebuilt.snapshot, updated.snapshot); + fs::write(root.join("src/main/kotlin/broken"), "broken").unwrap(); + assert!(build().is_err()); + assert_eq!(fs::read(cache.join("java-launch/records/main.json")).unwrap(), b"null"); + fs::remove_file(root.join("src/main/kotlin/broken")).unwrap(); + assert_ne!(rebuilt.snapshot, build().unwrap().snapshot, "a failed build invalidates success"); + cancel.cancel(); + assert!(build().is_err()); + assert_eq!(fs::read_to_string(root.join("calls")).unwrap().lines().count(), 5); + } + #[test] + fn session_drop_removes_superseded_snapshots_and_preserves_records_across_reopen() { + let dir = tempfile::tempdir().unwrap(); + let root = dir.path(); + let model = fixture(root); + let cache = root.join("cache"); + let cancel = CancellationToken::new(); + let mut session = Session::new(cache.clone()); + let first = session.build(root, &model, root, false, None, &cancel).unwrap(); + fs::write(root.join("src/main/kotlin/Main.kt"), "updated").unwrap(); + let second = session.build(root, &model, root, false, None, &cancel).unwrap(); + assert!(first.snapshot.is_dir()); + assert!(second.snapshot.is_dir()); + // Another mode can keep a superseded snapshot alive. + let test_record = cache.join("java-launch/records/nested/test.json"); + fs::create_dir_all(test_record.parent().unwrap()).unwrap(); + fs::write(&test_record, serde_json::to_vec(&first).unwrap()).unwrap(); + drop(session); + assert!(first.snapshot.is_dir()); + assert!(second.snapshot.is_dir()); + let mut session = Session::new(cache.clone()); + let reused = session.build(root, &model, root, false, None, &cancel).unwrap(); + assert_eq!(reused.snapshot, second.snapshot); + fs::write(root.join("src/main/kotlin/Main.kt"), "third version").unwrap(); + let third = session.build(root, &model, root, false, None, &cancel).unwrap(); + assert!(second.snapshot.is_dir()); + drop(session); + assert!(!second.snapshot.exists()); + assert!(first.snapshot.is_dir()); + assert!(third.snapshot.is_dir()); + assert_eq!(fs::read_to_string(root.join("calls")).unwrap().lines().count(), 3); + } + + #[test] + fn initial_sweep_only_removes_unreferenced_direct_snapshot_directories() { + let dir = tempfile::tempdir().unwrap(); + let cache = dir.path().join("cache"); + let snapshots = cache.join("java-launch/snapshots"); + let retained = snapshots.join("launch-retained"); + let orphan = snapshots.join("launch-orphan"); + let other = snapshots.join("other"); + let nested = other.join("launch-nested"); + let outside = dir.path().join("launch-outside"); + for path in [&retained, &orphan, &nested, &outside] { + fs::create_dir_all(path).unwrap(); + } + fs::write(outside.join("classes"), "keep").unwrap(); + std::os::unix::fs::symlink(&outside, snapshots.join("launch-link")).unwrap(); + fs::write(snapshots.join("launch-file"), "keep").unwrap(); + let record = cache.join("java-launch/records/deep/module/test.json"); + fs::create_dir_all(record.parent().unwrap()).unwrap(); + let outputs = Outputs { fingerprint: None, snapshot: retained.clone(), originals: Vec::new() }; + fs::write(record, serde_json::to_vec(&outputs).unwrap()).unwrap(); + let mut session = Session::new(cache); + session.initialize(); + assert!(!orphan.exists()); + assert!(retained.is_dir()); + assert!(nested.is_dir()); + assert!(outside.join("classes").is_file()); + assert!(snapshots.join("launch-link").is_symlink()); + assert!(snapshots.join("launch-file").is_file()); + // Initialization must not sweep snapshots still in use by this session. + fs::create_dir_all(&orphan).unwrap(); + session.initialize(); + assert!(orphan.is_dir()); + session.unreferenced.extend([outside.clone(), snapshots.join("../../launch-outside"), nested]); + drop(session); + assert!(outside.join("classes").is_file()); + assert!(other.join("launch-nested").is_dir()); + } + + #[test] + fn failed_record_publish_retains_snapshot_until_session_drop() { + let dir = tempfile::tempdir().unwrap(); + let root = dir.path(); + let model = fixture(root); + let script = root.join("mvnw"); + let mut text = fs::read_to_string(&script).unwrap(); + text.push_str("rm cache/java-launch/records/main.json\nmkdir cache/java-launch/records/main.json\n"); + fs::write(script, text).unwrap(); + let cache = root.join("cache"); + let mut session = Session::new(cache.clone()); + assert!(session.build(root, &model, root, false, None, &CancellationToken::new()).is_err()); + assert_eq!(session.unreferenced.len(), 1); + let snapshot = session.unreferenced[0].clone(); + assert!(snapshot.join("0/Main.class").is_file()); + drop(session); + assert!(!snapshot.exists()); + } + + #[test] + fn edits_during_build_do_not_publish_a_success_record() { + let dir = tempfile::tempdir().unwrap(); + let root = dir.path(); + let model = fixture(root); + let script = root.join("mvnw"); + let mut text = fs::read_to_string(&script).unwrap(); + text.push_str("echo edited-during-build >> src/main/kotlin/Main.kt\n"); + fs::write(script, text).unwrap(); + let cache = root.join("cache"); + let mut session = Session::new(cache.clone()); + let outputs = session.build(root, &model, root, false, None, &CancellationToken::new()).unwrap(); + assert!(outputs.fingerprint.is_none()); + assert_eq!(fs::read(cache.join("java-launch/records/main.json")).unwrap(), b"null"); + assert!(outputs.snapshot.join("0/Main.class").is_file()); + drop(session); + assert!(!outputs.snapshot.exists()); + } + #[test] + fn deleting_the_last_mixed_source_keeps_maven_delegation_after_failure() { + let dir = tempfile::tempdir().unwrap(); + let root = dir.path(); + let model = fixture(root); + let cache = root.join("cache"); + let cancel = CancellationToken::new(); + let mut session = Session::new(cache.clone()); + let first = session.build(root, &model, root, false, None, &cancel).unwrap(); + fs::remove_file(root.join("src/main/kotlin/Main.kt")).unwrap(); + assert!(!compile::launch_has_non_java_sources(root, &model, root, false)); + assert!(has_record(root, &cache, root)); + assert!(session.build(root, &model, root, false, None, &cancel).is_err()); + assert!(has_record(root, &cache, root)); + fs::write(root.join("src/main/kotlin/Main.kt"), "restored").unwrap(); + let restored = session.build(root, &model, root, false, None, &cancel).unwrap(); + assert_ne!(first.snapshot, restored.snapshot); + } +} diff --git a/crates/ide-host/src/project.rs b/crates/ide-host/src/project.rs index caf5afea0..e3d868e21 100644 --- a/crates/ide-host/src/project.rs +++ b/crates/ide-host/src/project.rs @@ -42,8 +42,8 @@ pub struct Project { pub detected_roots: Arc>>, /// Per-project cache directory (build tool sync results…). pub cache_dir: PathBuf, - /// Launch snapshots stay alive while any JVM of this project may load classes. - pub(crate) java_launch_outputs: Mutex>, + /// Superseded launch snapshots retained until this project session ends. + pub(crate) java_launch_snapshots: Mutex, /// Database tool window: data sources and their connections. pub db: Arc, /// HTTP Client responses (IDEA's `.idea/httpRequests`), in the app data dir. @@ -368,7 +368,9 @@ impl Host { syntax, detected_roots, cache_dir: self.data_dir.join("cache").join(&project_key), - java_launch_outputs: Mutex::new(Vec::new()), + java_launch_snapshots: Mutex::new(crate::ops::java::cache::Session::new( + self.data_dir.join("cache").join(&project_key).join("build"), + )), db, http_history, agents, @@ -484,7 +486,9 @@ impl Host { syntax, detected_roots: Arc::default(), cache_dir: self.data_dir.join("cache").join(&project_key), - java_launch_outputs: Mutex::new(Vec::new()), + java_launch_snapshots: Mutex::new(crate::ops::java::cache::Session::new( + self.data_dir.join("cache").join(&project_key).join("build"), + )), db, http_history, agents, From 683f8d8826afc1e2df6bf9d7c1deeba1a299f0b1 Mon Sep 17 00:00:00 2001 From: arookieofc <2128194521@qq.com> Date: Sun, 1 Nov 2026 16:16:14 +0800 Subject: [PATCH 16/27] test(jdtls): compare resolved source paths as paths, not strings (#665) java_class_file joins the package path with std::path, so on Windows the result uses backslashes while the test's expectation kept the literal forward slash from "p/Outer.java". Compare as Path so separator style does not matter. Co-authored-by: a-rookie-of-C-language <186315048+a-rookie-of-C-language@users.noreply.github.com> --- crates/ide-lsp/tests/mock_server.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/ide-lsp/tests/mock_server.rs b/crates/ide-lsp/tests/mock_server.rs index 2cd2b4f9a..aa15d3ede 100644 --- a/crates/ide-lsp/tests/mock_server.rs +++ b/crates/ide-lsp/tests/mock_server.rs @@ -1659,7 +1659,10 @@ async fn class_file_opening_routes_sources_and_binary_documents() { s.respond("workspace/executeCommand", json!({"org.eclipse.jdt.ls.core.sourcePaths":[sources]})); for class in ["Outer", "Outer$Nested", "Outer$1"] { let path = h.root.join(format!("target/classes/p/{class}.class")); - assert_eq!(h.mgr.java_class_file(&path, None).await.unwrap(), source.to_string_lossy()); + let resolved = h.mgr.java_class_file(&path, None).await.unwrap(); + // Compare as paths: the manager joins the relative source path with std::path, so + // separators can differ from the literal "p/Outer.java" used to build `source` on Windows. + assert_eq!(Path::new(&resolved), source.as_path()); } let path = h.root.join("build/classes/java/main/p/Missing.class"); let uri = uri_of(&path); From 8d38aa4a9ce90a709a3337b05d6aa142db047fd3 Mon Sep 17 00:00:00 2001 From: arookieofc <2128194521@qq.com> Date: Sun, 1 Nov 2026 16:17:18 +0800 Subject: [PATCH 17/27] feat(editor): navigate to definition on a plain middle-button click (#666) The editor's mousedown handler ignored every button except the left one, so a middle click fell through to the webview's autoscroll. A plain middle click now moves the caret to the clicked symbol and runs go-to-definition, suppressing autoscroll; a keymap shortcut bound to Button2 still takes precedence, and modifier + middle combinations stay unbound. Fixes #663 Co-authored-by: a-rookie-of-C-language <186315048+a-rookie-of-C-language@users.noreply.github.com> --- src/editor/lsp/navigation.ts | 13 +++++++------ src/editor/lsp/navigationMouse.test.ts | 8 ++++++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/editor/lsp/navigation.ts b/src/editor/lsp/navigation.ts index 9dc2d5cdf..7afdda099 100644 --- a/src/editor/lsp/navigation.ts +++ b/src/editor/lsp/navigation.ts @@ -1,8 +1,8 @@ /** - * Go to declaration / implementation / type declaration (⌘B, ⌥⌘B, ⇧⌘B and - * ⌘-click with a link underline while ⌘ is held), the multiple-targets - * chooser, and document highlights (occurrences of the symbol at the caret, - * plus the sticky find.highlightUsages variant). + * Go to declaration / implementation / type declaration (⌘B, ⌥⌘B, ⇧⌘B, + * ⌘-click with a link underline while ⌘ is held, and a plain middle-button + * click), the multiple-targets chooser, and document highlights (occurrences + * of the symbol at the caret, plus the sticky find.highlightUsages variant). */ import { EditorSelection, Prec, StateEffect, StateField, type Extension, type Text } from "@codemirror/state"; import { @@ -489,7 +489,7 @@ const linkPlugin = ViewPlugin.fromClass( this.show(false); }, mousedown(e, view) { - if (e.button !== 0) return false; + if (e.button !== 0 && e.button !== 1) return false; if ( dispatchMouseShortcut(e, () => { const pos = view.posAtCoords({ x: e.clientX, y: e.clientY }, false); @@ -502,7 +502,8 @@ const linkPlugin = ViewPlugin.fromClass( e.preventDefault(); return true; } - if (!isNavigationGesture(e)) return false; + // IDEA parity: middle button navigates on a plain click, without the modifier. + if (e.button === 1 ? e.metaKey || e.ctrlKey || e.altKey || e.shiftKey : !isNavigationGesture(e)) return false; const pos = view.posAtCoords({ x: e.clientX, y: e.clientY }, false); if (pos == null) return false; e.preventDefault(); diff --git a/src/editor/lsp/navigationMouse.test.ts b/src/editor/lsp/navigationMouse.test.ts index 3940c61df..5ec3b9d53 100644 --- a/src/editor/lsp/navigationMouse.test.ts +++ b/src/editor/lsp/navigationMouse.test.ts @@ -94,6 +94,14 @@ describe("mouse navigation", () => { expect(lspGoto).toHaveBeenCalledExactlyOnceWith(1, { line: 0, col: 9 }, "definition"); }); + it("opens the definition from a plain middle-button click", async () => { + const event = click({ button: 1 }); + await vi.waitFor(() => expect(openFile).toHaveBeenCalledOnce()); + expect(lspGoto).toHaveBeenCalledExactlyOnceWith(1, { line: 0, col: 9 }, "definition"); + expect(view.state.selection.main.head).toBe(9); + expect(event.defaultPrevented).toBe(true); + }); + it.each([ { button: 1, metaKey: true, altKey: true }, { button: 2, metaKey: true, altKey: true }, From 9bb44cbeb35d1d183314f376abda0de69a6ce0b5 Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sun, 1 Nov 2026 16:33:44 +0800 Subject: [PATCH 18/27] feat(java): resolve compiled Kotlin APIs in Maven Java editors (#669) Java files in mixed Maven projects could not resolve Kotlin types from the same module or upstream reactor modules, because Kotlin compiler output never reached JDT's Java model. A per-project bridge compiles saved Kotlin sources with the project's own Maven setup into private staging output (a bundled Maven extension redirects outputs and records each module's Kotlin compile result) and mounts the Kotlin classes as marked libraries through a bundled JDT command, leaving m2e/JRE containers and other entries untouched. The last successful snapshot stays mounted while rebuilding; a new one is published when every Kotlin target compiles, even if javac fails, so Java callers of a renamed or removed Kotlin API show their errors in the editor. Kotlin compile failures keep the previous API and are reported under the kotlin-bridge Problems source. Removing the last Kotlin file withdraws the libraries. Changes under build outputs and excluded directories never trigger a rebuild. Part of #428 --- crates/ide-build/src/kotlin_bridge.rs | 475 ++++++++++++++++++ crates/ide-build/src/lib.rs | 1 + crates/ide-host/src/kotlin_bridge.rs | 429 ++++++++++++++++ crates/ide-host/src/lib.rs | 33 +- crates/ide-host/src/ops/build.rs | 4 + crates/ide-host/src/ops/lsp.rs | 8 +- crates/ide-host/src/ops/project.rs | 3 + crates/ide-host/src/project.rs | 38 +- crates/ide-host/src/trust.rs | 3 + crates/ide-lsp/src/jdtls.rs | 3 +- crates/ide-sdk/src/java.rs | 43 ++ plugins/kotlin-bridge/MANIFEST.MF | 8 + plugins/kotlin-bridge/README.md | 73 +++ .../kotlin-bridge/build-dependencies.sha256 | 161 ++++++ plugins/kotlin-bridge/build.py | 32 ++ plugins/kotlin-bridge/components.xml | 5 + .../ai/openidea/kotlin/IsolatedOutput.java | 177 +++++++ .../kotlin-bridge/openidea-kotlin-bridge.jar | Bin 0 -> 25814 bytes plugins/kotlin-bridge/plugin.xml | 8 + .../ai/openidea/kotlin/KotlinLibraries.java | 94 ++++ plugins/kotlin-bridge/tests/verify.py | 275 ++++++++++ src/platform/locales/text/zh.json | 5 + src/workbench/notificationStore.ts | 6 +- 23 files changed, 1874 insertions(+), 10 deletions(-) create mode 100644 crates/ide-build/src/kotlin_bridge.rs create mode 100644 crates/ide-host/src/kotlin_bridge.rs create mode 100644 plugins/kotlin-bridge/MANIFEST.MF create mode 100644 plugins/kotlin-bridge/README.md create mode 100644 plugins/kotlin-bridge/build-dependencies.sha256 create mode 100644 plugins/kotlin-bridge/build.py create mode 100644 plugins/kotlin-bridge/components.xml create mode 100644 plugins/kotlin-bridge/maven/ai/openidea/kotlin/IsolatedOutput.java create mode 100644 plugins/kotlin-bridge/openidea-kotlin-bridge.jar create mode 100644 plugins/kotlin-bridge/plugin.xml create mode 100644 plugins/kotlin-bridge/src/ai/openidea/kotlin/KotlinLibraries.java create mode 100644 plugins/kotlin-bridge/tests/verify.py diff --git a/crates/ide-build/src/kotlin_bridge.rs b/crates/ide-build/src/kotlin_bridge.rs new file mode 100644 index 000000000..150170efc --- /dev/null +++ b/crates/ide-build/src/kotlin_bridge.rs @@ -0,0 +1,475 @@ +//! Private Maven builds for JDT's Kotlin binary libraries. Never use launch outputs. + +use crate::BuildModel; +use crate::compile::{self, BuildEvent, BuildKind, BuildMessage}; +use ide_core::{CancellationToken, IdeError, IdeResult}; +use serde::{Deserialize, Serialize}; +use std::collections::BTreeMap; +use std::path::{Path, PathBuf}; + +#[derive(Clone, Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +struct Module { + key: String, + project_uri: String, + output: PathBuf, + test_output: Option, + dependencies: Vec, + has_kotlin: bool, + kotlin_goals: Vec, +} + +#[derive(Clone, Debug, Deserialize)] +struct KotlinGoal { + execution: String, + status: String, +} + +#[derive(Clone, Debug, Deserialize)] +struct Dependency { + key: String, + scope: String, + #[serde(rename = "type")] + kind: Option, + classifier: Option, +} + +#[derive(Clone, Debug, Serialize, PartialEq, Eq)] +pub struct Library { + pub path: PathBuf, + pub test: bool, +} + +#[derive(Clone, Debug, Serialize, PartialEq, Eq)] +#[serde(rename_all = "camelCase")] +pub struct ProjectLibraries { + pub project_uri: String, + pub libraries: Vec, +} + +pub struct Outcome { + pub projects: Vec, + pub messages: Vec, + pub success: bool, +} + +/// Inspect sources, excluding generated/build/VCS trees and never following symlinks. +pub fn has_kotlin(root: &Path) -> bool { + let Ok(entries) = std::fs::read_dir(root) else { return false }; + entries.flatten().any(|entry| { + let Ok(kind) = entry.file_type() else { return false }; + if kind.is_file() { + entry.path().extension().is_some_and(|e| e == "kt") + } else { + kind.is_dir() + && !matches!( + entry.file_name().to_str(), + Some("target" | "build" | "out" | "bin" | "node_modules" | ".git" | ".openidea") + ) + && has_kotlin(&entry.path()) + } + }) +} + +/// Run the project's configured wrapper/settings/JDK and lifecycle, with an output +/// redirector loaded before Maven calculates its lifecycle execution plans. +pub fn build( + root: &Path, + model: &BuildModel, + bundle: &Path, + generation: &Path, + cancel: &CancellationToken, +) -> IdeResult { + std::fs::create_dir_all(generation)?; + let mut plan = compile::plan(root, model, BuildKind::Build, None)?; + if plan.system != compile::BuildSystem::Maven { + return Err(IdeError::invalid("Kotlin bridge requires a Maven build root")); + } + let mut manifests = Vec::new(); + for (index, step) in plan.steps.iter_mut().enumerate() { + step.args.push("--fail-at-end".into()); + let directory = generation.join(format!("reactor-{index}")); + std::fs::create_dir_all(&directory)?; + manifests.push(directory.join("modules.json")); + let mut extensions = vec![bundle.to_path_buf()]; + step.args.retain(|arg| { + if let Some(value) = arg.strip_prefix("-Dmaven.ext.class.path=") { + extensions.extend(std::env::split_paths(value)); + false + } else { + true + } + }); + let extension_path = std::env::join_paths(extensions).map_err(|e| IdeError::invalid(e.to_string()))?; + step.args.push(format!("-Dmaven.ext.class.path={}", extension_path.to_string_lossy())); + step.args.push(format!("-Dopenidea.kotlin.staging={}", directory.join("staging").display())); + } + let mut messages = Vec::new(); + // Independent linked reactors must still run after another reactor's javac fails. + for step in &plan.steps { + let mut reactor = plan.clone(); + reactor.steps = vec![step.clone()]; + let result = compile::run(root, &reactor, cancel, &|event| { + if let BuildEvent::Output { text, .. } = event { + tracing::debug!("kotlin bridge: {}", text.trim_end()); + } + })?; + messages.extend(result.messages); + } + // javac diagnostics belong to JDT, including when a Kotlin target was skipped. + messages.retain(|message| { + message.path.as_ref().is_some_and(|path| PathBuf::from(path.clone()).extension().is_some_and(|e| e == "kt")) + }); + let mut modules = Vec::new(); + for manifest in manifests { + let parsed: Vec = serde_json::from_slice(&std::fs::read(manifest)?) + .map_err(|e| IdeError::internal(format!("Kotlin module manifest: {e}")))?; + modules.extend(parsed); + } + messages.extend(kotlin_failures(&modules)); + if messages.iter().any(|message| message.severity == ide_core::Severity::Error) { + return Ok(Outcome { projects: Vec::new(), messages, success: false }); + } + let pending = generation.join("libraries.pending"); + let published = generation.join("libraries"); + std::fs::create_dir_all(&pending)?; + let mut libraries = BTreeMap::new(); + for (index, module) in modules.iter().enumerate() { + let mut outputs = ModuleLibraries::default(); + for (source, target, name) in [ + (Some(&module.output), &mut outputs.main, format!("main-{index}")), + (module.test_output.as_ref(), &mut outputs.test, format!("test-{index}")), + ] { + let Some(source) = source else { continue }; + if !source.starts_with(generation) { + return Err(IdeError::internal("Kotlin build output escaped staging")); + } + if copy_kotlin(source, &pending.join(&name), cancel)? { + *target = Some(published.join(name)); + } + } + libraries.insert(module.key.clone(), outputs); + } + publish(&pending, &published, cancel)?; + Ok(Outcome { projects: consumers(&modules, &libraries), messages, success: true }) +} + +fn kotlin_failures(modules: &[Module]) -> Vec { + let mut messages = Vec::new(); + for module in modules { + if !module.has_kotlin { + continue; + } + if module.kotlin_goals.is_empty() { + messages.push(kotlin_failure(module, "compile target was not executed")); + } + for goal in &module.kotlin_goals { + if goal.status != "success" { + messages.push(kotlin_failure(module, &format!("{} {}", goal.execution, goal.status))); + } + } + } + messages +} + +fn kotlin_failure(module: &Module, reason: &str) -> BuildMessage { + BuildMessage { + severity: ide_core::Severity::Error, + text: format!("Kotlin compilation for {}: {reason}", module.key), + path: None, + range: None, + code: None, + } +} + +fn publish(pending: &Path, published: &Path, cancel: &CancellationToken) -> IdeResult<()> { + if cancel.is_cancelled() { + return Err(IdeError::cancelled()); + } + std::fs::rename(pending, published)?; + Ok(()) +} + +#[derive(Default)] +struct ModuleLibraries { + main: Option, + test: Option, +} + +fn consumers(modules: &[Module], libraries: &BTreeMap) -> Vec { + modules + .iter() + .map(|consumer| { + let mut visible = Vec::::new(); + let mut add = |path: &Option, test: bool| { + if let Some(path) = path { + if let Some(previous) = visible.iter_mut().find(|entry| &entry.path == path) { + previous.test &= test; + } else { + visible.push(Library { path: path.clone(), test }); + } + } + }; + if let Some(own) = libraries.get(&consumer.key) { + add(&own.test, true); + add(&own.main, false); + } + // Maven's resolved artifacts already apply exclusions, mediation and optional + // propagation. Preserve their classpath order, after the module's own output. + for dependency in &consumer.dependencies { + let Some(output) = libraries.get(&dependency.key) else { continue }; + let test = match dependency.scope.as_str() { + "compile" | "provided" | "system" | "" => false, + "test" | "runtime" => true, + _ => continue, + }; + match (dependency.kind.as_deref(), dependency.classifier.as_deref()) { + (Some("test-jar"), None | Some("tests")) | (Some("jar"), Some("tests")) => add(&output.test, test), + (None | Some("jar"), None | Some("")) => add(&output.main, test), + _ => {} + } + } + ProjectLibraries { project_uri: consumer.project_uri.clone(), libraries: visible } + }) + .collect() +} + +fn copy_kotlin(source: &Path, destination: &Path, cancel: &CancellationToken) -> IdeResult { + let Ok(entries) = std::fs::read_dir(source) else { return Ok(false) }; + let mut found = false; + for entry in entries { + if cancel.is_cancelled() { + return Err(IdeError::cancelled()); + } + let entry = entry?; + let kind = entry.file_type()?; + let path = entry.path(); + let output = destination.join(entry.file_name()); + if kind.is_dir() { + found |= copy_kotlin(&path, &output, cancel)?; + } else if kind.is_file() { + let bytes = std::fs::read(&path)?; + let class = path.extension().is_some_and(|e| e == "class"); + let metadata = path.extension().is_some_and(|e| e == "kotlin_module"); + if metadata || (class && kotlin_class(&bytes).unwrap_or(false)) { + std::fs::create_dir_all(destination)?; + std::fs::write(output, bytes)?; + found |= class; + } + } + } + Ok(found) +} + +/// Read the actual class-level SourceFile attribute, rather than searching strings +/// (a Java constant containing "Something.kt" must never become a Kotlin library). +fn kotlin_class(bytes: &[u8]) -> Option { + struct Reader<'a> { + bytes: &'a [u8], + pos: usize, + } + impl<'a> Reader<'a> { + fn take(&mut self, count: usize) -> Option<&'a [u8]> { + let value = self.bytes.get(self.pos..self.pos.checked_add(count)?)?; + self.pos += count; + Some(value) + } + fn u2(&mut self) -> Option { + Some(u16::from_be_bytes(self.take(2)?.try_into().ok()?) as usize) + } + fn u4(&mut self) -> Option { + Some(u32::from_be_bytes(self.take(4)?.try_into().ok()?) as usize) + } + fn attributes(&mut self) -> Option<()> { + for _ in 0..self.u2()? { + self.u2()?; + let n = self.u4()?; + self.take(n)?; + } + Some(()) + } + } + let mut reader = Reader { bytes, pos: 0 }; + if reader.take(4)? != [0xca, 0xfe, 0xba, 0xbe] { + return None; + } + reader.take(4)?; + let count = reader.u2()?; + let mut utf8 = BTreeMap::new(); + let mut index = 1; + while index < count { + match reader.take(1)?[0] { + 1 => { + let n = reader.u2()?; + utf8.insert(index, reader.take(n)?); + } + 3 | 4 | 9..=12 | 17 | 18 => { + reader.take(4)?; + } + 5 | 6 => { + reader.take(8)?; + index += 1; + } + 7 | 8 | 16 | 19 | 20 => { + reader.take(2)?; + } + 15 => { + reader.take(3)?; + } + _ => return None, + } + index += 1; + } + reader.take(6)?; + let interfaces = reader.u2()?; + reader.take(interfaces.checked_mul(2)?)?; + for _ in 0..2 { + for _ in 0..reader.u2()? { + reader.take(6)?; + reader.attributes()?; + } + } + for _ in 0..reader.u2()? { + let name = reader.u2()?; + let length = reader.u4()?; + if utf8.get(&name).copied() == Some(b"SourceFile".as_slice()) && length == 2 { + let source = reader.u2()?; + return Some(utf8.get(&source)?.ends_with(b".kt")); + } + reader.take(length)?; + } + Some(false) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn every_kotlin_target_must_succeed_even_when_maven_fails_elsewhere() { + let mut modules: Vec = serde_json::from_str(r#"[ + {"key":"lib","projectUri":"lib","output":"lib","dependencies":[],"hasKotlin":true, + "kotlinGoals":[{"execution":"main:compile","status":"success"},{"execution":"test:test-compile","status":"success"}]}, + {"key":"java","projectUri":"java","output":"java","dependencies":[],"hasKotlin":false,"kotlinGoals":[]} + ]"#).unwrap(); + assert!(kotlin_failures(&modules).is_empty()); + for status in ["failed", "skipped"] { + modules[0].kotlin_goals[1].status = status.into(); + let failures = kotlin_failures(&modules); + assert_eq!(failures.len(), 1); + assert!(failures[0].text.contains(&format!("test:test-compile {status}"))); + } + modules[0].kotlin_goals.clear(); + assert_eq!(kotlin_failures(&modules).len(), 1); + modules[0].has_kotlin = false; + assert!(kotlin_failures(&modules).is_empty()); + assert!( + serde_json::from_str::>( + r#"[{"key":"old","projectUri":"old","output":"old","dependencies":[]}]"# + ) + .is_err() + ); + } + + #[test] + fn respects_mavens_resolved_closure_and_scopes() { + let json = r#"[ + {"key":"zapp","projectUri":"app","output":"app", "hasKotlin":false,"kotlinGoals":[],"dependencies":[{"key":"mid","scope":"compile","optional":false},{"key":"lib","scope":"compile","optional":false}]}, + {"key":"mid","projectUri":"mid","output":"mid", "hasKotlin":false,"kotlinGoals":[],"dependencies":[ + {"key":"lib","scope":"compile","optional":false}, + {"key":"optional","scope":"compile","optional":true}, + {"key":"test","scope":"test","optional":false}, + {"key":"provided","scope":"provided","optional":false}]}, + {"key":"lib","projectUri":"lib","output":"lib","hasKotlin":false,"kotlinGoals":[],"dependencies":[]} + ]"#; + let modules: Vec = serde_json::from_str(json).unwrap(); + let libraries = ["zapp", "lib", "optional", "test", "provided"] + .into_iter() + .map(|key| (key.to_owned(), ModuleLibraries { main: Some(PathBuf::from(key)), test: None })) + .collect(); + let result = consumers(&modules, &libraries); + assert_eq!( + result[0].libraries, + vec![Library { path: "zapp".into(), test: false }, Library { path: "lib".into(), test: false },] + ); + assert_eq!(result[1].libraries.len(), 4); + assert!(result[1].libraries.iter().find(|l| l.path == Path::new("test")).unwrap().test); + } + + #[test] + fn test_outputs_are_private_unless_maven_resolves_a_test_jar() { + let modules: Vec = serde_json::from_str(r#"[ + {"key":"lib","projectUri":"lib","output":"lib","hasKotlin":false,"kotlinGoals":[],"dependencies":[]}, + {"key":"app","projectUri":"app","output":"app","hasKotlin":false,"kotlinGoals":[],"dependencies":[{"key":"lib","scope":"compile","type":"jar","classifier":null}]}, + {"key":"test-app","projectUri":"test-app","output":"app","hasKotlin":false,"kotlinGoals":[],"dependencies":[{"key":"lib","scope":"test","type":"test-jar","classifier":"tests"}]} + ]"#).unwrap(); + let libraries = + BTreeMap::from([("lib".into(), ModuleLibraries { main: Some("main".into()), test: Some("test".into()) })]); + let result = consumers(&modules, &libraries); + assert_eq!( + result[0].libraries, + vec![Library { path: "test".into(), test: true }, Library { path: "main".into(), test: false }] + ); + assert_eq!(result[1].libraries, vec![Library { path: "main".into(), test: false }]); + assert_eq!(result[2].libraries, vec![Library { path: "test".into(), test: true }]); + } + + #[test] + fn publishes_complete_directories_and_cancellation_keeps_them_private() { + let directory = tempfile::tempdir().unwrap(); + let pending = directory.path().join("pending"); + let final_path = directory.path().join("published"); + std::fs::create_dir(&pending).unwrap(); + std::fs::write(pending.join("Channel.class"), "complete").unwrap(); + let cancelled = CancellationToken::new(); + cancelled.cancel(); + assert!(publish(&pending, &final_path, &cancelled).is_err()); + assert!(!final_path.exists()); + assert!(pending.exists()); + publish(&pending, &final_path, &CancellationToken::new()).unwrap(); + assert!(!pending.exists()); + assert_eq!(std::fs::read(final_path.join("Channel.class")).unwrap(), b"complete"); + } + + #[test] + fn never_runs_another_build_system_with_maven_output_properties() { + let directory = tempfile::tempdir().unwrap(); + std::fs::write(directory.path().join("Cargo.toml"), "").unwrap(); + let error = build( + directory.path(), + &BuildModel::default(), + Path::new("unused.jar"), + &directory.path().join("private"), + &CancellationToken::new(), + ) + .err() + .unwrap(); + assert_eq!(error.message, "Kotlin bridge requires a Maven build root"); + } + + #[test] + fn does_not_find_deleted_sources_in_build_outputs() { + let dir = tempfile::tempdir().unwrap(); + std::fs::create_dir_all(dir.path().join("target/generated")).unwrap(); + std::fs::write(dir.path().join("target/generated/Old.kt"), "").unwrap(); + assert!(!has_kotlin(dir.path())); + std::fs::write(dir.path().join("New.kt"), "").unwrap(); + assert!(has_kotlin(dir.path())); + } + + #[test] + fn parses_sourcefile_and_rejects_truncated_classes() { + let mut class = vec![0xca, 0xfe, 0xba, 0xbe, 0, 0, 0, 52, 0, 3, 1, 0, 10]; + class.extend_from_slice(b"SourceFile"); + class.extend_from_slice(&[1, 0, 10]); + class.extend_from_slice(b"Channel.kt"); + class.extend_from_slice(&[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2, 0, 2]); + assert_eq!(kotlin_class(&class), Some(true)); + for end in 0..class.len() { + assert!(kotlin_class(&class[..end]).is_none()); + } + let offset = 26; + class[offset..offset + 10].copy_from_slice(b"Other.java"); + assert_eq!(kotlin_class(&class), Some(false)); + } +} diff --git a/crates/ide-build/src/lib.rs b/crates/ide-build/src/lib.rs index 10dcd9b1c..96358419f 100644 --- a/crates/ide-build/src/lib.rs +++ b/crates/ide-build/src/lib.rs @@ -8,6 +8,7 @@ pub mod application_update; pub mod compile; pub mod gradle; +pub mod kotlin_bridge; pub mod maven; pub mod pom_edit; mod process; diff --git a/crates/ide-host/src/kotlin_bridge.rs b/crates/ide-host/src/kotlin_bridge.rs new file mode 100644 index 000000000..c29be5a29 --- /dev/null +++ b/crates/ide-host/src/kotlin_bridge.rs @@ -0,0 +1,429 @@ +//! Saved Kotlin -> isolated Maven output -> marked JDT libraries. + +use ide_build::kotlin_bridge::{self, Outcome, ProjectLibraries}; +use ide_core::event::NotifyLevel; +use ide_core::{CancellationToken, Diagnostic, IdeEvent, Pos, Range, Severity, SharedSink}; +use ide_lsp::LspManager; +use ide_workspace::SettingsStore; +use ide_workspace::documents::DocumentObserver; +use parking_lot::Mutex; +use serde::{Deserialize, Serialize}; +use std::collections::BTreeSet; +use std::path::{Path, PathBuf}; +use std::sync::{ + Arc, + atomic::{AtomicBool, Ordering}, +}; +use std::time::Duration; +use tokio::sync::Notify; + +const DELAY: Duration = Duration::from_millis(750); +const SOURCE: &str = "kotlin-bridge"; +const COMMAND: &str = "openidea.kotlin.replace"; + +#[derive(Default)] +struct Revision { + generation: u64, + cancel: CancellationToken, +} + +impl Revision { + fn change(&mut self) { + self.cancel.cancel(); + self.generation += 1; + self.cancel = CancellationToken::new(); + } + fn current(&self, generation: u64) -> bool { + self.generation == generation && !self.cancel.is_cancelled() + } +} + +#[derive(Clone, Default, Serialize, Deserialize)] +struct MavenOptions { + offline: bool, + profiles: Vec, +} + +pub(crate) struct KotlinBridge { + root: PathBuf, + cache: PathBuf, + bundle: Option, + settings: Arc, + lsp: Arc, + sink: SharedSink, + trusted: Arc, + lifetime: CancellationToken, + revision: Mutex, + changed: Notify, + options: Mutex, + worker: Mutex>>, +} + +impl KotlinBridge { + pub(crate) fn new( + root: PathBuf, + cache: PathBuf, + data: &Path, + settings: Arc, + lsp: Arc, + sink: SharedSink, + trusted: Arc, + ) -> Arc { + let options = std::fs::read(cache.join("kotlin-bridge-options.json")) + .ok() + .and_then(|bytes| serde_json::from_slice(&bytes).ok()) + .unwrap_or_default(); + Arc::new(Self { + root, + cache, + bundle: ide_sdk::java::kotlin_bridge_bundle(data), + settings, + lsp, + sink, + trusted, + lifetime: CancellationToken::new(), + revision: Mutex::new(Revision::default()), + changed: Notify::new(), + options: Mutex::new(options), + worker: Mutex::new(None), + }) + } + + pub(crate) fn start(self: &Arc, runtime: &tokio::runtime::Handle) { + let bridge = self.clone(); + *self.worker.lock() = Some(runtime.spawn(async move { bridge.run().await })); + self.schedule(); + } + + pub(crate) fn configure_maven(&self, offline: bool, profiles: Vec) { + let options = MavenOptions { offline, profiles }; + if let Ok(bytes) = serde_json::to_vec(&options) { + let _ = std::fs::create_dir_all(&self.cache); + let _ = std::fs::write(self.cache.join("kotlin-bridge-options.json"), bytes); + } + *self.options.lock() = options; + self.schedule(); + } + + pub(crate) async fn shutdown(&self) { + self.stop(); + let worker = self.worker.lock().take(); + if let Some(worker) = worker { + let _ = worker.await; + } + } + + pub(crate) fn schedule(&self) { + if self.lifetime.is_cancelled() { + return; + } + self.revision.lock().change(); + self.changed.notify_one(); + } + + pub(crate) fn files_changed<'a>(&self, mut paths: impl Iterator) { + let settings = self.settings.effective(); + if paths.any(|path| relevant_change(&self.root, path, &settings)) { + self.schedule(); + } + } + + pub(crate) fn stop(&self) { + self.lifetime.cancel(); + self.revision.lock().cancel.cancel(); + } + + async fn replace(&self, projects: &[ProjectLibraries], cancel: &CancellationToken) -> ide_core::IdeResult<()> { + let snapshot = serde_json::to_value(projects).map_err(|e| ide_core::IdeError::internal(e.to_string()))?; + let response = self.lsp.jdtls_command_cancellable(&self.root, COMMAND, vec![snapshot], cancel).await?; + if response.as_u64().is_none() { + return Err(ide_core::IdeError::unavailable( + "Kotlin bridge command did not acknowledge its library snapshot", + )); + } + Ok(()) + } + + async fn run(self: Arc) { + let mut diagnostics = BTreeSet::new(); + let mut last_failure = String::new(); + let mut initialized = false; + // Also retain directories from unacknowledged replacements: JDT may have applied them. + let mut published = Vec::new(); + loop { + tokio::select! { + _ = self.lifetime.cancelled() => return, + _ = self.changed.notified() => {}, + } + let (generation, cancel) = { + let state = self.revision.lock(); + (state.generation, state.cancel.clone()) + }; + if !self.trusted.load(Ordering::Acquire) { + continue; + } + if !debounce(&cancel, &self.lifetime).await { + continue; + } + let root = self.root.clone(); + let cache = self.cache.clone(); + let settings = self.settings.effective(); + let has_sources = tokio::task::spawn_blocking(move || { + let model = crate::ops::build::load(&root, &cache, &settings); + let enabled = + model.maven.as_ref().is_some_and(|m| !m.projects.is_empty()) && kotlin_bridge::has_kotlin(&root); + (model, enabled) + }) + .await; + let Ok((mut model, enabled)) = has_sources else { continue }; + if !self.revision.lock().current(generation) { + continue; + } + if !enabled { + if self.cache.join("kotlin-bridge").exists() + && let Err(error) = self.replace(&[], &cancel).await + { + if !cancel.is_cancelled() { + tracing::warn!("Kotlin library withdrawal: {error}"); + } + continue; + } + for old in published.drain(..) { + remove_directory(old).await; + } + self.clear_diagnostics(&mut diagnostics); + last_failure.clear(); + continue; + } + if let Some(maven) = &mut model.maven { + let options = self.options.lock(); + for module in &mut maven.projects { + if options.offline { + module.options.push("-o".into()); + } + if !options.profiles.is_empty() { + module.options.push(format!("-P{}", options.profiles.join(","))); + } + } + } + let Some(bundle) = self.bundle.clone() else { + self.failure("Kotlin bridge bundle is unavailable".into(), &mut diagnostics, &mut last_failure); + continue; + }; + // Clear entries persisted by an earlier incarnation only before our first build. + if !initialized { + if let Err(error) = self.replace(&[], &cancel).await { + if !cancel.is_cancelled() { + self.failure(error.message, &mut diagnostics, &mut last_failure); + } + continue; + } + initialized = true; + } + let directory = self.cache.join(format!("kotlin-bridge/{}", uuid::Uuid::new_v4())); + let staging = directory.clone(); + let root = self.root.clone(); + let token = cancel.clone(); + let result = + tokio::task::spawn_blocking(move || kotlin_bridge::build(&root, &model, &bundle, &staging, &token)) + .await; + if !self.revision.lock().current(generation) || self.lifetime.is_cancelled() { + remove_directory(directory).await; + continue; + } + match result { + Ok(Ok(Outcome { success: true, projects, .. })) => { + match self.replace(&projects, &cancel).await { + Ok(()) => { + for old in published.drain(..) { + remove_directory(old).await; + } + published.push(directory); + self.clear_diagnostics(&mut diagnostics); + last_failure.clear(); + } + Err(error) => { + // Keep both snapshots until an acknowledged replacement. + published.push(directory); + if !cancel.is_cancelled() { + self.failure(error.message, &mut diagnostics, &mut last_failure); + } + } + } + } + other => { + let text = match other { + Ok(Ok(outcome)) => outcome + .messages + .iter() + .filter(|m| m.severity == Severity::Error) + .map(|m| m.text.as_str()) + .collect::>() + .join("\n"), + Ok(Err(error)) => error.message, + Err(error) => error.to_string(), + }; + self.failure(text, &mut diagnostics, &mut last_failure); + remove_directory(directory).await; + } + } + } + } + + fn clear_diagnostics(&self, paths: &mut BTreeSet) { + for path in std::mem::take(paths) { + self.sink.emit(IdeEvent::Diagnostics { path: path.into(), source: SOURCE.into(), items: Vec::new() }); + } + } + + fn failure(&self, text: String, paths: &mut BTreeSet, previous: &mut String) { + let text = if text.is_empty() { "Kotlin compilation failed".to_owned() } else { text }; + let text = format!("{text}\nJava temporarily uses the last successfully compiled Kotlin API."); + self.clear_diagnostics(paths); + let path = self.root.join("pom.xml"); + paths.insert(path.clone()); + self.sink.emit(IdeEvent::Diagnostics { + path: path.into(), + source: SOURCE.into(), + items: vec![Diagnostic { + range: Range { start: Pos { line: 0, col: 0 }, end: Pos { line: 0, col: 0 } }, + severity: Severity::Error, + message: text.clone(), + source: Some(SOURCE.into()), + server: Some(SOURCE.into()), + code: None, + unnecessary: false, + deprecated: false, + }], + }); + if previous != &text { + self.sink.emit(IdeEvent::Notify { + level: NotifyLevel::Error, + title: "Kotlin editor compilation failed".into(), + body: Some(text.clone()), + }); + *previous = text; + } + } +} + +fn relevant_change(root: &Path, path: &Path, settings: &ide_core::settings::Settings) -> bool { + let input = path.extension().is_some_and(|e| e == "kt") + || path.file_name().is_some_and(|n| n == "pom.xml" || n == "mvnw" || n == "mvnw.cmd") + || path.components().any(|c| c.as_os_str() == ".mvn"); + let Ok(relative) = path.strip_prefix(root) else { + // Content roots outside the project only contribute Kotlin sources. + return path.extension().is_some_and(|e| e == "kt"); + }; + // Build outputs and generated sources (e.g. KSP's `.kt` under target/) never trigger, + // so a build cannot schedule itself. + if relative.components().any(|c| { + matches!( + c.as_os_str().to_str(), + Some("target" | "build" | "out" | "bin" | ".git" | "node_modules" | ".openidea") + ) + }) || ide_vfs::ExcludeMatcher::new(&settings.exclude_globs()).is_excluded(relative) + { + return false; + } + if input { + return true; + } + if path.extension().is_some() { + return false; + } + // Works for deleted directories too; the module POM remains on disk. + path.ancestors().take_while(|ancestor| ancestor.starts_with(root)).any(|ancestor| { + ancestor.file_name().is_some_and(|name| name == "src") + && ancestor.parent().is_some_and(|module| module.join("pom.xml").is_file()) + }) +} + +async fn debounce(cancel: &CancellationToken, lifetime: &CancellationToken) -> bool { + tokio::select! { + _ = lifetime.cancelled() => false, + _ = cancel.cancelled() => false, + _ = tokio::time::sleep(DELAY) => true, + } +} + +async fn remove_directory(path: PathBuf) { + let _ = tokio::task::spawn_blocking(move || std::fs::remove_dir_all(path)).await; +} + +impl DocumentObserver for KotlinBridge { + fn saved(&self, _doc: ide_core::DocId, path: &Path, _text: &str) { + self.files_changed(std::iter::once(&path.to_path_buf())); + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn target_package_directory_does_not_trigger() { + let dir = tempfile::tempdir().unwrap(); + std::fs::write(dir.path().join("pom.xml"), "").unwrap(); + assert!(!relevant_change(dir.path(), &dir.path().join("target/classes/probe"), &Default::default())); + let generated = dir.path().join("target/generated-sources/ksp/main/kotlin/Gen.kt"); + assert!(!relevant_change(dir.path(), &generated, &Default::default())); + assert!(relevant_change(dir.path(), &dir.path().join("src/main/kotlin/A.kt"), &Default::default())); + } + + #[test] + fn deleted_source_package_triggers_unless_excluded() { + let dir = tempfile::tempdir().unwrap(); + std::fs::create_dir_all(dir.path().join("module")).unwrap(); + std::fs::write(dir.path().join("module/pom.xml"), "").unwrap(); + let path = dir.path().join("module/src/main/kotlin/pkg"); + let mut settings = ide_core::settings::Settings::default(); + assert!(relevant_change(dir.path(), &path, &settings)); + settings.project_structure.excluded.push("module/src/main/kotlin".into()); + assert!(!relevant_change(dir.path(), &path, &settings)); + assert!(!relevant_change(dir.path(), &dir.path().join("module/src/build/pkg"), &Default::default())); + } + + #[test] + fn extensionless_root_file_does_not_trigger() { + let dir = tempfile::tempdir().unwrap(); + std::fs::write(dir.path().join("pom.xml"), "").unwrap(); + assert!(!relevant_change(dir.path(), &dir.path().join("LICENSE"), &Default::default())); + } + + #[tokio::test(start_paused = true)] + async fn burst_saves_cancel_the_pending_debounce() { + let mut state = Revision::default(); + state.change(); + let token = state.cancel.clone(); + let lifetime = CancellationToken::new(); + let pending_lifetime = lifetime.clone(); + let waiting = tokio::spawn(async move { debounce(&token, &pending_lifetime).await }); + tokio::task::yield_now().await; + tokio::time::advance(DELAY - Duration::from_millis(1)).await; + assert!(!waiting.is_finished()); + for _ in 0..20 { + state.change(); + } + assert!(!waiting.await.unwrap()); + let current = state.generation; + assert!(debounce(&state.cancel, &lifetime).await); + assert!(state.current(current)); + lifetime.cancel(); + assert!(!debounce(&state.cancel, &lifetime).await); + } + + #[test] + fn superseded_and_cancelled_builds_cannot_publish() { + let mut state = Revision::default(); + state.change(); + let first = state.generation; + let token = state.cancel.clone(); + state.change(); + assert!(token.is_cancelled()); + assert!(!state.current(first)); + assert!(state.current(state.generation)); + state.cancel.cancel(); + assert!(!state.current(state.generation)); + } +} diff --git a/crates/ide-host/src/lib.rs b/crates/ide-host/src/lib.rs index ccb01db4a..0d310d471 100644 --- a/crates/ide-host/src/lib.rs +++ b/crates/ide-host/src/lib.rs @@ -5,6 +5,7 @@ pub mod environment; mod java_runtime; +mod kotlin_bridge; pub mod notebook; pub mod ops; mod project; @@ -148,9 +149,15 @@ impl Host { if !project.light { self.environment.project_closed(); } + if let Some(bridge) = &project.kotlin_bridge { + bridge.stop(); + } project.agents.shutdown(); project.notebooks.stop_admission(); - self.shutdown_notebooks_blocking(vec![project.notebooks.clone()]); + self.shutdown_project_workers_blocking( + vec![project.notebooks.clone()], + project.kotlin_bridge.iter().cloned().collect(), + ); let lsp = project.lsp.clone(); self.runtime.spawn(async move { lsp.shutdown_all().await }); } @@ -158,7 +165,14 @@ impl Host { /// Synchronous project/window destruction must finish owned kernel cleanup, /// not enqueue work which can be lost as the desktop runtime exits. - fn shutdown_notebooks_blocking(&self, notebooks: Vec>) { + fn shutdown_project_workers_blocking( + &self, + notebooks: Vec>, + bridges: Vec>, + ) { + for bridge in &bridges { + bridge.stop(); + } for service in ¬ebooks { service.stop_admission(); } @@ -166,6 +180,9 @@ impl Host { let wait = move || { let worker = std::thread::spawn(move || { runtime.block_on(async move { + for bridge in bridges { + bridge.shutdown().await; + } for service in notebooks { service.shutdown().await; } @@ -186,7 +203,11 @@ impl Host { /// Called before the desktop runtime exits, including update/restart exits. pub fn shutdown_notebooks_on_exit(&self) { - self.shutdown_notebooks_blocking(self.projects().iter().map(|project| project.notebooks.clone()).collect()); + let projects = self.projects(); + self.shutdown_project_workers_blocking( + projects.iter().map(|project| project.notebooks.clone()).collect(), + projects.iter().filter_map(|project| project.kotlin_bridge.clone()).collect(), + ); } /// Stops what this host started: notebook kernels, language servers, agents, runs and terminals. @@ -197,12 +218,18 @@ impl Host { self.terminals.kill_all(); let projects: Vec<_> = self.projects.write().drain().map(|(_, p)| p).collect(); for project in &projects { + if let Some(bridge) = &project.kotlin_bridge { + bridge.stop(); + } project.notebooks.stop_admission(); project.agents.shutdown(); } // Kernel cleanup owns its interrupt/termination/reaping deadlines. An // outer LSP timeout must never abort it before owned children are reaped. for project in &projects { + if let Some(bridge) = &project.kotlin_bridge { + bridge.shutdown().await; + } project.notebooks.shutdown().await; } let stop_language_servers = async { diff --git a/crates/ide-host/src/ops/build.rs b/crates/ide-host/src/ops/build.rs index 650db06d4..ad3983302 100644 --- a/crates/ide-host/src/ops/build.rs +++ b/crates/ide-host/src/ops/build.rs @@ -97,6 +97,7 @@ pub async fn build_sync( host.require_trust(window)?; let project = host.project(window)?; let (root, cache, settings) = (project.root.clone(), project.build_cache_dir(), project.settings.effective()); + let bridge_profiles = profiles.clone(); let token = host.begin_project_request(window, request); let result = tokio::task::spawn_blocking(move || { let current = load(&root, &cache, &settings); @@ -137,6 +138,9 @@ pub async fn build_sync( // jdtls re-imports on pom changes but misses artifacts added to ~/.m2 // meanwhile ("missing artifact" stays until Invalidate Caches); asking it // to update the project configurations re-resolves them (#436). + if let Some(bridge) = &project.kotlin_bridge { + bridge.configure_maven(offline, bridge_profiles); + } let lsp = project.lsp.clone(); let uris = maven.projects.iter().map(|p| ide_lsp::path_to_uri_string(&project.root.join(&p.pom))).collect(); tokio::spawn(async move { diff --git a/crates/ide-host/src/ops/lsp.rs b/crates/ide-host/src/ops/lsp.rs index 0c85d1065..f729f7989 100644 --- a/crates/ide-host/src/ops/lsp.rs +++ b/crates/ide-host/src/ops/lsp.rs @@ -269,7 +269,13 @@ pub fn lsp_resend_diagnostics(host: &Host, window: &str) -> IdeResult<()> { } pub async fn lsp_restart(host: &Host, window: &str, server: ServerId) -> IdeResult<()> { - host.project(window)?.lsp.restart(server).await + let project = host.project(window)?; + let java = project.lsp.servers().iter().any(|s| s.id == server && s.name == "jdtls"); + project.lsp.restart(server).await?; + if java && let Some(bridge) = &project.kotlin_bridge { + bridge.schedule(); + } + Ok(()) } /// Applies a (previewed) workspace edit, e.g. after rename confirmation. diff --git a/crates/ide-host/src/ops/project.rs b/crates/ide-host/src/ops/project.rs index ec1d44026..4c17cdde1 100644 --- a/crates/ide-host/src/ops/project.rs +++ b/crates/ide-host/src/ops/project.rs @@ -177,6 +177,9 @@ pub fn set_settings( .any(|k| key == *k || key.starts_with(&format!("{k}."))) { for project in affected() { + if let Some(bridge) = &project.kotlin_bridge { + bridge.schedule(); + } let lsp = project.lsp.clone(); host.runtime.spawn(async move { lsp.reconfigure().await }); } diff --git a/crates/ide-host/src/project.rs b/crates/ide-host/src/project.rs index e3d868e21..f28c7cffe 100644 --- a/crates/ide-host/src/project.rs +++ b/crates/ide-host/src/project.rs @@ -52,6 +52,7 @@ pub struct Project { pub agents: Arc, /// Native notebooks and owned kernels, scoped to this project incarnation. pub notebooks: Arc, + pub(crate) kotlin_bridge: Option>, pub(crate) watcher: Watcher, /// Watchers of the Project Structure content roots outside the project folder. pub(crate) content_watchers: Mutex>, @@ -152,6 +153,7 @@ impl Host { let bundles: Vec = ide_tools::managed_bundle(&data_dir, "java-debug") .into_iter() .chain(ide_sdk::java::usages_bundle(&data_dir)) + .chain(ide_sdk::java::kotlin_bridge_bundle(&data_dir)) .collect(); let min_java = ide_sdk::java::jdtls_min_java(cfg); let jdks = ide_sdk::java::jdtls_jdks(min_java, &data_dir); @@ -228,11 +230,22 @@ impl Host { trusted: trusted.clone(), })); + let kotlin_bridge = crate::kotlin_bridge::KotlinBridge::new( + root.clone(), + self.data_dir.join("cache").join(&project_key).join("build"), + &self.data_dir, + settings.clone(), + lsp.clone(), + sink.clone(), + trusted.clone(), + ); + documents.add_observer(kotlin_bridge.clone()); let repos = Arc::new(RwLock::new(Repos::enclosing(&root)?)); for repo in repos.read().all() { repo.set_execution_allowed(trusted.load(Ordering::Acquire)); } let watcher = { + let kotlin_bridge = kotlin_bridge.clone(); let repos = repos.clone(); let settings = settings.clone(); let index = index.clone(); @@ -253,6 +266,7 @@ impl Host { Box::new(move |batch| { let changed: Vec = batch.created.iter().chain(&batch.modified).cloned().collect(); index.update(&changed, &batch.removed); + kotlin_bridge.files_changed(changed.iter().chain(&batch.removed)); lsp.project_files_changed(batch.created.iter().chain(&batch.removed)); // Atomic saves by external tools surface as `created`. documents.on_disk_changed(&changed); @@ -332,7 +346,7 @@ impl Host { let content_watchers = extra_roots .iter() .filter_map(|r| { - let w = content_root_watcher(r, &excludes, &sink, &index, &documents, &history)?; + let w = content_root_watcher(r, &excludes, &sink, &index, &documents, &history, Some(&kotlin_bridge))?; Some((r.clone(), w)) }) .collect(); @@ -375,6 +389,7 @@ impl Host { http_history, agents, notebooks, + kotlin_bridge: Some(kotlin_bridge), watcher, content_watchers: Mutex::new(content_watchers), _scratch_watcher: scratch_watcher, @@ -393,6 +408,9 @@ impl Host { })); } self.insert_project(window, project.clone()); + if let Some(bridge) = &project.kotlin_bridge { + bridge.start(&self.runtime); + } if let Some(cmd) = post_start { self.environment.spawn_post_start(cmd, project.root.clone(), project.sink.clone()); } @@ -493,6 +511,7 @@ impl Host { http_history, agents, notebooks, + kotlin_bridge: None, watcher, content_watchers: Mutex::new(Vec::new()), _scratch_watcher: None, @@ -786,9 +805,15 @@ impl Project { if watchers.iter().any(|(p, _)| *p == r) { continue; } - if let Some(w) = - content_root_watcher(&r, &excludes, &self.sink, &self.index, &self.documents, &self.history) - { + if let Some(w) = content_root_watcher( + &r, + &excludes, + &self.sink, + &self.index, + &self.documents, + &self.history, + self.kotlin_bridge.as_ref(), + ) { watchers.push((r, w)); } } @@ -920,7 +945,9 @@ fn content_root_watcher( index: &Arc, documents: &Arc, history: &Arc, + kotlin_bridge: Option<&Arc>, ) -> Option { + let kotlin_bridge = kotlin_bridge.cloned(); let (index, documents, history) = (index.clone(), documents.clone(), history.clone()); Watcher::start( dir, @@ -929,6 +956,9 @@ fn content_root_watcher( Box::new(move |batch| { let changed: Vec = batch.created.iter().chain(&batch.modified).cloned().collect(); index.update(&changed, &batch.removed); + if let Some(bridge) = &kotlin_bridge { + bridge.files_changed(changed.iter().chain(&batch.removed)); + } documents.on_disk_changed(&changed); record_external_changes(&history, &changed, &batch.removed); }), diff --git a/crates/ide-host/src/trust.rs b/crates/ide-host/src/trust.rs index 96c7c9740..b829bd636 100644 --- a/crates/ide-host/src/trust.rs +++ b/crates/ide-host/src/trust.rs @@ -106,6 +106,9 @@ impl crate::Host { if previous == trusted { continue; } + if let Some(bridge) = &project.kotlin_bridge { + bridge.schedule(); + } if !trusted { project.lsp.set_execution_allowed(false); } diff --git a/crates/ide-lsp/src/jdtls.rs b/crates/ide-lsp/src/jdtls.rs index 09d6ed610..f2b79e0c1 100644 --- a/crates/ide-lsp/src/jdtls.rs +++ b/crates/ide-lsp/src/jdtls.rs @@ -396,7 +396,8 @@ impl LspManager { self.jdtls_command_cancellable(path, command, arguments, &CancellationToken::new()).await } - async fn jdtls_command_cancellable( + /// Cancellable delegate commands for project-owned background services. + pub async fn jdtls_command_cancellable( &self, path: &Path, command: &str, diff --git a/crates/ide-sdk/src/java.rs b/crates/ide-sdk/src/java.rs index bf86f5815..9d104583a 100644 --- a/crates/ide-sdk/src/java.rs +++ b/crates/ide-sdk/src/java.rs @@ -948,6 +948,49 @@ mod tests { } } +/// The same jar supplies the JDT command and the private Maven output redirector. +pub fn kotlin_bridge_bundle(data_dir: &Path) -> Option { + let extension = data_dir.join("kotlin-bridge-1.0.0.jar"); + let bytes = include_bytes!("../../../plugins/kotlin-bridge/openidea-kotlin-bridge.jar"); + if std::fs::read(&extension).is_ok_and(|old| old == bytes) { + return Some(extension); + } + let temporary = data_dir.join(format!( + "kotlin-bridge-{}-{}.tmp", + std::process::id(), + std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH).ok()?.as_nanos() + )); + let result = std::fs::create_dir_all(data_dir) + .and_then(|_| std::fs::write(&temporary, bytes)) + .and_then(|_| std::fs::rename(&temporary, &extension)); + if let Err(error) = result { + let _ = std::fs::remove_file(temporary); + tracing::warn!("Kotlin bridge extension unavailable: {error}"); + return std::fs::read(&extension).is_ok_and(|old| old == bytes).then_some(extension); + } + Some(extension) +} + +#[cfg(test)] +mod kotlin_bridge_bundle_tests { + #[test] + fn embeds_both_runtime_targets_and_repairs_a_damaged_installation() { + let directory = tempfile::tempdir().unwrap(); + let path = super::kotlin_bridge_bundle(directory.path()).unwrap(); + let expected = std::fs::read(&path).unwrap(); + let mut archive = zip::ZipArchive::new(std::io::Cursor::new(&expected)).unwrap(); + for (class, major) in [("KotlinLibraries", 65), ("IsolatedOutput", 52)] { + use std::io::Read; + let mut bytes = Vec::new(); + archive.by_name(&format!("ai/openidea/kotlin/{class}.class")).unwrap().read_to_end(&mut bytes).unwrap(); + assert_eq!(u16::from_be_bytes([bytes[6], bytes[7]]), major); + } + std::fs::write(&path, "incomplete").unwrap(); + assert_eq!(super::kotlin_bridge_bundle(directory.path()), Some(path.clone())); + assert_eq!(std::fs::read(path).unwrap(), expected); + } +} + /// Installs the app-owned JDT LS command bundle, falling back to ordinary LSP on IO failure. pub fn usages_bundle(data_dir: &Path) -> Option { let extension = data_dir.join("java-usages-1.1.1.jar"); diff --git a/plugins/kotlin-bridge/MANIFEST.MF b/plugins/kotlin-bridge/MANIFEST.MF new file mode 100644 index 000000000..f0d3eebaa --- /dev/null +++ b/plugins/kotlin-bridge/MANIFEST.MF @@ -0,0 +1,8 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: OpenIDEA Kotlin binary bridge +Bundle-SymbolicName: ai.openidea.kotlin;singleton:=true +Bundle-Version: 1.0.0 +Bundle-RequiredExecutionEnvironment: JavaSE-21 +Require-Bundle: org.eclipse.jdt.ls.core,org.eclipse.jdt.core, + org.eclipse.core.runtime,org.eclipse.core.resources,com.google.gson diff --git a/plugins/kotlin-bridge/README.md b/plugins/kotlin-bridge/README.md new file mode 100644 index 000000000..a1eb4bf21 --- /dev/null +++ b/plugins/kotlin-bridge/README.md @@ -0,0 +1,73 @@ +# Kotlin binary bridge + +App-owned source, licensed under this repository's Apache-2.0 license. The jar +contains no third-party implementation classes. JDT LS and Maven supply their +respective APIs at runtime. + +`KotlinLibraries` is a JDT LS delegate command. `openidea.kotlin.replace` takes +one complete array of `{projectUri, libraries: [{path, test}]}` objects and returns +the number of changed projects. Paths name fully published, immutable directories. +An empty array withdraws all owned libraries. Only library entries carrying +`ai.openidea.kotlin=true` are removed; all other `IClasspathEntry` objects are +retained, including containers, access rules, attributes and project references. +A Java model listener restores the desired snapshot after Maven reimport. + +`IsolatedOutput` is a Java 8 Maven lifecycle participant, activated only in the +private editor build via `-Dmaven.ext.class.path=` and +`-Dopenidea.kotlin.staging=`. It redirects reactor output +before lifecycle planning and records Maven's resolved dependency closure after +each session, including failed builds. An execution listener records each module's +Kotlin compile/test-compile targets as successful, failed or skipped. The host uses +the project's Maven lifecycle/configuration, +then publishes only classes whose actual `SourceFile` attribute ends in `.kt`, +plus Kotlin module metadata. Java output is not bridged. Main/test Kotlin APIs and +same-reactor consumers are covered; Precise Kotlin +source navigation, unsaved analysis and refactoring are outside this bridge. + +The host debounces saved/source/configuration changes, cancels superseded process +groups, and retains the last successful snapshot while rebuilding. Maven runs +with `--fail-at-end`. A new snapshot is attached only when all Kotlin targets in +modules containing Kotlin sources succeed, even if javac fails. Java diagnostics +belong to JDT. Failed or skipped Kotlin targets retain the previous snapshot and +report errors under `kotlin-bridge` Problems and a notification explaining the +older API. Old directories are deleted only after JDT acknowledges replacement. +With no Kotlin sources left, all managed libraries and bridge diagnostics are +withdrawn, even when the POM still declares the Kotlin plugin. Extensionless +watcher paths trigger only below a Maven module's `src/`, outside generated and +user-excluded directories. Run/Debug preparation is independent of this editor +build. + +## Build + +Built against JDT LS 1.63.0 and Maven 3.9.11, using their installed API jars. +`build-dependencies.sha256` pins all build inputs. The build refuses different +inputs; `--record-dependencies` is an explicit maintainer action when updating +those dependencies. Compilation uses the JDT batch compiler with Java 21 target +for the JDT command and Java 8 target for the Maven participant. Use Java 25 to +run the build compiler. Archive order and timestamps are deterministic. + +```sh +python3 plugins/kotlin-bridge/build.py /path/to/jdtls /path/to/maven +shasum -a 256 plugins/kotlin-bridge/openidea-kotlin-bridge.jar +``` + +Committed jar SHA-256: +`5c6407a85bd3cfcde0ee68b2f223dd3d1ca0e5165ff76a2249191617496b1fcd`. + +The SDK embeds this jar with `include_bytes!`, writes it atomically into the app +data directory, and includes it in JDT LS initialization bundles. + +## Integration regression + +```sh +# `java` on PATH must satisfy JDT LS; JAVA_HOME selects Maven's project JDK. +JAVA_HOME=/path/to/project/jdk python3 plugins/kotlin-bridge/tests/verify.py /path/to/jdtls +``` + +Requires Maven on PATH and access to Kotlin 2.0.10 and the fixture's Maven +plugins (or their existing local cache). The test creates its own projects, +workspace, bundle copy and JDT process. It checks baseline errors, single/reactor +resolution, SMS/member completion, binary definition locations, preservation of +unowned entries, reimport, API changes, publication despite javac failure, +failed/skipped Kotlin target retention, deletion withdrawal and repair. Evidence +and protocol transcripts are written to a printed temporary directory. Only the spawned JDT process is terminated. diff --git a/plugins/kotlin-bridge/build-dependencies.sha256 b/plugins/kotlin-bridge/build-dependencies.sha256 new file mode 100644 index 000000000..23592d907 --- /dev/null +++ b/plugins/kotlin-bridge/build-dependencies.sha256 @@ -0,0 +1,161 @@ +beebede8db065fe1b72909ecc66bb49acda618901635d86c25fce14a5915e37e jdt/ch.qos.logback.classic_1.6.3.jar +a6967a28c8b086dee75a694d2f6fb8830c71153539866d7d8af065c9b6df91e0 jdt/ch.qos.logback.core_1.6.3.jar +2cbd119bf1961c28788310963dc80ba65f58cdeec1dd139c8bdb1240faa2c36f jdt/com.google.gson_2.14.0.jar +cbfc3906b19b8f55dd7cfd6dfe0aa4532e834250d7f080bd8d211a3e246b59cb jdt/com.google.guava.failureaccess_1.0.3.jar +796d8e28ac64e83a47c4c5935a8fecc4682650a04bbdead738ef0f5a3a0e6c46 jdt/com.google.guava_33.7.1.jre.jar +3b3864f5b449e9c3c24b16861524b622b086563f44e0cd8384c8efc5a6052f82 jdt/com.sun.jna.platform_5.19.1.jar +467b2990d4f406e7d41f7a989f89df257767ca11d566f844560e2ab8d09f6433 jdt/com.sun.jna_5.19.1.v20260612-1000.jar +85fb03fc054cdf4efca8efd9b6712bbb418e1ab98241c4539c8585bbc23e1b8a jdt/jakarta.annotation-api_1.3.5.jar +a852b0971c589491e24334bd77e92760c048d2c102fc4c68e582e1cd53130f84 jdt/jakarta.inject.jakarta.inject-api_1.0.5.jar +2506fb25a748d4a5e5ec549d8bb063889d0f213e9cfbd6fd6fcbdc93b4f35bbb jdt/jakarta.servlet-api_6.2.0.M2.jar +cbf2aa09c14441d2ddea7096f60b738b3aee7f08fbf98f5f91e2ca48b08fff4a jdt/org.apache.ant_1.10.18.v20260906-1000.jar +8f7f8605d68e15bf32db61ec94eac6fdafc51b1bdbe1e0e0802b57d23f387792 jdt/org.apache.commons.cli_1.11.0.jar +78a5d732fbd715e2d10bd7150d2f8030bae57267f8aacc5c88f642cb6c2e5d3f jdt/org.apache.commons.commons-codec_1.22.1.jar +69e5c9fa35da7a51a5fd2099dfe56a2d8d32cf233e2f6d770e796146440263f4 jdt/org.apache.commons.lang3_3.20.0.jar +c5bd887c8fd5ec4cd563249e7552bb1a1a1ca57e05a1f1ef8425a7b7b7bd2fbe jdt/org.apache.felix.scr_2.2.18.jar +c375b6d5b71efe179e5763a6d83fcf10e303c0bf82031310a46769727ac90da0 jdt/org.commonmark.ext-gfm-tables_0.30.1.jar +9b0d20064975a17e876fcb4b599c6b3667f46a7739ed61e2f06c96f44b50629f jdt/org.commonmark_0.30.1.jar +a6a16f8f2b6977a10f951ab4ff46b155e4e20dd8c2fcd2cb835b74d90f30b456 jdt/org.eclipse.ant.core_3.7.1100.v20260831-0701.jar +61c479b6544db7eeebb5ba796051c092032d03a5136295baabd72a233baef29c jdt/org.eclipse.buildship.compat_3.1.13.v20260923-0232-s.jar +213baab808816e0661acd61a5382a8f120923288212defbd189b4ee6540ecce1 jdt/org.eclipse.buildship.core_3.1.13.v20260923-0232-s.jar +e75b07863128a076989d15e815d63a49cab772a338f1f0444d007bef3fa94601 jdt/org.eclipse.compare.core_3.8.900.v20260731-0809.jar +01425989976dccd56d348b207e11239b3d8bf572f7b7ef12dbd29eb39c40205e jdt/org.eclipse.core.commands_3.13.100.v20260902-1129.jar +a63b488fb9d5382fbb3b8bae0951f1da5fd3a20211aa6814c7e8c1e21d2ffc78 jdt/org.eclipse.core.contenttype_3.9.1000.v20260921-1824.jar +06a18236ae181659e1e5499d912d68de527720686f1f51dab632d3e298e32b78 jdt/org.eclipse.core.expressions_3.9.700.v20260710-0925.jar +422a33041ea01954f48ff3969e2c6d96e64831b3e372202a4d2a914282e3ffd9 jdt/org.eclipse.core.filebuffers_3.9.0.v20261010-1449.jar +d0f5e3fb7cd17bb8daebc684311198138e380e089292477f12d2dfbb4c8a30a8 jdt/org.eclipse.core.filesystem_1.12.0.v20260927-0940.jar +941b3c5feeba4ec0a949a8a94ff10283b2505813fa736c9e6345f146ae1b7e8a jdt/org.eclipse.core.jobs_3.15.900.v20260604-0622.jar +6e7a8db7d87a44bb35924bb345ddf0d9372413e3fee2edd842b50ed630ec254f jdt/org.eclipse.core.net_1.5.900.v20260507-0401.jar +e22d47e2e68713a74bfacd134dc01b1aa904a1b429769241483e058de166acea jdt/org.eclipse.core.resources_3.25.0.v20261010-1447.jar +0947f29f5c5b7d234e3b735de2d00d33ae6e3ee428a61bb818f9c0fe2b809735 jdt/org.eclipse.core.runtime_3.35.100.v20260910-1515.jar +553f09a59f2662fa4a3bbc94e84bd83221c1c6fb532d81b57010162fb47460a6 jdt/org.eclipse.core.variables_3.6.900.v20260602-0702.jar +a4e87f5e883e6c864783dc8148e9f915c3e7a9e3e0e26acf6b82210d1134ed79 jdt/org.eclipse.debug.core_3.24.100.v20261009-1915.jar +fd353398835107608f554779a6e91891725efb94e0f57559d0ab3cea4b6156c7 jdt/org.eclipse.equinox.app_1.7.600.v20251211-1038.jar +28749ec64dac9d0e20e00becc3d5f9daccb5637455c9c546ab07be324011ef84 jdt/org.eclipse.equinox.common_3.21.100.v20260829-1451.jar +9beeb1098a3da89a470c547aa840dea0d240d144138a5ba7b9ceedb84ed301ab jdt/org.eclipse.equinox.frameworkadmin.equinox_1.3.500.v20260928-0506.jar +f2b956930b8383d708f1fe9df92938bffbe2e129082d4fd0b3d5f59c20a5c9f0 jdt/org.eclipse.equinox.frameworkadmin_2.3.600.v20260306-0554.jar +8e889f92718fb8c612dd358265da2c94738bbc08b46473b81cad36f1177a8235 jdt/org.eclipse.equinox.launcher.cocoa.macosx.aarch64_1.2.1700.v20260913-1737.jar +347674eb3d3d4000c184573618241141297fb9586c8f65ebdbacace59b8c81a2 jdt/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.2.1700.v20260913-1737.jar +57e8a4b46906751e214dfa8fab1e02462c40ad4e51f2226d9ef70af5f0941ccb jdt/org.eclipse.equinox.launcher.gtk.linux.aarch64_1.2.1700.v20260913-1737.jar +d0e7418232627c53288e566728d24d1578650514152992b87f82a5d982429606 jdt/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.2.1700.v20260913-1737.jar +aa8c31a082b25b87f75008548f6544379174c98091934fb8399e3f917a0445f1 jdt/org.eclipse.equinox.launcher.win32.win32.x86_64_1.3.200.v20260913-1737.jar +9b3b1da60813ac5fa09dd5c198f1884be7076d0a5daec54faa3f351a787e34b7 jdt/org.eclipse.equinox.launcher_1.8.0.v20260804-1928.jar +fd04e81a28ab32b6bb073286eb293c44b760176fcf1e35ef15614d62df820f86 jdt/org.eclipse.equinox.preferences_3.12.100.v20251111-0704.jar +9b149d3367d33fc1f9a19d3f87c425ecf9fc235ee748b3cf200ec387169b042b jdt/org.eclipse.equinox.registry_3.12.700.v20260830-1519.jar +60388d163f70329c39a9cf4e32389ec4fba8dc80ae5518d97cd0be2ebb971510 jdt/org.eclipse.equinox.security.linux_1.2.0.v20260914-1851.jar +a8408d4bcdc70e019d2d89ed8b1b0413eb74ea73e74fa3d064b7401643539797 jdt/org.eclipse.equinox.security.macosx_1.102.500.v20250521-0414.jar +cf9668c1d1e481059366abc2719468aa52e1276475cf9c32d4d10f57b34d7182 jdt/org.eclipse.equinox.security.win32_1.3.0.v20240419-2334.jar +91b74719f9c1a130193407808fe5daab3b92431efbf30b8f886f1ff5e97f468f jdt/org.eclipse.equinox.security_1.4.700.v20250622-1644.jar +1a24a3c0fb01ad71f97432d5c2b364d9868b5a5ebd99a1308aacb1a2c03c47da jdt/org.eclipse.equinox.simpleconfigurator.manipulator_2.3.700.v20260306-0556.jar +d250938d3715529a9822fcdf46ad2f5de39720558d7195b5c1a8713af00bcd13 jdt/org.eclipse.equinox.simpleconfigurator_1.5.700.v20251111-1031.jar +db9a4e856bb4728a2719df544b0f2ccef52b54ebf4e643a417fdb471f85703c1 jdt/org.eclipse.equinox.spi_1.0.0.v20261009-1945.jar +7615ee7abdd14695957a52864c57869018dc10ddaac80d3cd24b6a97e05d0d9f jdt/org.eclipse.jdt.apt.core_3.8.1000.v20261012-1009.jar +ea365808514a22c2e5a1a3fe0b9c07b88a371094d5d5716d31906a8818d56b2a jdt/org.eclipse.jdt.apt.pluggable.core_1.4.800.v20260930-1106.jar +f667bb3666d9875a2309fa2447a19e6cdd960281473bd7125a22c5a435246d21 jdt/org.eclipse.jdt.core.compiler.batch_3.46.200.v20261008-1115.jar +a6d0f8fabd64c248c37c463789a1a13f801252b68b0a4f4808c207677b5cae17 jdt/org.eclipse.jdt.core.javac_1.0.0.z20260430-1959.jar +8ea98fcbecbd89f311849e448f4c4274a2aba5e15cfcdcad29951330c40e0ee8 jdt/org.eclipse.jdt.core.manipulation_1.26.0.v20261009-1526.jar +70b4bb168aab096ee7f33da7b72f470f4172fe3e18e80289dd89cf344937ed22 jdt/org.eclipse.jdt.core_3.48.0.v20261007-1246.jar +12113df750bb22f7ef0dd3f044f7c334feecd55ddb56b9340529899c55f5893b jdt/org.eclipse.jdt.debug_3.27.0.v20261012-1250.jar +f140fad97dc5c452af0cb0f87ed3c6c83ff518f1dda49a43b8b9bec07f17d0fd jdt/org.eclipse.jdt.junit.core_3.16.0.v20261008-2002.jar +4ea3fe4a12a0e1e8b10b7ce3f577a0ff4f5115c6a5e40364c53b8b329a8505b0 jdt/org.eclipse.jdt.junit.runtime_3.8.200.v20260911-1643.jar +8b928263817f5dd0a9210a8842682903f779dc83253fea501591e150e5303095 jdt/org.eclipse.jdt.launching_3.25.0.v20261010-0421.jar +6e5e5e39d82e9ac04925e8b3f432ef6fe81284441e99952d2f720779c9e2831b jdt/org.eclipse.jdt.ls.core_1.63.0.202610191322.jar +666cc544f8a63e41d2dc8e6f3626071214027e4f698dea5bf36137f85477bba4 jdt/org.eclipse.jdt.ls.filesystem_1.63.0.202610191322.jar +792f7df214d4ab5e4915ac1805922d44de61ebb880f1fc4881ecd4ecfdca6aca jdt/org.eclipse.jdt.ls.logback.appender_1.63.0.202610191322.jar +9647feb0524bf763c878e12ab878a684102b81cccb3f77feecbec709d54f9bbb jdt/org.eclipse.lsp4j.jsonrpc_1.0.0.v20260209-1721.jar +ccd78893facc6bfcc359d56cba05d3d5b85eb41e4c40d4b4215ca45db5f416d9 jdt/org.eclipse.lsp4j_1.0.0.v20260209-1721.jar +a5d6bdc3e6f5017f19375697c7a5929fbc83f5734f35d5ed4540c7b2c843d4bb jdt/org.eclipse.ltk.core.refactoring_3.17.0.v20261010-1449.jar +69d1b41401686fd99337e1ddd8aeec309255ae464393ca19a8025c85bfae6601 jdt/org.eclipse.m2e.apt.core_2.3.200.20260815-0704.jar +34872f7712dffca0b39804708c0c1b58f2f2576e27cb7176b92a1ea437d384e6 jdt/org.eclipse.m2e.core_2.8.0.20260815-0704.jar +8c3fa36fe9f62ace897b0196df8e6bba6a50610c186f6689ada5f386a8b223b1 jdt/org.eclipse.m2e.jdt_2.5.300.20260813-1359.jar +5c5b419a101210127f21fa7d37bd2605b90f96efe9d3e91ea31099fb243dec8e jdt/org.eclipse.m2e.maven.runtime_3.9.1601.20260722-2149.jar +53376fa2d7bfd2d5166806e74af9576ee3f8f1c1ac916e2cb4d2bb0c3e72c02f jdt/org.eclipse.m2e.workspace.cli_0.4.0.jar +20e09b8f88845480b6ad0b89ac001679b6713592cd0ee4bd78cdb326172eee62 jdt/org.eclipse.osgi.compatibility.state_1.3.100.v20260909-1123.jar +fe66fd0b071bebc7e1a122be571ed8ecde373d2966fa6b1e161a899b3c7a054d jdt/org.eclipse.osgi_3.25.0.v20261008-2211.jar +2714e0c7548a0c23ab99d4e84b68d3e67419bbd6b295efda15d881e7cb173a1c jdt/org.eclipse.search.core_3.17.0.v20261010-1449.jar +0ca3b552c867619285b8ae36c7defdd6c0f013e692643d433fd111796da55f19 jdt/org.eclipse.text_3.14.900.v20261012-1310.jar +c6c2b8593cd39c279e74e7055cbd146d39dc6f16011961b4928b92728d32d00d jdt/org.eclipse.xtext.xbase.lib_2.44.0.v20260824-1228.jar +ea7a53f8b7966039c6f7d54f462cbbaaad38a5e313a4e7d9125fa39640988725 jdt/org.gradle.toolingapi_9.7.1.v20260923-0232-s.jar +5d66b6a4a680755cb6ed7cb104fa7835ef644667586ff0737adeb977c39ecdbc jdt/org.hamcrest_3.0.0.jar +e9d8c856856680427f096d156f02a414289985c930998fcb519ce5be39b42003 jdt/org.jsoup_1.23.2.jar +3efac657139b0b8024748e937e3e1dba71fbdf69fb526c60f504a3fb5490381b jdt/org.junit_4.13.2.v20240929-1000.jar +ed825d10ab1399c8c0cb669e688cf0c8c82629b4c8399b58352b68e92ca10fcb jdt/org.objectweb.asm_9.10.1.jar +0653852deab5c6f6e9c84e3aa8f72e72b9ce7dfaf7a6431f3d80f6f9d7a433ad jdt/org.osgi.service.component_1.5.1.202212101352.jar +43c7c870710e363405d422da653cce0d798a4537f76e4930f79bceadd3a55345 jdt/org.osgi.service.prefs_1.1.2.202109301733.jar +208819c7c71690c15a6bb8b187474e7f9d0147946b680182a62b9f222ae014ec jdt/org.osgi.util.function_1.2.0.202109301733.jar +7053c57e7d7d88fec6b90979a3af125e1d2bb847268a328a2f1ed65ad0a4c185 jdt/org.osgi.util.promise_1.3.0.202212101352.jar +7e1446499b359675d8aabe6af2de86b85e72ae8a2a932c0b40d0e5ba57097439 jdt/slf4j.api_2.0.20.jar +3970dab20b4deb8380ed9656392f289f3f3c2ee882d8c3942f1b5b486284620d jdt/wrapped.com.jetbrains.intellij.java.java-decompiler-engine_253.29346.240.jar +65d87386b7e926c0b6fb330a8d2eb6a987f5949634f7574731c0a3c2329d5629 jdt/wrapped.com.vladsch.flexmark.flexmark-ext-emoji_0.64.8.jar +7a350f43f858da8f4a230552607ced119aeaf97484ca11ce4cd792e1e41e5bf7 jdt/wrapped.com.vladsch.flexmark.flexmark-ext-gfm-strikethrough_0.64.8.jar +7a424dae7df0ee86200a08e163d9d1d8f63cd7a1a0c980b84ccbec029571fb4e jdt/wrapped.com.vladsch.flexmark.flexmark-ext-ins_0.64.8.jar +75a2e7168145f799a039832708aa0bc277a954c4a367f58711ccd6b9b7e7d04e jdt/wrapped.com.vladsch.flexmark.flexmark-ext-superscript_0.64.8.jar +dbe6355ea9e04731d534d3d4151870f83684c7a44c87d541a2c53ef5ee2c4fa4 jdt/wrapped.com.vladsch.flexmark.flexmark-ext-tables_0.64.8.jar +91ae2f77e832d20607fad5b7f407d438ca3f16ac032b4f14956e4e7eb3a60931 jdt/wrapped.com.vladsch.flexmark.flexmark-ext-wikilink_0.64.8.jar +0b650a4b47d29ffe0a08802c5d58e2270f733ce5443420c0e8904cfa1605964f jdt/wrapped.com.vladsch.flexmark.flexmark-html2md-converter_0.64.8.jar +74bab2d767f48f930471c9a72a0c3b89e9073549ad3754e6b7f83f09585463bc jdt/wrapped.com.vladsch.flexmark.flexmark-jira-converter_0.64.8.jar +1c7d205afeef618760a5fa907d579835df625ee258cbebd49813f14c2254a535 jdt/wrapped.com.vladsch.flexmark.flexmark-util-ast_0.64.8.jar +9179310212700753a4ecdc7aa057a04591b9cfdb089787a248e8269c34740310 jdt/wrapped.com.vladsch.flexmark.flexmark-util-builder_0.64.8.jar +796b9acec9af0fa290725a14be8a3fc1d6fe7a9cb518a13f67124b5172a3485b jdt/wrapped.com.vladsch.flexmark.flexmark-util-collection_0.64.8.jar +20458c20bc72808e1718ff8f1652272bbb32f62ddaecb2e9a0ddc84d77fd7283 jdt/wrapped.com.vladsch.flexmark.flexmark-util-data_0.64.8.jar +b59fbc922e3604442ff6aae1c6b83220245ba4c3f89d38870bc28c982b69d01d jdt/wrapped.com.vladsch.flexmark.flexmark-util-dependency_0.64.8.jar +b6073ee177aa2476d64787f9ec813fdb881943d402c195df0631ba672bfb1311 jdt/wrapped.com.vladsch.flexmark.flexmark-util-format_0.64.8.jar +c892e6cdbba715c55462decbe1c83cec432548cf2877cfd0715975c44dfab55c jdt/wrapped.com.vladsch.flexmark.flexmark-util-html_0.64.8.jar +1726c33ee95f77cfadc58c8ad27949ed72653f4045fbc399aff62827b44c7fcd jdt/wrapped.com.vladsch.flexmark.flexmark-util-misc_0.64.8.jar +cd0f9212530aa73f67de94d080018b2c3a3a55d41050d3abb4be8afb69989be0 jdt/wrapped.com.vladsch.flexmark.flexmark-util-options_0.64.8.jar +340167af15da00e3ae5fb89d6b44751abfd648951bb6d2e05c48287d9f9e70c9 jdt/wrapped.com.vladsch.flexmark.flexmark-util-sequence_0.64.8.jar +a8fad4a006411d020624c7539e6145e97920067844acddc10b019a178a680948 jdt/wrapped.com.vladsch.flexmark.flexmark-util-visitor_0.64.8.jar +792c13bc5536704fc0bfba9120e5bac712843a7ae6da6104b1392b382feaf63d jdt/wrapped.com.vladsch.flexmark.flexmark-util_0.64.8.jar +a2ec63056bcfe8c4babc62f13f5f49b502fccccf7c011b5d4ba7dd93f4d09393 jdt/wrapped.com.vladsch.flexmark.flexmark_0.64.8.jar +482b6aade7b0320e28db530a22f1382b3d30addf26a5ffd55a347f5c32f6dfc2 jdt/wrapped.org.jetbrains.annotations_24.0.1.jar +0addec670fedcd3f113c5c8091d783280d23f75e3acb841b61a9cdb079376a08 maven/aopalliance-1.0.jar +876eab6a83daecad5ca67eb9fcabb063c97b5aeb8cf1fca7a989ecde17522051 maven/asm-9.8.jar +d3d530d0f28fd0fbbffe2b0b338f70e8cb96f1605579e2e3abd4db29cac24e69 maven/commons-cli-1.9.0.jar +ba005f304cef92a3dede24a38ad5ac9b8afccf0d8f75839d6c1338634cf7f6e4 maven/commons-codec-1.18.0.jar +6661d5335090a5fc61dd869d2095bc6c1e2156e3aa47a6e4ababdf64c99a7889 maven/error_prone_annotations-2.38.0.jar +cbfc3906b19b8f55dd7cfd6dfe0aa4532e834250d7f080bd8d211a3e246b59cb maven/failureaccess-1.0.3.jar +94855942d4992f112946d3de1c334e709237b8126d8130bf07807c018a4a2120 maven/gson-2.13.1.jar +f3d7f57f67fd622f4d468dfdd692b3a5e3909246c28017ac3263405f0fe617ed maven/guava-33.4.8-jre.jar +142ad4475e19524d2fe3ac995b3f7cbc962fc726f2edb9dbdccc61feab9b2bf9 maven/guice-5.1.0-classes.jar +c8bc7e1c51a6d4ce72f40d2ebbabf1c4b68bfe76e732104b04381b493478e9d6 maven/httpclient-4.5.14.jar +6c9b3dd142a09dc468e23ad39aad6f75a0f2b85125104469f026e52a474e464f maven/httpcore-4.4.16.jar +0b7b8b003a90ea491579b62f5118828e45112914c65589b00faa49d6ec785839 maven/jansi-2.4.2.jar +e04ba5195bcd555dc95650f7cc614d151e4bcd52d29a10b8aa2197f3ab89ab9b maven/javax.annotation-api-1.3.2.jar +91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff maven/javax.inject-1.jar +ab57ca8fd223772c17365d121f59e94ecbf0ae59d08c03a3cb5b81071c019195 maven/jcl-over-slf4j-1.7.36.jar +1fad6e6be7557781e4d33729d49ae1cdc8fdda6fe477bb0cc68ce351eafdfbab maven/jspecify-1.0.0.jar +0bfd1c121f907642344311d81e4dfd93eba6c24dc712cc0aeae273eb22833022 maven/maven-artifact-3.9.11.jar +5b1de1560ec19c4c69a655f986455888f3a0bcc3c160cac1f1edb87de3825f77 maven/maven-builder-support-3.9.11.jar +b0e2865fc808fd9fb3bee95bf37c0609eeb20c59bf1e6b958b37b365ee11f52e maven/maven-compat-3.9.11.jar +93d3c0523dda6c86c6620d9e692e7df39d0e2e4e4cd860061a8c0d274c2ad185 maven/maven-core-3.9.11.jar +7e15e05035331d0a7e0fe56d7354b2b30e15c0a8c60863cbf28df25190e197db maven/maven-embedder-3.9.11.jar +163aa596f976264384efeb50b4cb8a806086fd64a9b755ad1f69195fed3998ad maven/maven-model-3.9.11.jar +c4c72accdcd848332c1a37995610a6a369d49fdaabc43e85f0022a5b77de3ba7 maven/maven-model-builder-3.9.11.jar +8e985a56412564cf687040efed8bcd3a63eac2202a824bb01e1d5ece2b87458f maven/maven-plugin-api-3.9.11.jar +f8655f5f0060e0032944f2a23688d186e140d2184749bcfa1927f83cd6a8b1a2 maven/maven-repository-metadata-3.9.11.jar +c0ce14849298720dcf3b09fe9e263b3c576d2d6cd43c61f8aa9d6117e04e5e47 maven/maven-resolver-api-1.9.24.jar +18b7d557c41379db8b157ba95263c676f52c293f5416b67bd1db083e99b30383 maven/maven-resolver-connector-basic-1.9.24.jar +3cd88edda00c46242cdbe57aefb47703519d176d9e8a500333de15faf41b0e1d maven/maven-resolver-impl-1.9.24.jar +a222b0a5ca4c145e8e0f45207a23bcce18bdbe1f1c980e4e9fb332591ee8c91a maven/maven-resolver-named-locks-1.9.24.jar +b5d6e52ae1ecf1cb62ede2234234ba3093149524066488e84415187ce478c582 maven/maven-resolver-provider-3.9.11.jar +e3153906e93333c106ee18babb72ba7984ccb15e9116ea08f88c71b8d9387e01 maven/maven-resolver-spi-1.9.24.jar +b09268d41e1dfcae15a829d45a512ca29d62b727421d3bd6383ac6252e5e960f maven/maven-resolver-transport-file-1.9.24.jar +a0de339a8dd3473d9abaa1cf974507f38783e26af31d36a90c1e59cc8714ded0 maven/maven-resolver-transport-http-1.9.24.jar +78ed57fa2123a2d84fad7a0b15ca73b89df47c10294d02d6f8121c4d0e5050cb maven/maven-resolver-transport-wagon-1.9.24.jar +aeb7e776a8c47b1c317a2581f299e2525b044cb8abde31164e970bbbefab12b1 maven/maven-resolver-util-1.9.24.jar +026718d47d19e360d978857bc63d3dc065884fc2c801563d8a2a77b5ab74ccf8 maven/maven-settings-3.9.11.jar +33c96e4ca5a15b7c93180f6b2f8deb15f511dfc15dda0d2b671c968b22108972 maven/maven-settings-builder-3.9.11.jar +b613357e1bad4dfc1dead801691c9460f9585fe7c6b466bc25186212d7d18487 maven/maven-shared-utils-3.4.2.jar +76d9fa894fa61d1492877ca599cb5ab28ca4573d5f389d6c12a8233b995335f9 maven/maven-slf4j-provider-3.9.11.jar +1cbd7a965a5e2a9ea823bab311962a4e5aa5c240705bdbad5a52b40ffdfa1004 maven/org.eclipse.sisu.inject-0.9.0.M4.jar +b90579bc652eac7331436e0a25533fce14130b9c6e015f2dd3a3d4bb07e942b7 maven/org.eclipse.sisu.plexus-0.9.0.M4.jar +9a7f1b5c5a9effd61eadfd8731452a2f76a8e79111fac391ef75ea801bea203a maven/plexus-cipher-2.0.jar +50edb93c73786e62822b4fe1336e22880fdf147191373cf5c911370e16748fcf maven/plexus-component-annotations-2.2.0.jar +ab2a8715570438a2e4164d85ad3e8d489eabc38ea5093c2eb8ab7f58403535b5 maven/plexus-interpolation-1.28.jar +873139960c4c780176dda580b003a2c4bf82188bdce5bb99234e224ef7acfceb maven/plexus-sec-dispatcher-2.0.jar +27ef130e32c236090e408fb5498d94cb9ea26d14070fb1c8985d607b62d098d1 maven/plexus-utils-3.6.0.jar +d3ef575e3e4979678dc01bf1dcce51021493b4d11fb7f1be8ad982877c16a1c0 maven/slf4j-api-1.7.36.jar +afc9216fa97b78dad227b4a8d4d67b9897bf113a57f80598d62993841113e103 maven/wagon-file-3.5.3.jar +d2b6e48c9fcbe579e1858c622d14464011ff265fa6e28e794004a6882154a509 maven/wagon-http-3.5.3.jar +8e7da766f55164fde8779aaaa125832506c2848cab4876b5305138873e28037f maven/wagon-http-shared-3.5.3.jar +5e72000338945ed3e96f8e4f578d1d0672e1af7e19c0e9014197ae5b31af3ef4 maven/wagon-provider-api-3.5.3.jar diff --git a/plugins/kotlin-bridge/build.py b/plugins/kotlin-bridge/build.py new file mode 100644 index 000000000..538b749c3 --- /dev/null +++ b/plugins/kotlin-bridge/build.py @@ -0,0 +1,32 @@ +"""Build with JDT LS 1.63.0 + Maven 3.9.11. Checksums pin every compiler dependency.""" +import hashlib +import os +import pathlib +import subprocess +import sys +import tempfile +import zipfile + +root = pathlib.Path(__file__).resolve().parent +jdt, maven = map(lambda p: pathlib.Path(p).resolve(), sys.argv[1:3]) +jars = sorted((jdt / 'plugins').glob('*.jar')) + sorted((maven / 'lib').glob('*.jar')) +actual = ''.join(f'{hashlib.sha256(p.read_bytes()).hexdigest()} {"jdt/" if p.parent.name == "plugins" else "maven/"}{p.name}\n' for p in jars) +if '--record-dependencies' in sys.argv: + (root / 'build-dependencies.sha256').write_text(actual) +if (root / 'build-dependencies.sha256').read_text() != actual: + sys.exit('Build dependencies differ from build-dependencies.sha256') +with tempfile.TemporaryDirectory() as output: + for source, target, classpath in [('src', '-21', jars[:len(list((jdt / 'plugins').glob('*.jar')))]), ('maven', '-8', jars)]: + subprocess.run(['java', '-cp', str(jdt / 'plugins/*'), 'org.eclipse.jdt.internal.compiler.batch.Main', target, '-proc:none', '-classpath', os.pathsep.join(map(str, classpath)), '-d', output, *map(str, sorted((root/source).rglob('*.java')))], check=True) + files = {'META-INF/MANIFEST.MF': root/'MANIFEST.MF', 'plugin.xml': root/'plugin.xml', 'META-INF/plexus/components.xml': root/'components.xml'} + files.update({p.relative_to(output).as_posix(): p for p in pathlib.Path(output).rglob('*.class')}) + archive = pathlib.Path(output)/'bundle.jar' + with zipfile.ZipFile(archive, 'w', zipfile.ZIP_DEFLATED) as jar: + for name, path in sorted(files.items()): + data = path.read_bytes() + if name == 'META-INF/MANIFEST.MF': + data = data.rstrip(b'\r\n') + b'\n\n' + jar.writestr(zipfile.ZipInfo(name, (2026, 1, 1, 0, 0, 0)), data) + staged = root/'openidea-kotlin-bridge.jar.pending' + staged.write_bytes(archive.read_bytes()) + staged.replace(root/'openidea-kotlin-bridge.jar') diff --git a/plugins/kotlin-bridge/components.xml b/plugins/kotlin-bridge/components.xml new file mode 100644 index 000000000..156cd7d36 --- /dev/null +++ b/plugins/kotlin-bridge/components.xml @@ -0,0 +1,5 @@ + + org.apache.maven.AbstractMavenLifecycleParticipant + openidea-kotlin-output + ai.openidea.kotlin.IsolatedOutput + diff --git a/plugins/kotlin-bridge/maven/ai/openidea/kotlin/IsolatedOutput.java b/plugins/kotlin-bridge/maven/ai/openidea/kotlin/IsolatedOutput.java new file mode 100644 index 000000000..8da379947 --- /dev/null +++ b/plugins/kotlin-bridge/maven/ai/openidea/kotlin/IsolatedOutput.java @@ -0,0 +1,177 @@ +package ai.openidea.kotlin; + +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.nio.file.*; +import java.util.*; +import org.apache.maven.AbstractMavenLifecycleParticipant; +import org.apache.maven.artifact.Artifact; +import org.apache.maven.MavenExecutionException; +import org.apache.maven.execution.*; +import java.lang.reflect.*; +import org.apache.maven.model.*; +import org.apache.maven.project.MavenProject; +import org.codehaus.plexus.util.xml.Xpp3Dom; + +/** Loaded only by the private bridge build, before lifecycle plans are calculated. */ +public final class IsolatedOutput extends AbstractMavenLifecycleParticipant { + private final Map outputs = new LinkedHashMap<>(); + private File staging; + private final Map> kotlin = new LinkedHashMap<>(); + private final Set sources = new HashSet<>(); + + @Override public void afterProjectsRead(MavenSession session) throws MavenExecutionException { + String destination = session.getUserProperties().getProperty("openidea.kotlin.staging"); + if (destination == null) throw new MavenExecutionException("Missing Kotlin staging directory", (File) null); + staging = new File(destination); + int index = 0; + for (MavenProject project : session.getProjects()) { + File build = new File(staging, Integer.toString(index++)); + File main = new File(build, "classes"); + File test = new File(build, "test-classes"); + project.getBuild().setDirectory(build.getAbsolutePath()); + project.getBuild().setOutputDirectory(main.getAbsolutePath()); + project.getBuild().setTestOutputDirectory(test.getAbsolutePath()); + for (Plugin plugin : project.getBuildPlugins()) { + if ("kotlin-maven-plugin".equals(plugin.getArtifactId())) { + plugin.setConfiguration(redirect(plugin.getConfiguration(), build, main, test)); + for (PluginExecution execution : plugin.getExecutions()) + execution.setConfiguration(redirect(execution.getConfiguration(), build, main, test)); + } else if ("maven-compiler-plugin".equals(plugin.getArtifactId())) { + plugin.setConfiguration(compiler(plugin.getConfiguration())); + for (PluginExecution execution : plugin.getExecutions()) + execution.setConfiguration(compiler(execution.getConfiguration())); + } + } + outputs.put(project, main); + Map goals = new LinkedHashMap<>(); + for (Plugin plugin : project.getBuildPlugins()) { + if (!isKotlin(plugin)) continue; + for (PluginExecution execution : plugin.getExecutions()) { + if ("none".equals(execution.getPhase())) continue; + for (String goal : execution.getGoals()) + if ("compile".equals(goal) || "test-compile".equals(goal)) + goals.put(execution.getId() + ":" + goal, "skipped"); + } + } + kotlin.put(project, goals); + if (hasKotlin(project.getBasedir().toPath(), project.getBasedir().toPath(), session.getProjects())) + sources.add(project); + } + final ExecutionListener previous = session.getRequest().getExecutionListener(); + // Preserve Maven's logger and any listener installed by another extension. + session.getRequest().setExecutionListener((ExecutionListener) Proxy.newProxyInstance( + ExecutionListener.class.getClassLoader(), new Class[] { ExecutionListener.class }, + (proxy, method, args) -> { + if (args != null && args.length == 1 && args[0] instanceof ExecutionEvent) { + ExecutionEvent event = (ExecutionEvent) args[0]; + if (Arrays.asList("mojoStarted", "mojoSucceeded", "mojoFailed", "mojoSkipped").contains(method.getName()) + && event.getMojoExecution() != null && isKotlin(event.getMojoExecution().getPlugin())) { + String goal = event.getMojoExecution().getGoal(); + if ("compile".equals(goal) || "test-compile".equals(goal)) { + String status = method.getName().equals("mojoSucceeded") ? "success" : + method.getName().equals("mojoFailed") ? "failed" : "skipped"; + Map goals = kotlin.get(event.getProject()); + if (goals != null) goals.put(event.getMojoExecution().getExecutionId() + ":" + goal, status); + } + } + } + if (previous == null) return null; + try { return method.invoke(previous, args); } + catch (InvocationTargetException e) { throw e.getCause(); } + })); + } + + private static boolean isKotlin(Plugin plugin) { + return "org.jetbrains.kotlin".equals(plugin.getGroupId()) && "kotlin-maven-plugin".equals(plugin.getArtifactId()); + } + private static boolean hasKotlin(Path root, Path directory, List projects) throws MavenExecutionException { + if (!directory.equals(root)) { + String name = directory.getFileName().toString(); + if (Arrays.asList("target", "build", "out", "bin", ".git", "node_modules", ".openidea").contains(name)) return false; + for (MavenProject project : projects) if (project.getBasedir().toPath().equals(directory)) return false; + } + if (!Files.isDirectory(directory, LinkOption.NOFOLLOW_LINKS)) return false; + try (DirectoryStream entries = Files.newDirectoryStream(directory)) { + for (Path path : entries) { + if (Files.isRegularFile(path, LinkOption.NOFOLLOW_LINKS) && path.toString().endsWith(".kt")) return true; + if (hasKotlin(root, path, projects)) return true; + } + return false; + } catch (IOException e) { throw new MavenExecutionException("Cannot inspect Kotlin sources", e); } + } + + @Override public void afterSessionEnd(MavenSession session) throws MavenExecutionException { + if (staging == null) return; + List modules = new ArrayList<>(); + for (Map.Entry entry : outputs.entrySet()) { + MavenProject project = entry.getKey(); + File main = entry.getValue(); + List dependencies = new ArrayList<>(); + // Maven has applied dependency management, mediation, scopes, optional + // propagation and exclusions. Do not reconstruct that graph from POMs. + for (Artifact dependency : project.getArtifacts()) { + dependencies.add("{\"key\":" + quote(dependency.getGroupId() + ":" + dependency.getArtifactId() + ":" + dependency.getVersion()) + + ",\"scope\":" + quote(dependency.getScope() == null ? "compile" : dependency.getScope()) + + ",\"optional\":" + dependency.isOptional() + ",\"type\":" + quote(dependency.getType()) + + ",\"classifier\":" + quote(dependency.getClassifier()) + "}"); + } + List goals = new ArrayList<>(); + for (Map.Entry goal : kotlin.get(project).entrySet()) + goals.add("{\"execution\":" + quote(goal.getKey()) + ",\"status\":" + quote(goal.getValue()) + "}"); + modules.add("{\"key\":" + quote(project.getGroupId() + ":" + project.getArtifactId() + ":" + project.getVersion()) + + ",\"projectUri\":" + quote(project.getBasedir().toURI().toString()) + + ",\"output\":" + quote(main.getAbsolutePath()) + + ",\"testOutput\":" + quote(project.getBuild().getTestOutputDirectory()) + + ",\"hasKotlin\":" + sources.contains(project) + + ",\"kotlinGoals\":[" + String.join(",", goals) + "]" + + ",\"dependencies\":[" + String.join(",", dependencies) + "]}"); + } + try { + Files.createDirectories(staging.toPath()); + Files.write(new File(staging.getParentFile(), "modules.json").toPath(), + ("[" + String.join(",", modules) + "]").getBytes(StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new MavenExecutionException("Cannot write Kotlin module manifest", e); + } + } + + private static Xpp3Dom config(Object value) { + return value instanceof Xpp3Dom ? new Xpp3Dom((Xpp3Dom) value) : new Xpp3Dom("configuration"); + } + private static void set(Xpp3Dom config, String name, File path) { + Xpp3Dom child = config.getChild(name); + if (child == null) { child = new Xpp3Dom(name); config.addChild(child); } + child.setValue(path.getAbsolutePath()); + } + private static Xpp3Dom redirect(Object value, File build, File main, File test) { + Xpp3Dom config = config(value); + set(config, "output", main); + set(config, "testOutput", test); + set(config, "incrementalCachesRoot", new File(build, "kotlin-ic")); + Xpp3Dom incremental = config.getChild("myIncremental"); + if (incremental == null) { incremental = new Xpp3Dom("myIncremental"); config.addChild(incremental); } + incremental.setValue("false"); + return config; + } + private static Xpp3Dom compiler(Object value) { + Xpp3Dom config = config(value); + // compile and testCompile share the parameter name outputDirectory but + // have different defaults. Let each mojo read the redirected build model. + for (int i = config.getChildCount() - 1; i >= 0; i--) { + String name = config.getChild(i).getName(); + if ("outputDirectory".equals(name) || "testOutputDirectory".equals(name)) config.removeChild(i); + } + return config; + } + private static String quote(String text) { + if (text == null) return "null"; + StringBuilder out = new StringBuilder("\""); + for (char c : text.toCharArray()) { + if (c == '\\' || c == '"') out.append('\\').append(c); + else if (c < 32) out.append(String.format("\\u%04x", (int) c)); + else out.append(c); + } + return out.append('"').toString(); + } +} diff --git a/plugins/kotlin-bridge/openidea-kotlin-bridge.jar b/plugins/kotlin-bridge/openidea-kotlin-bridge.jar new file mode 100644 index 0000000000000000000000000000000000000000..8250780f3a2be6c84102a3270bf06aeff984a182 GIT binary patch literal 25814 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 literal 0 HcmV?d00001 diff --git a/plugins/kotlin-bridge/plugin.xml b/plugins/kotlin-bridge/plugin.xml new file mode 100644 index 000000000..a0ac23ef7 --- /dev/null +++ b/plugins/kotlin-bridge/plugin.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/plugins/kotlin-bridge/src/ai/openidea/kotlin/KotlinLibraries.java b/plugins/kotlin-bridge/src/ai/openidea/kotlin/KotlinLibraries.java new file mode 100644 index 000000000..8f92e7efd --- /dev/null +++ b/plugins/kotlin-bridge/src/ai/openidea/kotlin/KotlinLibraries.java @@ -0,0 +1,94 @@ +package ai.openidea.kotlin; + +import com.google.gson.Gson; +import java.io.File; +import java.net.URI; +import java.util.*; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.*; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.jdt.core.*; +import org.eclipse.jdt.ls.core.internal.IDelegateCommandHandler; + +/** Owns only marked binary entries; Maven and user entries retain their identities. */ +public final class KotlinLibraries implements IDelegateCommandHandler { + private static final String OWNER = "ai.openidea.kotlin"; + private static final Object LOCK = new Object(); + private static List desired = List.of(); + private static boolean listening; + private static final Job reconcileJob = new Job("Kotlin binary libraries") { + @Override protected IStatus run(IProgressMonitor monitor) { + synchronized (LOCK) { + try { + reconcile(monitor); + return Status.OK_STATUS; + } catch (CoreException e) { + return e.getStatus(); + } + } + } + }; + private static class Library { String path; boolean test; } + private static class ProjectLibraries { String projectUri; List libraries; } + + @Override public Object executeCommand(String command, List arguments, IProgressMonitor monitor) throws Exception { + if (!"openidea.kotlin.replace".equals(command) || arguments.size() != 1) + throw new IllegalArgumentException("Expected one Kotlin library snapshot"); + Gson gson = new Gson(); + ProjectLibraries[] snapshot = gson.fromJson(gson.toJson(arguments.get(0)), ProjectLibraries[].class); + for (ProjectLibraries project : snapshot) { + new File(URI.create(project.projectUri)); + for (Library library : project.libraries) { + if (!new File(library.path).isAbsolute() || !new File(library.path).isDirectory()) + throw new IllegalArgumentException("Kotlin library must be a published directory: " + library.path); + } + } + synchronized (LOCK) { + if (monitor.isCanceled()) throw new OperationCanceledException(); + desired = List.of(snapshot); + if (!listening) { + JavaCore.addElementChangedListener(event -> reconcileJob.schedule(200), ElementChangedEvent.POST_CHANGE); + listening = true; + } + return reconcile(monitor); + } + } + + private static File canonical(URI uri) { + File file = new File(uri); + try { return file.getCanonicalFile(); } + catch (java.io.IOException e) { return file.getAbsoluteFile(); } + } + + private static int reconcile(IProgressMonitor monitor) throws CoreException { + int changed = 0; + for (IJavaProject project : JavaCore.create(ResourcesPlugin.getWorkspace().getRoot()).getJavaProjects()) { + if (!project.getProject().isAccessible()) continue; + List entries = new ArrayList<>(); + IClasspathEntry[] original = project.getRawClasspath(); + for (IClasspathEntry entry : original) { + boolean owned = entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY && + Arrays.stream(entry.getExtraAttributes()).anyMatch(a -> OWNER.equals(a.getName()) && "true".equals(a.getValue())); + if (!owned) entries.add(entry); + } + URI location = project.getProject().getLocationURI(); + for (ProjectLibraries item : desired) { + if (location == null || !canonical(location).equals(canonical(URI.create(item.projectUri)))) continue; + for (Library library : item.libraries) { + List attributes = new ArrayList<>(); + attributes.add(JavaCore.newClasspathAttribute(OWNER, "true")); + if (library.test) attributes.add(JavaCore.newClasspathAttribute(IClasspathAttribute.TEST, "true")); + entries.add(JavaCore.newLibraryEntry(Path.fromOSString(library.path), null, null, + new IAccessRule[0], attributes.toArray(IClasspathAttribute[]::new), false)); + } + } + IClasspathEntry[] updated = entries.toArray(IClasspathEntry[]::new); + if (!Arrays.equals(original, updated)) { + if (monitor.isCanceled()) throw new OperationCanceledException(); + project.setRawClasspath(updated, monitor); + changed++; + } + } + return changed; + } +} diff --git a/plugins/kotlin-bridge/tests/verify.py b/plugins/kotlin-bridge/tests/verify.py new file mode 100644 index 000000000..3d6c89862 --- /dev/null +++ b/plugins/kotlin-bridge/tests/verify.py @@ -0,0 +1,275 @@ +"""Real Maven + JDT LS regression: python3 verify.py JDT_HOME (Java 25; Maven uses JAVA_HOME).""" +import json +import os +import pathlib +import platform +import queue +import shutil +import subprocess +import sys +import tempfile +import threading +import time +import xml.etree.ElementTree as ET + +home = pathlib.Path(sys.argv[1]).resolve() +bundle = pathlib.Path(__file__).resolve().parents[1] / 'openidea-kotlin-bridge.jar' +work = pathlib.Path(tempfile.mkdtemp(prefix='openidea-kotlin-bridge-', dir=os.environ.get('TMPDIR'))).resolve() +copied_bundle = work/'openidea-kotlin-bridge.jar' +shutil.copyfile(bundle, copied_bundle) +bundle = copied_bundle +projects = work / 'projects' +single = projects / 'single' +multi = projects / 'multi' +lib = multi / 'channel-lib' +app = multi / 'app' +for directory in [single, lib, app]: + (directory / 'src/main/java/probe').mkdir(parents=True) +plugin = '''org.jetbrains.kotlinkotlin-maven-plugin2.0.10kotlin-compileprocess-sourcescompile1.8src/main/javaorg.apache.maven.pluginsmaven-compiler-plugin3.13.0''' +plugin = plugin.replace('', 'kotlin-testprocess-test-sourcestest-compile1.8src/test/java') +stdlib = 'org.jetbrains.kotlinkotlin-stdlib2.0.10' +properties = '88' +prefix = '4.0.0' +(single / 'pom.xml').write_text(prefix + 'probesingle1' + properties + stdlib + plugin + '') +(multi / 'pom.xml').write_text(prefix + 'probereactor1pom' + properties + 'channel-libapp') +parent = 'probereactor1' +(lib / 'pom.xml').write_text(prefix + parent + 'channel-lib' + stdlib + plugin + '') +(app / 'pom.xml').write_text(prefix + parent + 'appprobechannel-lib1') +source = 'package probe;\npublic class Caller {\n public Channel channel() {\n return Channel.SMS;\n }\n}\n' +for directory in [single, app]: + (directory / 'src/main/java/probe/Caller.java').write_text(source) +for directory in [single, lib]: + (directory / 'src/main/java/probe/Channel.kt').write_text('package probe\nenum class Channel { SMS }\n') + +(single/'src/test/java/probe').mkdir(parents=True) +test_source = source.replace('Caller', 'TestCaller').replace('Channel', 'TestChannel') +(single/'src/test/java/probe/TestCaller.java').write_text(test_source) +(single/'src/test/java/probe/TestChannel.kt').write_text('package probe\nenum class TestChannel { SMS }\n') + +config = work / 'config' +config.mkdir() +base = {'Darwin': 'config_mac', 'Windows': 'config_win'}.get(platform.system(), 'config_linux') +names = [base + '_arm', base] if platform.machine().lower() in ('arm64', 'aarch64') else [base] +shutil.copyfile(next(home / n / 'config.ini' for n in names if (home/n/'config.ini').exists()), config/'config.ini') +proc = subprocess.Popen(['java', '-Declipse.application=org.eclipse.jdt.ls.core.id1', '-Dosgi.bundles.defaultStartLevel=4', '-Declipse.product=org.eclipse.jdt.ls.core.product', '-Xmx1G', '--add-modules=ALL-SYSTEM', '--add-opens', 'java.base/java.util=ALL-UNNAMED', '--add-opens', 'java.base/java.lang=ALL-UNNAMED', '-jar', str(next((home/'plugins').glob('org.eclipse.equinox.launcher_*.jar'))), '-configuration', str(config), '-data', str(work/'metadata')], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=(work/'stderr.log').open('w')) +messages = queue.Queue() +lock = threading.Lock() +transcript = [] +seq = 0 +def send(message): + data = json.dumps({'jsonrpc': '2.0', **message}).encode() + with lock: + proc.stdin.write(f'Content-Length: {len(data)}\r\n\r\n'.encode() + data) + proc.stdin.flush() +def read(): + while True: + headers = {} + while True: + line = proc.stdout.readline() + if not line: return + if line == b'\r\n': break + key, value = line.decode().split(':', 1) + headers[key.lower()] = value.strip() + message = json.loads(proc.stdout.read(int(headers['content-length']))) + if 'method' in message and 'id' in message: + send({'id':message['id'], 'result': [] if message['method']=='workspace/configuration' else None}) + else: + messages.put(message) +threading.Thread(target=read, daemon=True).start() +def request(method, params): + global seq + seq += 1 + send({'id':seq, 'method':method, 'params':params}) + deadline = time.monotonic() + 240 + while time.monotonic() < deadline: + message = messages.get(timeout=max(1, deadline-time.monotonic())) + transcript.append(message) + if message.get('id') == seq: + if 'error' in message: raise RuntimeError(message['error']) + return message.get('result') + raise TimeoutError(method) +def command(snapshot): + response = request('workspace/executeCommand', {'command':'openidea.kotlin.replace', 'arguments':[snapshot]}) + assert isinstance(response, (int, float)), response + return response +def build(directory, revision, expected=True): + staging = work / revision + result = subprocess.run(['mvn', '-B', '-fae', '-Dstyle.color=never', f'-Dmaven.ext.class.path={bundle}', f'-Dopenidea.kotlin.staging={staging}/staging', 'test-compile'], cwd=directory, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + (work/f'{revision}.log').write_bytes(result.stdout) + modules = json.loads((staging/'modules.json').read_text()) + eligible = all(m['kotlinGoals'] and all(g['status'] == 'success' for g in m['kotlinGoals']) for m in modules if m['hasKotlin']) + assert eligible == expected, (modules, result.stdout.decode()) + evidence[revision + '-build'] = {'exitCode':result.returncode, 'modules':modules, 'eligible':eligible} + return modules +def library(module, revision, test=False, name="Channel"): + directory = work/'published'/revision + directory.mkdir(parents=True) + output = module['testOutput' if test else 'output'] + for file in pathlib.Path(output).rglob('TestChannel*.class' if test else name+'*.class'): + destination = directory/file.relative_to(output) + destination.parent.mkdir(parents=True, exist_ok=True) + shutil.copyfile(file, destination) + assert list(directory.rglob('*.class')), module + return {'path':str(directory), 'test':test} +def state(directory, label, expected, test=False): + file = directory/('src/test/java/probe/TestCaller.java' if test else 'src/main/java/probe/Caller.java') + deadline = time.monotonic() + 30 + while True: + time.sleep(0.25) + request('workspace/symbol', {'query':'Caller'}) + reports = [m['params'] for m in transcript if m.get('method')=='textDocument/publishDiagnostics' and m['params']['uri']==file.as_uri()] + errors = [d for d in reports[-1]['diagnostics'] if d.get('severity')==1] if reports else None + if errors is not None and ((errors == []) == expected): break + if time.monotonic() > deadline: raise AssertionError((label, errors)) + completion = request('textDocument/completion', {'textDocument':{'uri':file.as_uri()}, 'position':{'line':3,'character':27 if test else 23}}) + items = completion.get('items', []) if isinstance(completion, dict) else completion or [] + labels = [item['label'] for item in items] + definition = request('textDocument/definition', {'textDocument':{'uri':file.as_uri()}, 'position':{'line':2,'character':12}}) + result = {'errors':errors, 'completion':labels, 'definition':definition} + evidence[label] = result + assert errors is not None, (label, "no published diagnostics") + assert (errors == []) == expected, (label, errors) + assert any(label.startswith('SMS') for label in labels) == expected, (label, labels) + assert bool(definition) == expected, (label, definition) + if expected: + location = definition[0] + assert location.get('uri', location.get('targetUri', '')).startswith('jdt:'), definition + return result + +evidence = {'work':str(work)} +try: + init = request('initialize', {'processId':None, 'rootUri':projects.as_uri(), 'workspaceFolders':[{'uri':projects.as_uri(), 'name':'projects'}], 'capabilities':{'textDocument':{'completion':{'completionItem':{'snippetSupport':True}}, 'definition':{'linkSupport':True}}}, 'initializationOptions':{'bundles':[str(bundle)], 'extendedClientCapabilities':{'classFileContentsSupport':True}, 'settings':{'java':{'import':{'gradle':{'enabled':False}, 'maven':{'enabled':True}}, 'configuration':{'updateBuildConfiguration':'automatic'}}}}}) + send({'method':'initialized', 'params':{}}) + request('java/buildWorkspace', True) + for directory, test in [(single,False), (app,False), (single,True)]: + file = directory/('src/test/java/probe/TestCaller.java' if test else 'src/main/java/probe/Caller.java') + send({'method':'textDocument/didOpen','params':{'textDocument':{'uri':file.as_uri(),'languageId':'java','version':1,'text':test_source if test else source}}}) + # Allow reconcile jobs to publish their first marker batch. + time.sleep(2) + state(single, 'single-before', False) + state(app, 'multi-before', False) + state(single, 'test-before', False, True) + def raw(directory): + entries = ET.parse(directory/'.classpath').getroot() + return [ET.tostring(e).decode().strip() for e in entries if not any(a.get('name')=='ai.openidea.kotlin' for a in e.findall('./attributes/attribute'))] + before = {str(d):raw(d) for d in [single, lib, app]} + sm = build(single, 'single-build')[0] + assert not (pathlib.Path(sm['output'])/'probe/TestCaller.class').exists() + assert (pathlib.Path(sm['testOutput'])/'probe/TestCaller.class').is_file() + mm = build(multi, 'multi-build') + lm = next(m for m in mm if 'channel-lib' in m['key']) + sl, ml = library(sm, 'single'), library(lm, 'multi') + snapshot = [{'projectUri':single.as_uri(),'libraries':[sl, library(sm, 'single-test', True)]}, {'projectUri':lib.as_uri(),'libraries':[ml]}, {'projectUri':app.as_uri(),'libraries':[ml]}] + command(snapshot) + time.sleep(2) + state(single, 'single-after', True) + state(app, 'multi-after', True) + state(single, 'test-after', True, True) + assert all(raw(d) == before[str(d)] for d in [single,lib,app]), 'changed unowned entries' + # Simulate m2e removing the extra entries during a configuration update. + send({'method':'java/projectConfigurationsUpdate','params':{'identifiers':[{'uri':(d/'pom.xml').as_uri()} for d in [single,lib,app]]}}) + time.sleep(3) + state(single, 'single-reimport', True) + state(app, 'multi-reimport', True) + assert all(raw(d) == before[str(d)] for d in [single,lib,app]), 'reimport changed unowned entries' + # A saved API change must replace the immutable binary directory. + (single/'src/main/java/probe/Channel.kt').write_text('package probe\nenum class Channel { SMS, EMAIL }\n') + state(single, 'single-during-rebuild', True) + changed = build(single, 'single-changed')[0] + snapshot[0]['libraries'] = [library(changed, 'single-changed'), library(changed, 'single-test-changed', True)] + command(snapshot) + time.sleep(2) + changed_state = state(single, 'single-new-enum-member', True) + assert any(label.startswith('EMAIL') for label in changed_state['completion']) + # Failed Kotlin compilation keeps both main and test APIs attached. + (single/'src/main/java/probe/Channel.kt').write_text('package probe\nenum class Channel { ??? }\n') + broken = build(single, 'single-broken', expected=False)[0] + assert any(g['status'] == 'failed' for g in broken['kotlinGoals']) + state(single, 'single-broken-retains-api', True) + state(single, 'single-broken-retains-test-api', True, True) + # A javac failure skips test Kotlin targets, so this whole snapshot is retained. + (single/'src/main/java/probe/Channel.kt').write_text('package probe\nenum class Delivery { SMS }\n') + skipped = build(single, 'single-skipped-test', expected=False)[0] + assert any(g['execution'].endswith(':test-compile') and g['status'] == 'skipped' for g in skipped['kotlinGoals']) + assert list(pathlib.Path(skipped['output']).rglob('Delivery.class')) + state(single, 'single-skipped-test-retains-api', True) + # The reactor fixture has no test Kotlin goal. Publish despite downstream javac failure. + kt = lib/'src/main/java/probe/Channel.kt' + kt.write_text('package probe\nenum class Delivery { SMS }\n') + renamed = build(multi, 'multi-renamed') + renamed_lib = next(m for m in renamed if 'channel-lib' in m['key']) + new_library = library(renamed_lib, 'multi-renamed', name='Delivery') + assert not list(pathlib.Path(renamed_lib['output']).rglob('Channel.class')) + snapshot[1]['libraries'] = snapshot[2]['libraries'] = [new_library] + command(snapshot) + state(app, 'multi-renamed', False) + kt.unlink() + snapshot[1]['libraries'] = snapshot[2]['libraries'] = [] + command(snapshot) + state(app, 'multi-deleted', False) + kt.write_text('package probe\nenum class Channel { SMS }\n') + restored = next(m for m in build(multi, 'multi-restored') if 'channel-lib' in m['key']) + restored_library = library(restored, 'multi-restored') + snapshot[1]['libraries'] = snapshot[2]['libraries'] = [restored_library] + command(snapshot) + state(app, 'multi-restored', True) + (single/'src/main/java/probe/Channel.kt').write_text('package probe\nenum class Channel { SMS }\n') + repaired = build(single, 'single-repaired')[0] + snapshot[0]['libraries'] = [library(repaired, 'single-repaired'), library(repaired, 'single-test-repaired', True)] + command(snapshot) + time.sleep(2) + state(single, 'single-repaired', True) + # No old API after explicit invalidation, and recovery is repeatable. + command([]) + time.sleep(2) + state(single, 'single-withdrawn', False) + state(app, 'multi-withdrawn', False) + state(single, 'test-withdrawn', False, True) + command(snapshot) + time.sleep(2) + state(single, 'single-recovered', True) + state(app, 'multi-recovered', True) + # Main sources must not gain visibility of test-only Kotlin libraries. + leak = single/'src/main/java/probe/MainLeak.java' + leak_source = test_source.replace('TestCaller', 'MainLeak') + leak.write_text(leak_source) + send({'method':'textDocument/didOpen','params':{'textDocument':{'uri':leak.as_uri(),'languageId':'java','version':1,'text':leak_source}}}) + deadline = time.monotonic() + 30 + while True: + time.sleep(0.25) + request('workspace/symbol', {'query':'MainLeak'}) + reports = [m['params'] for m in transcript if m.get('method')=='textDocument/publishDiagnostics' and m['params']['uri']==leak.as_uri()] + if reports: break + assert time.monotonic() < deadline, 'no diagnostics for main/test isolation' + evidence['main-test-isolation'] = reports[-1]['diagnostics'] + assert any(d.get('severity') == 1 for d in reports[-1]['diagnostics']), reports[-1] + # Compiler and JDT outputs must not share Kotlin classes. + assert not list(single.glob('target/classes/**/Channel.class')) + assert not list(lib.glob('target/classes/**/Channel.class')) + # -fae runs independent Kotlin modules and records upstream-skipped targets. + fail_reactor = work/'fail-at-end' + fail_reactor.mkdir() + (fail_reactor/'pom.xml').write_text(prefix + 'probefailure-reactor1pom' + properties + 'broken-javaindependentdownstream') + failure_parent = 'probefailure-reactor1' + for name in ['broken-java', 'independent', 'downstream']: + module = fail_reactor/name + (module/'src/main/java/probe').mkdir(parents=True) + dependency = 'probebroken-java1org.jetbrains.kotlinkotlin-stdlib2.0.10' if name == 'downstream' else stdlib + (module/'pom.xml').write_text(prefix + failure_parent + '' + name + '' + dependency + plugin + '') + if name == 'broken-java': + (module/'src/main/java/probe/Broken.java').write_text('package probe; public class Broken { Missing value; }') + else: + (module/'src/main/java/probe/Channel.kt').write_text('package probe\nenum class Channel { SMS }\n') + statuses = build(fail_reactor, 'fail-at-end-statuses', expected=False) + independent = next(m for m in statuses if ':independent:' in m['key']) + downstream = next(m for m in statuses if ':downstream:' in m['key']) + assert all(g['status'] == 'success' for g in independent['kotlinGoals']), independent + assert all(g['status'] == 'skipped' for g in downstream['kotlinGoals']), downstream + assert list(pathlib.Path(independent['output']).rglob('Channel.class')) + print(json.dumps(evidence, indent=2)) +finally: + (work/'evidence.json').write_text(json.dumps(evidence, indent=2)) + (work/'transcript.json').write_text(json.dumps(transcript, indent=2)) + proc.terminate() + proc.wait(timeout=20) + print('Evidence:', work, file=sys.stderr) diff --git a/src/platform/locales/text/zh.json b/src/platform/locales/text/zh.json index 8204ccd51..7380fa336 100644 --- a/src/platform/locales/text/zh.json +++ b/src/platform/locales/text/zh.json @@ -1,4 +1,9 @@ { + "Kotlin bridge requires a Maven build root": "Kotlin 桥接需要 Maven 构建根目录", + "Kotlin bridge bundle is unavailable": "Kotlin 桥接扩展不可用", + "Kotlin bridge command did not acknowledge its library snapshot": "Kotlin 桥接命令未确认类库更新", + "Maven compilation failed": "Maven 编译失败", + "Kotlin editor compilation failed": "Kotlin 编辑器编译失败", "Updating results…": "正在更新结果…", "Uploading files": "正在上传文件", "No files on the clipboard": "剪贴板中没有文件", diff --git a/src/workbench/notificationStore.ts b/src/workbench/notificationStore.ts index f67a384f5..622079e90 100644 --- a/src/workbench/notificationStore.ts +++ b/src/workbench/notificationStore.ts @@ -2,6 +2,7 @@ import type { ReactNode } from "react"; import { create } from "zustand"; import { call, commands, onIdeEvent } from "@/platform/ipc"; +import { tx } from "@/platform/i18n"; import { useProject } from "@/platform/project"; import type { NotificationService } from "./contributions"; @@ -189,5 +190,8 @@ export const notificationServiceImpl: NotificationService = { }; export function installNotifyEvents(): () => void { - return onIdeEvent("notify", (e) => void notify({ level: e.level, title: e.title, body: e.body ?? undefined })); + return onIdeEvent( + "notify", + (e) => void notify({ level: e.level, title: tx(e.title), body: e.body ? tx(e.body) : undefined }), + ); } From ec5193f827d5a91ff78daf54f6a142aa19c8b499 Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sun, 1 Nov 2026 16:54:31 +0800 Subject: [PATCH 19/27] feat(format): external formatting with managed Prettier (#671) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reformat Code only asked the language server for formatting, so files whose server has no formatting capability (Markdown with marksman, and others depending on the server) could not be formatted. Languages can now declare an external formatter. Prettier is the first: a managed tool installed on demand, or the project's own node_modules/prettier, an explicit path, or PATH. It runs on the backend copy of the document with the file's path so Prettier resolves the project's config, overrides and ignore files, and its result is applied as one undoable edit. Language servers that format a file keep doing so unless Prettier is preferred in Settings › Languages › Prettier; formatting on save is opt-in. Parsers without range support format the whole file and say so. Errors carry structured tool data, so a missing Prettier reuses the shared install prompt and Prettier diagnostics or timeouts show as non-sticky notifications. Fixes #639 --- crates/ide-core/src/error.rs | 53 +++++- crates/ide-core/src/settings.rs | 41 +++++ crates/ide-dap/src/tests.rs | 1 + crates/ide-host/src/formatter.rs | 107 +++++++++++ crates/ide-host/src/lib.rs | 1 + crates/ide-host/src/ops/lsp.rs | 2 +- crates/ide-language/src/lib.rs | 13 ++ crates/ide-lsp/src/lib.rs | 6 + crates/ide-lsp/src/types.rs | 3 + crates/ide-lsp/tests/mock_server.rs | 39 +++- crates/ide-lsp/tests/real_servers.rs | 1 + crates/ide-tools/src/formatter.rs | 174 ++++++++++++++++++ crates/ide-tools/src/lib.rs | 4 + crates/ide-tools/src/process.rs | 117 ++++++++++++ crates/ide-tools/src/registry.rs | 19 +- crates/ide-tools/tests/prettier.rs | 91 +++++++++ languages/css.toml | 1 + languages/graphql.toml | 1 + languages/html.toml | 1 + languages/javascript.toml | 1 + languages/javascriptreact.toml | 1 + languages/json.toml | 1 + languages/jsonc.toml | 1 + languages/less.toml | 1 + languages/markdown.toml | 1 + languages/scss.toml | 1 + languages/typescript.toml | 1 + languages/typescriptreact.toml | 1 + languages/vue.toml | 1 + languages/yaml.toml | 1 + src/bindings.ts | 19 +- src/editor/lsp/actions.ts | 12 +- src/editor/lsp/format.module.css | 3 + src/editor/lsp/format.test.ts | 35 +++- src/editor/lsp/format.ts | 39 +++- src/editor/lsp/formatErrors.test.tsx | 124 +++++++++++++ .../settings/__tests__/languages.test.ts | 11 ++ .../settings/languages/PrettierPage.tsx | 72 ++++++++ src/features/settings/pages/languages.tsx | 11 ++ src/features/tools/LanguageServersPage.tsx | 1 + src/features/tools/__tests__/tools.test.tsx | 30 ++- src/features/tools/index.ts | 12 +- src/features/tools/missing.ts | 13 +- src/platform/ipc.ts | 2 + src/platform/languageSettings.ts | 31 ++++ src/platform/locales/text/zh.json | 22 ++- src/platform/locales/textCatalog.test.ts | 2 + src/workbench/Workbench.test.tsx | 11 ++ src/workbench/notificationStore.ts | 4 +- 49 files changed, 1111 insertions(+), 29 deletions(-) create mode 100644 crates/ide-host/src/formatter.rs create mode 100644 crates/ide-tools/src/formatter.rs create mode 100644 crates/ide-tools/tests/prettier.rs create mode 100644 src/editor/lsp/format.module.css create mode 100644 src/editor/lsp/formatErrors.test.tsx create mode 100644 src/features/settings/languages/PrettierPage.tsx diff --git a/crates/ide-core/src/error.rs b/crates/ide-core/src/error.rs index 7df81c9a5..f78cf37f7 100644 --- a/crates/ide-core/src/error.rs +++ b/crates/ide-core/src/error.rs @@ -12,6 +12,15 @@ pub type IdeResult = Result; pub struct IdeError { pub kind: ErrorKind, pub message: String, + /// Structured detail for errors the UI acts on; `null` for plain errors. + #[specta(optional)] + pub data: Option, +} + +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, Type)] +#[serde(tag = "type", rename_all = "camelCase")] +pub enum ErrorData { + Tool { tool: String, missing: bool }, } #[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize, Type)] @@ -24,6 +33,7 @@ pub enum ErrorKind { /// Document version mismatch; the UI must resync the full text. OutOfSync, Cancelled, + TimedOut, /// A required external tool (language server, git, debugger) is unavailable. Unavailable, Io, @@ -33,7 +43,21 @@ pub enum ErrorKind { impl IdeError { pub fn new(kind: ErrorKind, message: impl Into) -> Self { - Self { kind, message: message.into() } + Self { kind, message: message.into(), data: None } + } + pub fn with_tool(mut self, tool: impl Into) -> Self { + if self.data.is_none() { + self.data = Some(ErrorData::Tool { tool: tool.into(), missing: false }); + } + self + } + pub fn missing_tool(tool: impl Into) -> Self { + let tool = tool.into(); + Self { + kind: ErrorKind::NotFound, + message: format!("{tool} is not installed"), + data: Some(ErrorData::Tool { tool, missing: true }), + } } pub fn not_found(m: impl Into) -> Self { Self::new(ErrorKind::NotFound, m) @@ -65,3 +89,30 @@ impl From for IdeError { Self::new(kind, e.to_string()) } } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn tool_errors_round_trip_without_changing_diagnostics() { + let message = "[error] file.css: Unexpected token\n 1 | }\n"; + let error = IdeError::invalid(message).with_tool("prettier"); + let decoded: IdeError = serde_json::from_str(&serde_json::to_string(&error).unwrap()).unwrap(); + assert_eq!(decoded.message, message); + assert_eq!(decoded.data, Some(ErrorData::Tool { tool: "prettier".into(), missing: false })); + let missing = IdeError::missing_tool("prettier").with_tool("prettier"); + assert_eq!(missing.kind, ErrorKind::NotFound); + assert_eq!(missing.data, Some(ErrorData::Tool { tool: "prettier".into(), missing: true })); + } + + #[test] + fn legacy_errors_need_no_data() { + let error: IdeError = serde_json::from_str(r#"{"kind":"unavailable","message":"no server"}"#).unwrap(); + assert!(error.data.is_none()); + assert_eq!( + serde_json::to_value(error).unwrap(), + serde_json::json!({"kind":"unavailable","message":"no server","data":null}) + ); + } +} diff --git a/crates/ide-core/src/settings.rs b/crates/ide-core/src/settings.rs index 1b49cd813..7f360b1f1 100644 --- a/crates/ide-core/src/settings.rs +++ b/crates/ide-core/src/settings.rs @@ -508,9 +508,50 @@ pub struct LanguagesSettings { pub rust: RustSettings, pub go: GoSettings, pub typescript: TypeScriptSettings, + pub prettier: PrettierSettings, pub java: JavaSettings, } +#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Type)] +#[serde(default, rename_all = "camelCase")] +pub struct PrettierSettings { + /// Empty path: project node_modules, managed installation, then PATH. + pub path: String, + pub languages: Vec, + /// Prefer Prettier even when a language server offers formatting. + pub prefer: bool, + pub run_on_save: bool, +} + +impl Default for PrettierSettings { + fn default() -> Self { + Self { + path: String::new(), + languages: [ + "markdown", + "yaml", + "css", + "scss", + "less", + "html", + "graphql", + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "json", + "jsonc", + "vue", + ] + .into_iter() + .map(String::from) + .collect(), + prefer: false, + run_on_save: false, + } + } +} + #[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Type)] #[serde(default, rename_all = "camelCase")] pub struct PythonSettings { diff --git a/crates/ide-dap/src/tests.rs b/crates/ide-dap/src/tests.rs index 6bcd57b65..e1fb0ecae 100644 --- a/crates/ide-dap/src/tests.rs +++ b/crates/ide-dap/src/tests.rs @@ -905,6 +905,7 @@ fn godot_registry(port: u16, command: &str, args: &[&str]) -> Arc, language: &str, settings: &PrettierSettings, lsp: bool) -> bool { + config.is_some_and(|c| c.tool == "prettier") + && settings.languages.iter().any(|l| l == language) + && (settings.prefer || !lsp) +} + +pub async fn format( + host: &Host, + window: &str, + doc: DocId, + range: Option, + options: FormatOptions, +) -> IdeResult> { + let project = host.project(window)?; + let snap = project.documents.snapshot(doc)?; + let settings = project.settings.effective(); + let prettier = &settings.languages.prettier; + let language = project.languages.get(&snap.language); + let config = language.as_ref().and_then(|l| l.formatter.as_ref()); + let candidate = + config.is_some_and(|c| c.tool == "prettier") && prettier.languages.iter().any(|l| l == snap.language.as_str()); + let lsp = if candidate && !prettier.prefer { project.lsp.can_format(doc).await? } else { false }; + if !external_selected(config, snap.language.as_str(), prettier, lsp) { + if options.on_save && !settings.editor.format_on_save { + return Ok(Vec::new()); + } + return project.lsp.format(doc, range, options).await; + } + if options.on_save && !prettier.run_on_save { + return Ok(Vec::new()); + } + host.require_trust(window)?; + if snap.read_only { + return Err(IdeError::invalid("The file is read-only")); + } + let config = config.unwrap().clone(); + let custom = ide_sdk::apply::setting_path(&project.root, &prettier.path); + let tools = Tools::new(&host.data_dir); + let whole_selection = range.is_some() && !config.range; + let edits: IdeResult> = tokio::task::spawn_blocking(move || { + let text = ide_text::Document::new(&snap.text); + let offsets = range.map(|r| (text.pos_to_offset(r.start), text.pos_to_offset(r.end))); + let mut command = tools.formatter_command(&config.tool, &snap.path, custom.as_deref())?; + command.current_dir(snap.path.parent().ok_or_else(|| IdeError::invalid("Prettier: file has no directory"))?); + command.args(formatter::arguments(&config, &snap.path, options.tab_size, options.insert_spaces, offsets)); + let formatted = formatter::run(command, &snap.text, &Default::default())?; + Ok(text + .diff(&formatted) + .changes + .into_iter() + .map(|c| TextEdit { + range: Range::new(text.offset_to_pos(c.from), text.offset_to_pos(c.to)), + new_text: c.insert, + }) + .collect()) + }) + .await + .map_err(|e| IdeError::internal(e.to_string()))?; + if edits.is_ok() && whole_selection { + project.sink.emit(IdeEvent::Notify { + level: NotifyLevel::Info, + title: "Prettier".into(), + body: Some( + "Prettier does not support selection formatting for this language; formatted the whole file".into(), + ), + }); + } + edits.map_err(|e| e.with_tool("prettier")) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn language_enablement_and_preference_preserve_lsp_formatters() { + let languages = ide_language::LanguageRegistry::load(None).unwrap(); + let mut settings = PrettierSettings::default(); + for lang in languages.all() { + for lsp in [false, true] { + let configured = lang.formatter.as_ref().is_some_and(|f| f.tool == "prettier"); + assert_eq!( + external_selected(lang.formatter.as_ref(), lang.id.as_str(), &settings, lsp), + configured && !lsp, + "{}", + lang.id + ); + } + } + let ts = languages.get(&ide_core::LanguageId::new("typescript")).unwrap(); + settings.prefer = true; + assert!(external_selected(ts.formatter.as_ref(), "typescript", &settings, true)); + settings.languages.clear(); + assert!(!external_selected(ts.formatter.as_ref(), "typescript", &settings, false)); + assert!(!external_selected(None, "rust", &settings, false)); + } +} diff --git a/crates/ide-host/src/lib.rs b/crates/ide-host/src/lib.rs index 0d310d471..5937b9725 100644 --- a/crates/ide-host/src/lib.rs +++ b/crates/ide-host/src/lib.rs @@ -4,6 +4,7 @@ //! runs one on a remote machine and serves it over JSON-RPC ([`rpc`]). pub mod environment; +mod formatter; mod java_runtime; mod kotlin_bridge; pub mod notebook; diff --git a/crates/ide-host/src/ops/lsp.rs b/crates/ide-host/src/ops/lsp.rs index f729f7989..b57f54efd 100644 --- a/crates/ide-host/src/ops/lsp.rs +++ b/crates/ide-host/src/ops/lsp.rs @@ -214,7 +214,7 @@ pub async fn lsp_format( range: Option, options: FormatOptions, ) -> IdeResult> { - host.project(window)?.lsp.format(doc, range, options).await + crate::formatter::format(host, window, doc, range, options).await } pub async fn lsp_inlay_hints(host: &Host, window: &str, doc: DocId, range: Range) -> IdeResult> { diff --git a/crates/ide-language/src/lib.rs b/crates/ide-language/src/lib.rs index fc935338f..a42587cc8 100644 --- a/crates/ide-language/src/lib.rs +++ b/crates/ide-language/src/lib.rs @@ -53,6 +53,19 @@ pub struct LanguageConfig { pub language_servers: Vec, #[serde(default)] pub debugger: Option, + /// External formatter used when no language server can format, or selected in settings. + #[serde(default)] + pub formatter: Option, +} + +/// An external formatting tool and its language-specific parser. +#[derive(Clone, Debug, Serialize, Deserialize)] +#[serde(rename_all = "kebab-case")] +pub struct FormatterConfig { + pub tool: String, + pub parser: String, + #[serde(default)] + pub range: bool, } /// A CodeMirror mode for the files of a framework's projects. diff --git a/crates/ide-lsp/src/lib.rs b/crates/ide-lsp/src/lib.rs index 7091c69a3..521451845 100644 --- a/crates/ide-lsp/src/lib.rs +++ b/crates/ide-lsp/src/lib.rs @@ -1886,6 +1886,12 @@ impl LspManager { } } + /// Checks initialized capabilities, including dynamic registrations, before choosing a formatter. + pub async fn can_format(&self, doc: DocId) -> IdeResult { + let snap = self.snapshot(doc)?; + Ok(!self.ready_targets(&snap.servers, |c| c.has("documentFormattingProvider")).await.is_empty()) + } + pub async fn format(&self, doc: DocId, range: Option, options: FormatOptions) -> IdeResult> { let (method, cap, feature) = match range { None => ("textDocument/formatting", "documentFormattingProvider", "formatting"), diff --git a/crates/ide-lsp/src/types.rs b/crates/ide-lsp/src/types.rs index beaee53d1..050d493d1 100644 --- a/crates/ide-lsp/src/types.rs +++ b/crates/ide-lsp/src/types.rs @@ -219,6 +219,9 @@ pub struct CodeActionQuery { pub struct FormatOptions { pub tab_size: u32, pub insert_spaces: bool, + #[serde(default)] + #[specta(optional)] + pub on_save: bool, } #[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize, Type)] diff --git a/crates/ide-lsp/tests/mock_server.rs b/crates/ide-lsp/tests/mock_server.rs index aa15d3ede..a636e5e4d 100644 --- a/crates/ide-lsp/tests/mock_server.rs +++ b/crates/ide-lsp/tests/mock_server.rs @@ -252,6 +252,7 @@ fn harness_configured( indent: None, ui_mode: None, framework_ui_modes: Vec::new(), + formatter: None, tree_sitter: None, language_servers: servers .iter() @@ -1248,12 +1249,17 @@ async fn navigation_rename_format_and_decorations() { assert!(matches!(&edit.files[0], FileEdit::Edit { edits, .. } if edits.len() == 2)); assert_eq!(s.requested("textDocument/rename")[0]["newName"], "bar"); + assert!(h.mgr.can_format(doc).await.unwrap()); s.respond("textDocument/formatting", json!([{ "range": r(0,10,0,11), "newText": "\n}" }])); - let edits = h.mgr.format(doc, None, FormatOptions { tab_size: 2, insert_spaces: true }).await.unwrap(); + let edits = + h.mgr.format(doc, None, FormatOptions { tab_size: 2, insert_spaces: true, on_save: false }).await.unwrap(); assert_eq!(edits[0].range, rng(0, 10, 0, 11)); assert_eq!(s.requested("textDocument/formatting")[0]["options"], json!({ "tabSize": 2, "insertSpaces": true })); assert!( - h.mgr.format(doc, Some(rng(0, 0, 1, 0)), FormatOptions { tab_size: 2, insert_spaces: true }).await.is_err() + h.mgr + .format(doc, Some(rng(0, 0, 1, 0)), FormatOptions { tab_size: 2, insert_spaces: true, on_save: false }) + .await + .is_err() ); s.respond("textDocument/semanticTokens/full", json!({ "data": [0, 3, 3, 0, 1, 1, 0, 3, 0, 0] })); @@ -2737,3 +2743,32 @@ async fn interactive_capability_is_scoped_to_gopls() { assert!(form.is_none()); assert!(s.requested("command/resolve").is_empty()); } + +#[tokio::test(flavor = "multi_thread")] +async fn formatting_provider_selection_tracks_dynamic_registration() { + let h = harness(&[("mock", json!({ "textDocumentSync": 1, "documentRangeFormattingProvider": true }))]); + let (doc, _) = h.open("a.mk", "hello\n"); + h.wait_status("mock", ServerStatus::Ready).await; + assert!(!h.mgr.can_format(doc).await.unwrap(), "a range provider alone cannot format the whole document"); + let peer = h.launcher.state("mock").peer(); + peer.request::<_, Value>( + "client/registerCapability", + json!({"registrations": [ + {"id": "formatter", "method": "textDocument/formatting"} + ]}), + None, + ) + .await + .unwrap(); + assert!(h.mgr.can_format(doc).await.unwrap()); + peer.request::<_, Value>( + "client/unregisterCapability", + json!({"unregisterations": [ + {"id": "formatter", "method": "textDocument/formatting"} + ]}), + None, + ) + .await + .unwrap(); + assert!(!h.mgr.can_format(doc).await.unwrap()); +} diff --git a/crates/ide-lsp/tests/real_servers.rs b/crates/ide-lsp/tests/real_servers.rs index 13ab9667f..43c250a20 100644 --- a/crates/ide-lsp/tests/real_servers.rs +++ b/crates/ide-lsp/tests/real_servers.rs @@ -55,6 +55,7 @@ fn lang(id: &str, ext: &str, server: LanguageServerConfig) -> LanguageConfig { indent: None, ui_mode: None, framework_ui_modes: Vec::new(), + formatter: None, tree_sitter: None, language_servers: vec![server], debugger: None, diff --git a/crates/ide-tools/src/formatter.rs b/crates/ide-tools/src/formatter.rs new file mode 100644 index 000000000..9b599f0bb --- /dev/null +++ b/crates/ide-tools/src/formatter.rs @@ -0,0 +1,174 @@ +//! External formatting: resolve a tool, pass unsaved text on stdin, return text without writing files. + +use crate::Tools; +use ide_core::{CancellationToken, IdeError, IdeResult}; +use ide_language::FormatterConfig; +use std::ffi::OsString; +use std::path::{Path, PathBuf}; +use std::process::Command; +use std::time::Duration; + +/// Walk from the file's directory upward, including workspace parents (monorepos). +pub fn find_up(file: &Path, relative: &Path) -> Option { + file.parent()?.ancestors().map(|dir| dir.join(relative)).find(|p| p.is_file()) +} + +fn package_bin(package: &Path) -> IdeResult { + let json: serde_json::Value = serde_json::from_slice(&std::fs::read(package.join("package.json"))?) + .map_err(|e| IdeError::invalid(format!("Prettier: {e}")))?; + let bin = json["bin"] + .as_str() + .or_else(|| json["bin"]["prettier"].as_str()) + .ok_or_else(|| IdeError::invalid("Prettier: package has no CLI entry point"))?; + let path = package.join(bin); + if !path.is_file() { + return Err(IdeError::unavailable(format!("Prettier: CLI does not exist: {}", path.display()))); + } + Ok(path) +} + +impl Tools { + /// Explicit executable/script, then the nearest project package, then managed tools and PATH. + pub fn formatter_command(&self, tool: &str, file: &Path, custom: Option<&Path>) -> IdeResult { + self.resolve_formatter_command(tool, file, custom).map_err(|e| e.with_tool(tool)) + } + + fn resolve_formatter_command(&self, tool: &str, file: &Path, custom: Option<&Path>) -> IdeResult { + if tool != "prettier" { + return Err(IdeError::unavailable(format!("Unknown external formatter: {tool}"))); + } + let (path, node) = if let Some(custom) = custom.filter(|p| p.is_dir()) { + (package_bin(custom)?, true) + } else if let Some(custom) = custom { + (custom.to_path_buf(), matches!(custom.extension().and_then(|s| s.to_str()), Some("js" | "cjs" | "mjs"))) + } else if let Some(manifest) = find_up(file, Path::new("node_modules/prettier/package.json")) { + (package_bin(manifest.parent().unwrap())?, true) + } else if self.root.join("node_modules/prettier/package.json").is_file() { + (package_bin(&self.root.join("node_modules/prettier"))?, true) + } else { + (self.which("prettier").ok_or_else(|| IdeError::missing_tool("prettier"))?, false) + }; + if node { + let node = self.which("node").ok_or_else(|| IdeError::unavailable("Prettier: Node.js is required"))?; + let mut cmd = self.command(node); + cmd.arg(path); + Ok(cmd) + } else { + Ok(self.command(path)) + } + } +} + +/// Project configuration overrides these defaults; Prettier resolves config and plugins itself. +pub fn arguments( + config: &FormatterConfig, + file: &Path, + tab_size: u32, + insert_spaces: bool, + range: Option<(u32, u32)>, +) -> Vec { + let parser = if config.parser == "markdown" && file.extension().is_some_and(|s| s == "mdx") { + "mdx" + } else { + &config.parser + }; + let mut args: Vec = [ + "--parser", + parser, + "--config-precedence", + "file-override", + "--tab-width", + &tab_size.max(1).to_string(), + "--use-tabs", + if insert_spaces { "false" } else { "true" }, + ] + .into_iter() + .map(Into::into) + .collect(); + args.extend(["--stdin-filepath".into(), file.as_os_str().to_owned()]); + if config.range + && let Some((start, end)) = range + { + args.extend(["--range-start".into(), start.to_string().into(), "--range-end".into(), end.to_string().into()]); + } + // CLI defaults only find ignores in cwd; explicitly pass the nearest ancestor's files. + for name in [".prettierignore", ".gitignore"] { + if let Some(path) = find_up(file, Path::new(name)) { + args.extend(["--ignore-path".into(), path.into_os_string()]); + } + } + args +} + +pub fn run(mut command: Command, text: &str, cancel: &CancellationToken) -> IdeResult { + crate::process::run_input(&mut command, text, Duration::from_secs(15), cancel).map_err(|e| e.with_tool("prettier")) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn missing_formatter_is_structured_but_invalid_custom_path_is_not_an_install_prompt() { + use ide_core::error::{ErrorData, ErrorKind}; + let dir = tempfile::tempdir().unwrap(); + let tools = Tools::with_paths(dir.path().join("tools"), OsString::new(), crate::platform::Platform::current()); + let file = dir.path().join("file.md"); + let missing = tools.formatter_command("prettier", &file, None).unwrap_err(); + assert_eq!(missing.kind, ErrorKind::NotFound); + assert_eq!(missing.data, Some(ErrorData::Tool { tool: "prettier".into(), missing: true })); + let custom = tools.formatter_command("prettier", &file, Some(&dir.path().join("absent-prettier"))).unwrap(); + let failure = run(custom, "text", &Default::default()).unwrap_err(); + assert_eq!(failure.data, Some(ErrorData::Tool { tool: "prettier".into(), missing: false })); + } + + #[cfg(unix)] + #[test] + fn stderr_is_preserved_verbatim_even_when_longer_than_four_thousand_characters() { + let mut command = Command::new("sh"); + command.args(["-c", "i=0; while [ $i -lt 1000 ]; do printf 'error\\n' >&2; i=$((i+1)); done; exit 1"]); + let failure = run(command, "", &Default::default()).unwrap_err(); + assert_eq!(failure.message, "error\n".repeat(1000)); + assert_eq!(failure.data, Some(ide_core::error::ErrorData::Tool { tool: "prettier".into(), missing: false })); + } + + #[test] + fn discovers_nearest_package_and_ignore_above_nested_file() { + let dir = tempfile::tempdir().unwrap(); + let root = dir.path(); + std::fs::create_dir_all(root.join("packages/web/src")).unwrap(); + std::fs::write(root.join(".prettierignore"), "ignored.md").unwrap(); + std::fs::create_dir_all(root.join("node_modules/prettier")).unwrap(); + std::fs::write(root.join("node_modules/prettier/package.json"), "{}").unwrap(); + let file = root.join("packages/web/src/readme.md"); + assert_eq!(find_up(&file, Path::new(".prettierignore")), Some(root.join(".prettierignore"))); + std::fs::write(root.join("packages/web/.prettierignore"), "src/ignored.md").unwrap(); + assert_eq!(find_up(&file, Path::new(".prettierignore")), Some(root.join("packages/web/.prettierignore"))); + assert_eq!( + find_up(&file, Path::new("node_modules/prettier/package.json")), + Some(root.join("node_modules/prettier/package.json")) + ); + } + + #[test] + fn arguments_use_stdin_config_precedence_and_only_supported_ranges() { + for (parser, supports_range) in [ + ("markdown", false), + ("css", false), + ("yaml", false), + ("typescript", true), + ("graphql", true), + ("vue", true), + ] { + let config = FormatterConfig { tool: "prettier".into(), parser: parser.into(), range: supports_range }; + let args = arguments(&config, Path::new("/project with spaces/file.md"), 4, false, Some((3, 9))); + let args: Vec<_> = args.iter().map(|a| a.to_string_lossy()).collect(); + assert!(args.windows(2).any(|a| a == ["--config-precedence", "file-override"])); + assert!(args.windows(2).any(|a| a == ["--stdin-filepath", "/project with spaces/file.md"])); + assert!(args.windows(2).any(|a| a == ["--tab-width", "4"])); + assert!(args.windows(2).any(|a| a == ["--use-tabs", "true"])); + assert_eq!(args.contains(&"--range-start".into()), supports_range); + assert!(!args.contains(&"--write".into())); + } + } +} diff --git a/crates/ide-tools/src/lib.rs b/crates/ide-tools/src/lib.rs index 51272bf6c..1822367fe 100644 --- a/crates/ide-tools/src/lib.rs +++ b/crates/ide-tools/src/lib.rs @@ -11,6 +11,7 @@ pub mod archive; mod bundled; +pub mod formatter; pub mod jdk; pub mod platform; mod process; @@ -323,6 +324,9 @@ fn usages(langs: &[LanguageConfig]) -> BTreeMap { } }; for l in langs { + if let Some(f) = &l.formatter { + add(&f.tool, &f.tool, ToolKind::Formatter, None, &l.name); + } for s in &l.language_servers { add(&s.name, &s.command, ToolKind::LanguageServer, s.install_hint.as_ref(), &l.name); } diff --git a/crates/ide-tools/src/process.rs b/crates/ide-tools/src/process.rs index cd3e15788..fad1f755d 100644 --- a/crates/ide-tools/src/process.rs +++ b/crates/ide-tools/src/process.rs @@ -464,3 +464,120 @@ mod tests { assert_eq!(run_quiet(cmd, Duration::from_secs(5)), Some((true, "v1.2.3\n".into()))); } } + +/// Runs a formatter with separate pipes so diagnostics can never become document text. +pub(crate) fn run_input( + cmd: &mut Command, + input: &str, + timeout: Duration, + cancel: &CancellationToken, +) -> IdeResult { + use std::io::Write; + if cancel.is_cancelled() { + return Err(IdeError::cancelled()); + } + let mut child = own_group(cmd).stdin(Stdio::piped()).stdout(Stdio::piped()).stderr(Stdio::piped()).spawn()?; + let mut stdin = child.stdin.take().unwrap(); + let input = input.to_owned(); + // All pipes drain concurrently, including stdin: large documents cannot deadlock or bypass the timeout. + enum Pipe { + Written(std::io::Result<()>), + Read(bool, std::io::Result>), + } + let (tx, rx) = mpsc::channel(); + let writer = tx.clone(); + std::thread::spawn(move || { + let _ = writer.send(Pipe::Written(stdin.write_all(input.as_bytes()))); + }); + for (is_stderr, mut pipe) in [ + (false, Box::new(child.stdout.take().unwrap()) as Box), + (true, Box::new(child.stderr.take().unwrap()) as Box), + ] { + let tx = tx.clone(); + std::thread::spawn(move || { + let mut bytes = Vec::new(); + let _ = tx.send(Pipe::Read(is_stderr, pipe.read_to_end(&mut bytes).map(|_| bytes))); + }); + } + drop(tx); + let started = Instant::now(); + let (mut status, mut output, mut errors, mut written) = (None, None, None, None); + let result = loop { + if cancel.is_cancelled() { + break Err(IdeError::cancelled()); + } + if started.elapsed() >= timeout { + break Err(IdeError::new(ErrorKind::TimedOut, "Formatting timed out")); + } + if status.is_none() { + match child.try_wait() { + Ok(s) => status = s, + Err(e) => break Err(e.into()), + } + } + if status.is_some() && output.is_some() && errors.is_some() && written.is_some() { + break Ok(()); + } + match rx.recv_timeout(Duration::from_millis(10)) { + Ok(Pipe::Written(result)) => written = Some(result), + Ok(Pipe::Read(true, result)) => errors = Some(result), + Ok(Pipe::Read(false, result)) => output = Some(result), + Err(mpsc::RecvTimeoutError::Disconnected) if output.is_some() && errors.is_some() && written.is_some() => { + std::thread::sleep(Duration::from_millis(10)); + } + Err(mpsc::RecvTimeoutError::Disconnected) => break Err(IdeError::internal("formatter pipe reader failed")), + Err(mpsc::RecvTimeoutError::Timeout) => {} + } + }; + if result.is_err() { + kill(&mut child); + } + result?; + let output = output.unwrap()?; + let errors = errors.unwrap()?; + let status = status.unwrap(); + if !status.success() { + let diagnostics: String = String::from_utf8_lossy(&errors).into_owned(); + return Err(IdeError::invalid(if diagnostics.trim().is_empty() { + format!("Formatter exited with {status}") + } else { + diagnostics + })); + } + written.unwrap()?; + String::from_utf8(output).map_err(|e| IdeError::invalid(e.to_string())) +} + +#[cfg(all(test, unix))] +mod input_tests { + use super::*; + + #[test] + fn separate_diagnostics_and_never_return_failed_output() { + let mut command = Command::new("sh"); + command.args(["-c", "cat; printf warning >&2"]); + assert_eq!(run_input(&mut command, "a😀\n", Duration::from_secs(2), &Default::default()).unwrap(), "a😀\n"); + let mut command = Command::new("sh"); + command.args(["-c", "printf broken; printf 'invalid syntax' >&2; exit 1"]); + let e = run_input(&mut command, "", Duration::from_secs(2), &Default::default()).unwrap_err(); + assert_eq!(e.message, "invalid syntax"); + } + + #[test] + fn timeout_kills_formatter_and_cancellation_prevents_start() { + let mut command = Command::new("sh"); + command.args(["-c", "sleep 10 &"]); + let start = Instant::now(); + assert_eq!( + run_input(&mut command, "", Duration::from_millis(50), &Default::default()).unwrap_err().kind, + ErrorKind::TimedOut + ); + assert!(start.elapsed() < Duration::from_secs(2)); + let cancel = CancellationToken::new(); + cancel.cancel(); + assert_eq!( + run_input(&mut Command::new("does-not-exist"), "", Duration::from_secs(2), &cancel).unwrap_err().kind, + ErrorKind::Cancelled + ); + } +} diff --git a/crates/ide-tools/src/registry.rs b/crates/ide-tools/src/registry.rs index d23f6db3b..5c05cbe75 100644 --- a/crates/ide-tools/src/registry.rs +++ b/crates/ide-tools/src/registry.rs @@ -12,6 +12,7 @@ pub enum ToolKind { Debugger, /// Loaded into another tool's process, e.g. a jdtls agent. Plugin, + Formatter, } /// Where release archives come from. @@ -105,7 +106,7 @@ impl ToolSpec { use Arch::{Arm64, X64}; use Os::{Linux, Mac, Windows}; -use ToolKind::{Debugger, LanguageServer, Plugin}; +use ToolKind::{Debugger, Formatter, LanguageServer, Plugin}; const V: Option<(&str, &[&str])> = None; const JAVA: &[(&str, &str)] = &[("java", "Java is required (https://adoptium.net)")]; @@ -122,6 +123,17 @@ const fn ver(cmd: &'static str) -> Option<(&'static str, &'static [&'static str] pub const TYPESCRIPT: &str = "typescript@6"; pub static TOOLS: &[ToolSpec] = &[ + ToolSpec { + name: "prettier", + display: "Prettier", + kind: Formatter, + commands: &["prettier"], + method: Method::Npm { packages: &["prettier"] }, + fallback: None, + version: ver("prettier"), + needs: NODE, + homepage: "https://prettier.io", + }, ToolSpec { name: "rust-analyzer", display: "rust-analyzer", @@ -943,6 +955,11 @@ mod tests { known.insert((d.adapter.clone(), d.command.clone())); } } + for l in &langs { + if let Some(f) = &l.formatter { + known.insert((f.tool.clone(), f.tool.clone())); + } + } for t in TOOLS.iter().filter(|t| t.kind != Plugin) { assert!( known.contains(&(t.name.to_string(), t.commands[0].to_string())), diff --git a/crates/ide-tools/tests/prettier.rs b/crates/ide-tools/tests/prettier.rs new file mode 100644 index 000000000..3d622caac --- /dev/null +++ b/crates/ide-tools/tests/prettier.rs @@ -0,0 +1,91 @@ +//! `cargo test -p ide-tools --test prettier -- --ignored --nocapture` +//! Installs into a temporary managed-tools directory; no repository dependency is added. +use ide_core::CancellationToken; +use ide_language::FormatterConfig; +use ide_tools::{Tools, formatter}; +use std::path::Path; + +fn format( + tools: &Tools, + path: &Path, + parser: &str, + text: &str, + range: Option<(u32, u32)>, +) -> ide_core::IdeResult { + let config = FormatterConfig { + tool: "prettier".into(), + parser: parser.into(), + range: matches!(parser, "typescript" | "json" | "graphql"), + }; + let mut cmd = tools.formatter_command("prettier", path, None)?; + cmd.current_dir(path.parent().unwrap()); + cmd.args(formatter::arguments(&config, path, 4, true, range)); + formatter::run(cmd, text, &CancellationToken::new()) +} + +#[test] +#[ignore = "requires Node.js/npm and network; installs real Prettier into a temporary managed directory"] +fn real_prettier_config_ignore_languages_ranges_and_errors() { + if std::env::var_os("OPENIDEA_TEST_OFFLINE").is_some() { + eprintln!("SKIP real Prettier: OPENIDEA_TEST_OFFLINE is set; npm network access is disabled"); + return; + } + let temp = tempfile::tempdir().unwrap(); + let tools = Tools::new(&temp.path().join("app-data")); + let info = tools.info("prettier", &[]).unwrap(); + if !info.can_install { + eprintln!("SKIP real Prettier: {}", info.unavailable_reason.unwrap_or_default()); + return; + } + tools.install("prettier", &[], &Default::default(), &|_| {}).expect( + "Prettier managed install failed; offline environments may set OPENIDEA_TEST_OFFLINE=1 (reported as SKIP)", + ); + let project = temp.path().join("project with spaces"); + std::fs::create_dir_all(project.join("docs/nested")).unwrap(); + let md = project.join("docs/nested/readme.md"); + let input = "# Title\ntext\n\n| a | b |\n|---|---|\n|1|2|\n\n- a\n - b\n"; + let output = format(&tools, &md, "markdown", input, None).unwrap(); + assert!(output.starts_with("# Title\n\ntext\n"), "{output}"); + assert!(output.contains("| 1 | 2 |"), "{output}"); + assert!(!md.exists(), "formatting must never write the file"); + std::fs::write(project.join(".prettierrc"), r#"{"proseWrap":"always","printWidth":24,"tabWidth":2}"#).unwrap(); + let prose = + "This is a long paragraph with several words that should wrap according to the project configuration.\n"; + assert!(format(&tools, &md, "markdown", prose, None).unwrap().lines().count() > 2); + std::fs::write(project.join(".prettierignore"), "docs/nested/readme.md\n").unwrap(); + assert_eq!(format(&tools, &md, "markdown", input, None).unwrap(), input); + std::fs::remove_file(project.join(".prettierignore")).unwrap(); + std::fs::remove_file(project.join(".prettierrc")).unwrap(); + assert_eq!( + format(&tools, &project.join("a.css"), "css", "a{color:red}", None).unwrap(), + "a {\n color: red;\n}\n" + ); + std::fs::write(project.join("package.json"), r#"{"prettier":{"tabWidth":3,"proseWrap":"never"}}"#).unwrap(); + assert_eq!( + format(&tools, &project.join("a.css"), "css", "a{color:red}", None).unwrap(), + "a {\n color: red;\n}\n" + ); + assert_eq!(format(&tools, &project.join("a.yaml"), "yaml", "a: [1,2]\n", None).unwrap(), "a: [1, 2]\n"); + let js = "const a={x:1};\nconst b={y:2};\n"; + let formatted = format(&tools, &project.join("a.ts"), "typescript", js, Some((0, 14))).unwrap(); + assert!(formatted.starts_with("const a = { x: 1 };"), "{formatted}"); + assert!(formatted.contains("const b={y:2};"), "{formatted}"); + assert!(format(&tools, &project.join("bad.css"), "css", "a {", None).is_err()); + // Nearest project version must win over the managed install, including npm's object-style bin. + let package = project.join("node_modules/prettier"); + std::fs::create_dir_all(&package).unwrap(); + std::fs::write(package.join("package.json"), r#"{"bin":{"prettier":"cli.cjs"}}"#).unwrap(); + std::fs::write( + package.join("cli.cjs"), + "process.stdin.resume(); process.stdin.on('end', () => process.stdout.write('project version\\n')); ", + ) + .unwrap(); + assert_eq!(format(&tools, &md, "markdown", input, None).unwrap(), "project version\n"); + std::fs::write(package.join("cli.cjs"), "setInterval(() => {}, 1000)").unwrap(); + let start = std::time::Instant::now(); + assert!(format(&tools, &md, "markdown", input, None).unwrap_err().message.contains("timed out")); + assert!(start.elapsed() < std::time::Duration::from_secs(20)); + eprintln!( + "PASS: real managed Prettier, config/ignore discovery, editor defaults, YAML/CSS/Markdown, ranges, errors, project precedence, timeout; no disk writes" + ); +} diff --git a/languages/css.toml b/languages/css.toml index 81379d5b8..4f8ba1e11 100644 --- a/languages/css.toml +++ b/languages/css.toml @@ -1,5 +1,6 @@ id = "css" name = "CSS" +formatter = { tool = "prettier", parser = "css", range = false } extensions = ["css", "pcss", "postcss"] block-comment = ["/*", "*/"] indent = { tab-size = 2, insert-spaces = true } diff --git a/languages/graphql.toml b/languages/graphql.toml index d3a7a9263..a26bb6acd 100644 --- a/languages/graphql.toml +++ b/languages/graphql.toml @@ -1,5 +1,6 @@ id = "graphql" name = "GraphQL" +formatter = { tool = "prettier", parser = "graphql", range = true } extensions = ["graphql", "graphqls", "gql"] line-comment = "#" indent = { tab-size = 2, insert-spaces = true } diff --git a/languages/html.toml b/languages/html.toml index 9da5321dd..908771a2d 100644 --- a/languages/html.toml +++ b/languages/html.toml @@ -1,5 +1,6 @@ id = "html" name = "HTML" +formatter = { tool = "prettier", parser = "html", range = false } extensions = ["html", "htm", "xhtml", "shtml", "html.tmpl"] first-line = "^\\s*"] diff --git a/languages/javascript.toml b/languages/javascript.toml index edbd83d89..b5676537e 100644 --- a/languages/javascript.toml +++ b/languages/javascript.toml @@ -1,5 +1,6 @@ id = "javascript" name = "JavaScript" +formatter = { tool = "prettier", parser = "babel", range = true } extensions = ["js", "mjs", "cjs"] first-line = "^#!.*\\b(node|nodejs|deno|bun)\\b" line-comment = "//" diff --git a/languages/javascriptreact.toml b/languages/javascriptreact.toml index f2864cdf3..3c5a17760 100644 --- a/languages/javascriptreact.toml +++ b/languages/javascriptreact.toml @@ -1,5 +1,6 @@ id = "javascriptreact" name = "JavaScript JSX" +formatter = { tool = "prettier", parser = "babel", range = true } extensions = ["jsx"] line-comment = "//" block-comment = ["/*", "*/"] diff --git a/languages/json.toml b/languages/json.toml index bad607263..f7010dffa 100644 --- a/languages/json.toml +++ b/languages/json.toml @@ -1,5 +1,6 @@ id = "json" name = "JSON" +formatter = { tool = "prettier", parser = "json", range = true } extensions = ["json", "geojson", "topojson", "webmanifest", "har", "avsc", "jsonl", "ndjson", "json.map"] filenames = [".prettierrc", ".watchmanconfig", "composer.lock", ".arcconfig"] indent = { tab-size = 2, insert-spaces = true } diff --git a/languages/jsonc.toml b/languages/jsonc.toml index 272f5c956..d90e5a655 100644 --- a/languages/jsonc.toml +++ b/languages/jsonc.toml @@ -1,5 +1,6 @@ id = "jsonc" name = "JSON with Comments" +formatter = { tool = "prettier", parser = "jsonc", range = true } extensions = ["jsonc", "code-workspace", "code-snippets"] filenames = ["tsconfig.json", "jsconfig.json", "tsconfig.*.json", "jsconfig.*.json", ".eslintrc", ".eslintrc.json", ".jshintrc", ".babelrc", ".swcrc", "devcontainer.json", ".devcontainer.json", "launch.json", "tasks.json", "settings.json", "extensions.json", "keybindings.json", "tslint.json", "api-extractor.json", "typedoc.json", "deno.json", "biome.json", "turbo.json", "language-configuration.json"] line-comment = "//" diff --git a/languages/less.toml b/languages/less.toml index 227590f9f..cfc834ee8 100644 --- a/languages/less.toml +++ b/languages/less.toml @@ -1,5 +1,6 @@ id = "less" name = "Less" +formatter = { tool = "prettier", parser = "less", range = false } extensions = ["less"] line-comment = "//" block-comment = ["/*", "*/"] diff --git a/languages/markdown.toml b/languages/markdown.toml index 9fec38354..675ac34f3 100644 --- a/languages/markdown.toml +++ b/languages/markdown.toml @@ -1,5 +1,6 @@ id = "markdown" name = "Markdown" +formatter = { tool = "prettier", parser = "markdown", range = false } extensions = ["md", "markdown", "mdown", "mkd", "mkdn", "mdwn", "mdx", "ronn", "workbook"] block-comment = [""] indent = { tab-size = 2, insert-spaces = true } diff --git a/languages/scss.toml b/languages/scss.toml index 1fd1d0d5a..dcdaadd4c 100644 --- a/languages/scss.toml +++ b/languages/scss.toml @@ -1,5 +1,6 @@ id = "scss" name = "SCSS" +formatter = { tool = "prettier", parser = "scss", range = false } extensions = ["scss"] line-comment = "//" block-comment = ["/*", "*/"] diff --git a/languages/typescript.toml b/languages/typescript.toml index e5f231bc5..41817c5c3 100644 --- a/languages/typescript.toml +++ b/languages/typescript.toml @@ -1,5 +1,6 @@ id = "typescript" name = "TypeScript" +formatter = { tool = "prettier", parser = "typescript", range = true } extensions = ["ts", "mts", "cts"] line-comment = "//" block-comment = ["/*", "*/"] diff --git a/languages/typescriptreact.toml b/languages/typescriptreact.toml index 0a5069c7a..ad238c6c9 100644 --- a/languages/typescriptreact.toml +++ b/languages/typescriptreact.toml @@ -1,5 +1,6 @@ id = "typescriptreact" name = "TypeScript JSX" +formatter = { tool = "prettier", parser = "typescript", range = true } extensions = ["tsx"] line-comment = "//" block-comment = ["/*", "*/"] diff --git a/languages/vue.toml b/languages/vue.toml index a7cdade09..e260bce72 100644 --- a/languages/vue.toml +++ b/languages/vue.toml @@ -1,5 +1,6 @@ id = "vue" name = "Vue" +formatter = { tool = "prettier", parser = "vue", range = true } extensions = ["vue"] block-comment = [""] indent = { tab-size = 2, insert-spaces = true } diff --git a/languages/yaml.toml b/languages/yaml.toml index 76d550671..17e64e1b2 100644 --- a/languages/yaml.toml +++ b/languages/yaml.toml @@ -1,5 +1,6 @@ id = "yaml" name = "YAML" +formatter = { tool = "prettier", parser = "yaml", range = false } extensions = ["yaml", "yml"] filenames = [".clang-format", ".clang-tidy", ".clangd", ".gemrc", "pnpm-lock.yaml", "CITATION.cff"] first-line = "^%YAML" diff --git a/src/bindings.ts b/src/bindings.ts index 5c4e5a3bf..c3d5811cd 100644 --- a/src/bindings.ts +++ b/src/bindings.ts @@ -2975,9 +2975,11 @@ export type EnvReloaded = { shellRead: boolean, }; +export type ErrorData = { type: "tool"; tool: string; missing: boolean }; + export type ErrorKind = "notFound" | "alreadyExists" | "permissionDenied" | "invalidInput" | /** Document version mismatch; the UI must resync the full text. */ -"outOfSync" | "cancelled" | +"outOfSync" | "cancelled" | "timedOut" | /** A required external tool (language server, git, debugger) is unavailable. */ "unavailable" | "io" | "protocol" | "internal"; @@ -3207,6 +3209,7 @@ export type FormField = { export type FormatOptions = { tabSize: number, insertSpaces: boolean, + onSave?: boolean, }; /** One occurrence of a duplicated code fragment. */ @@ -3543,6 +3546,8 @@ export type HunkRange = { export type IdeError = { kind: ErrorKind, message: string, + /** Structured detail for errors the UI acts on; `null` for plain errors. */ + data?: ErrorData | null, }; export type IdeEvent = @@ -4028,6 +4033,7 @@ export type LanguagesSettings = { rust?: RustSettings, go?: GoSettings, typescript?: TypeScriptSettings, + prettier?: PrettierSettings, java?: JavaSettings, }; @@ -4771,6 +4777,15 @@ export type PreparedRequest = { body: string | null, }; +export type PrettierSettings = { + /** Empty path: project node_modules, managed installation, then PATH. */ + path?: string, + languages?: string[], + /** Prefer Prettier even when a language server offers formatting. */ + prefer?: boolean, + runOnSave?: boolean, +}; + /** Memory of one row of the breakdown. */ export type ProcessMemory = { category: MemoryCategory, @@ -6186,7 +6201,7 @@ export type ToolInfo = { export type ToolKind = "languageServer" | "debugger" | /** Loaded into another tool's process, e.g. a jdtls agent. */ -"plugin"; +"plugin" | "formatter"; export type ToolSettings = { /** Executable to launch instead of the managed / `PATH` one; empty = auto-detect. */ diff --git a/src/editor/lsp/actions.ts b/src/editor/lsp/actions.ts index 44ca77656..f774f6779 100644 --- a/src/editor/lsp/actions.ts +++ b/src/editor/lsp/actions.ts @@ -5,6 +5,7 @@ import { executeAction, registerActions, type Action } from "@/platform/actions" import { activeEditor, editorsFor, registerSaveParticipant, type TextEditorHandle } from "@/editor/api"; import { maybeEditorService } from "@/workbench/contributions"; import { useProject } from "@/platform/project"; +import { validateLanguages } from "@/platform/languageSettings"; import { explicitCompletion } from "./completion"; import { triggerSignatureHelp } from "./signature"; import { quickDefinition, quickDocumentation } from "./hover"; @@ -122,8 +123,15 @@ export function registerFormatOnSave(): () => void { id: "lsp.formatOnSave", order: 50, beforeSave: async (ctx, handle) => { - if (!handle || ctx.readOnly || !useProject.getState().settings?.editor?.formatOnSave) return; - await formatDocument(handle.view, { explicit: false, selectionOnly: false }); + const settings = useProject.getState().settings; + const prettier = validateLanguages(settings?.languages).prettier; + if ( + !handle || + ctx.readOnly || + (!settings?.editor?.formatOnSave && !(prettier.runOnSave && prettier.languages.includes(ctx.language))) + ) + return; + await formatDocument(handle.view, { explicit: false, selectionOnly: false, onSave: true }); }, }); } diff --git a/src/editor/lsp/format.module.css b/src/editor/lsp/format.module.css new file mode 100644 index 000000000..54460af1f --- /dev/null +++ b/src/editor/lsp/format.module.css @@ -0,0 +1,3 @@ +.diagnostics { + white-space: pre-wrap; +} diff --git a/src/editor/lsp/format.test.ts b/src/editor/lsp/format.test.ts index 75c31b429..8f21dd7c7 100644 --- a/src/editor/lsp/format.test.ts +++ b/src/editor/lsp/format.test.ts @@ -1,5 +1,9 @@ -import { describe, expect, it } from "vitest"; -import { Text } from "@codemirror/state"; +import { describe, expect, it, vi } from "vitest"; +import { EditorState, Text } from "@codemirror/state"; +import { EditorView } from "@codemirror/view"; +import { CONTRIBUTED_FORMAT } from "@/editor/api"; +import { useProject } from "@/platform/project"; +import type { Settings } from "@/bindings"; import { formatExcluded, guardFormatChanges, @@ -7,7 +11,7 @@ import { protectedRegions, type FormatGuardOptions, } from "@/platform/formatGuard"; -import { dedentsToColumnZero, formattedLines } from "./format"; +import { dedentsToColumnZero, formatDocument, formattedLines } from "./format"; describe("formattedLines", () => { const doc = Text.of(["fn main(){", "let x=1;", "}", "", "fn other() {}"]); @@ -105,3 +109,28 @@ describe("dedentsToColumnZero", () => { expect(dedentsToColumnZero("fun f() {}\n", "fun f() { }\n")).toBe(false); }); }); + +describe("format on save provider isolation", () => { + it("does not enable contributed formatters when only Prettier save is enabled", async () => { + const previous = useProject.getState(); + const formatter = vi.fn(() => [{ from: 0, to: 6, insert: "SELECT" }]); + const view = new EditorView({ + state: EditorState.create({ + doc: "select", + extensions: [EditorState.languageData.of(() => [{ [CONTRIBUTED_FORMAT]: formatter }])], + }), + }); + try { + const settings = { editor: { formatOnSave: false }, languages: { prettier: { runOnSave: true } } } as Settings; + useProject.setState({ settings }); + expect((await formatDocument(view, { explicit: false, onSave: true })).applied).toBe(false); + expect(formatter).not.toHaveBeenCalled(); + useProject.setState({ settings: { ...settings, editor: { ...settings.editor, formatOnSave: true } } }); + expect((await formatDocument(view, { explicit: false, onSave: true })).applied).toBe(true); + expect(view.state.doc.toString()).toBe("SELECT"); + } finally { + view.destroy(); + useProject.setState(previous); + } + }); +}); diff --git a/src/editor/lsp/format.ts b/src/editor/lsp/format.ts index 1e37e1554..061e377c1 100644 --- a/src/editor/lsp/format.ts +++ b/src/editor/lsp/format.ts @@ -5,11 +5,14 @@ * reports "Formatted N lines" with a link to the Reformat File dialog * (⌥⇧⌘L: scope and Optimize Imports). */ +import { createElement } from "react"; +import styles from "./format.module.css"; import { indentUnit } from "@codemirror/language"; import { isolateHistory } from "@codemirror/commands"; import type { EditorState, Text } from "@codemirror/state"; import type { EditorView } from "@codemirror/view"; -import { commands } from "@/platform/ipc"; +import { commands, IpcError } from "@/platform/ipc"; +import { notifications } from "@/workbench/contributions"; import { shortcutLabel } from "@/platform/keymap"; import { executeAction } from "@/platform/actions"; import { @@ -78,14 +81,17 @@ export function formatOptionsOf(state: EditorState): { tabSize: number; insertSp export async function formatDocument( view: EditorView, - opts: { explicit: boolean; selectionOnly?: boolean } = { explicit: true }, + opts: { explicit: boolean; selectionOnly?: boolean; onSave?: boolean } = { explicit: true }, ): Promise { const result = await format(view, opts); if (opts.explicit && result.applied) formattedHint(view, result.lines); return result; } -async function format(view: EditorView, opts: { explicit: boolean; selectionOnly?: boolean }): Promise { +async function format( + view: EditorView, + opts: { explicit: boolean; selectionOnly?: boolean; onSave?: boolean }, +): Promise { const { project, settings } = useProject.getState(); const guard = formatGuardOptions(settings); const path = docOf(view)?.path; @@ -95,7 +101,10 @@ async function format(view: EditorView, opts: { explicit: boolean; selectionOnly return NOTHING; } const own = contributedAt(view.state, CONTRIBUTED_FORMAT, 0); - if (own) return applyContributedFormat(view, own, opts, guard); + if (own) { + if (opts.onSave && !settings?.editor?.formatOnSave) return NOTHING; + return applyContributedFormat(view, own, opts, guard); + } const doc = docOf(view); if (!doc || doc.readOnly) return NOTHING; // The server formats the backend's copy: let pending keystrokes reach it first. @@ -107,9 +116,25 @@ async function format(view: EditorView, opts: { explicit: boolean; selectionOnly const options = formatOptionsOf(state); let edits; try { - edits = await lspRequest(() => commands.lspFormat(doc.doc, range, options)); + edits = await lspRequest(() => commands.lspFormat(doc.doc, range, { ...options, onSave: opts.onSave })); } catch (e) { - reportLspError(view, e, opts.explicit); + if (e instanceof IpcError && e.data?.type === "tool" && e.data.tool === "prettier") { + if (e.kind === "notFound" && e.data.missing) { + await executeAction("tools.promptInstall", { name: "prettier", sticky: !opts.onSave }); + } else if (e.kind !== "cancelled") { + notifications().notify({ + group: "tools", + level: "error", + title: tx("Prettier formatting failed"), + body: + e.kind === "timedOut" + ? tx("Prettier formatting timed out") + : createElement("span", { className: styles.diagnostics }, e.message), + key: `prettier-format-error:${doc.path}`, + sticky: false, + }); + } + } else reportLspError(view, e, opts.explicit); return NOTHING; } if (view.state.doc !== state.doc) { @@ -179,7 +204,7 @@ export async function formatLines(view: EditorView, from: number, to: number): P function applyContributedFormat( view: EditorView, format: ContributedFormatter, - opts: { explicit: boolean; selectionOnly?: boolean }, + opts: { explicit: boolean; selectionOnly?: boolean; onSave?: boolean }, guard: FormatGuardOptions, ): FormatResult { const state = view.state; diff --git a/src/editor/lsp/formatErrors.test.tsx b/src/editor/lsp/formatErrors.test.tsx new file mode 100644 index 000000000..aa21c997f --- /dev/null +++ b/src/editor/lsp/formatErrors.test.tsx @@ -0,0 +1,124 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +import { act, render, screen } from "@testing-library/react"; +import { EditorState } from "@codemirror/state"; +import { EditorView } from "@codemirror/view"; +import type { IdeError } from "@/bindings"; +import { registerAction } from "@/platform/actions"; +import { _resetI18nForTests, setLocale } from "@/platform/i18n"; +import { IpcError } from "@/platform/ipc"; +import { useProject } from "@/platform/project"; +import { provideNotificationService } from "@/workbench/contributions"; +import { Balloons } from "@/workbench/Notifications"; +import { + balloonTimeout, + clearNotifications, + notificationServiceImpl, + useNotifications, +} from "@/workbench/notificationStore"; +import { formatDocument } from "./format"; +import * as lsp from "./lsp"; + +const tool = { type: "tool", tool: "prettier", missing: false } as const; +const views: EditorView[] = []; +const viewFor = (path = "/project/file.css") => { + const view = new EditorView({ + state: EditorState.create({ + doc: ".card {", + extensions: [lsp.lspDoc.of({ doc: 1, path, language: "css", uiMode: null, readOnly: false })], + }), + }); + views.push(view); + return view; +}; +const failWith = (error: IdeError) => vi.spyOn(lsp, "lspRequest").mockRejectedValue(new IpcError(error)); + +beforeEach(() => { + clearNotifications(); + provideNotificationService(notificationServiceImpl); +}); +afterEach(() => { + views.splice(0).forEach((view) => view.destroy()); + clearNotifications(); + vi.restoreAllMocks(); + _resetI18nForTests(); +}); + +describe("external formatter errors", () => { + it("uses structured missing-tool information to request the shared install prompt", async () => { + const prompt = vi.fn(); + const dispose = registerAction({ + id: "tools.promptInstall", + title: "Install Missing Tool", + run: ({ arg }) => prompt(arg), + }); + try { + failWith({ kind: "notFound", message: "unrelated diagnostic", data: { ...tool, missing: true } }); + await formatDocument(viewFor()); + expect(prompt).toHaveBeenCalledWith({ name: "prettier", sticky: true }); + await formatDocument(viewFor(), { explicit: false, onSave: true }); + expect(prompt).toHaveBeenLastCalledWith({ name: "prettier", sticky: false }); + expect(useNotifications.getState().items).toHaveLength(0); + } finally { + dispose(); + } + }); + + it("does not treat text alone or a broken custom executable as a missing installation", async () => { + const prompt = vi.fn(); + const dispose = registerAction({ + id: "tools.promptInstall", + title: "Install Missing Tool", + run: ({ arg }) => prompt(arg), + }); + try { + const request = failWith({ kind: "unavailable", message: "Prettier is not installed" }); + const view = viewFor(); + await formatDocument(view, { explicit: false }); + expect(useNotifications.getState().items).toHaveLength(0); + request.mockRejectedValue(new IpcError({ kind: "notFound", message: "custom executable missing", data: tool })); + await formatDocument(view); + expect(prompt).not.toHaveBeenCalled(); + expect(useNotifications.getState().items).toHaveLength(1); + } finally { + dispose(); + } + }); + + it("keeps stderr untranslated in a Chinese notification and replaces failures per file, including on save", async () => { + await setLocale("zh"); + const previous = useProject.getState().settings; + useProject.setState({ settings: null }); + try { + const stderr = "Formatting timed out"; + failWith({ kind: "invalidInput", message: stderr, data: tool }); + const view = viewFor(); + for (let i = 0; i < 3; i++) await formatDocument(view, { explicit: false, onSave: true }); + const notes = useNotifications.getState().items; + expect(notes).toHaveLength(1); + expect(notes[0]).toMatchObject({ sticky: false, title: "Prettier 格式化失败" }); + expect(balloonTimeout(notes[0]!)).toBe(10000); + render(); + expect(screen.getByRole("alert")).toHaveTextContent(stderr); + expect(screen.queryByText("格式化超时")).toBeNull(); + expect(view.state.doc.toString()).toBe(".card {"); + await act(async () => { + await formatDocument(viewFor("/project/other.css")); + }); + expect(useNotifications.getState().items).toHaveLength(2); + } finally { + useProject.setState({ settings: previous }); + } + }); + + it("localizes the timeout explanation by kind and ignores cancellation", async () => { + await setLocale("zh"); + const request = failWith({ kind: "timedOut", message: "arbitrary backend text", data: tool }); + const view = viewFor(); + await formatDocument(view); + expect(useNotifications.getState().items[0]).toMatchObject({ body: "Prettier 格式化超时", sticky: false }); + clearNotifications(); + request.mockRejectedValue(new IpcError({ kind: "cancelled", message: "cancelled", data: tool })); + await formatDocument(view); + expect(useNotifications.getState().items).toHaveLength(0); + }); +}); diff --git a/src/features/settings/__tests__/languages.test.ts b/src/features/settings/__tests__/languages.test.ts index 0fd9ac555..5864b0586 100644 --- a/src/features/settings/__tests__/languages.test.ts +++ b/src/features/settings/__tests__/languages.test.ts @@ -35,6 +35,16 @@ describe("languages settings", () => { expect(validateSettings({}).languages).toEqual(DEFAULT_LANGUAGES); }); + it("keeps Prettier opt-in on save and normalizes its enabled languages", () => { + expect(validateLanguages({}).prettier).toMatchObject({ prefer: false, runOnSave: false, path: "" }); + expect( + validateLanguages({ + prettier: { path: " ./bin/prettier ", languages: ["markdown", 4, "markdown"], prefer: true, runOnSave: true }, + }).prettier, + ).toEqual({ path: "./bin/prettier", languages: ["markdown"], prefer: true, runOnSave: true }); + expect(validateLanguages({ prettier: { languages: [] } }).prettier.languages).toEqual([]); + }); + it("marks folders with one role each", () => { expect(normalizeFolder("./src/main/")).toBe("src/main"); let ps = validateProjectStructure({ sourceRoots: ["src/", "src", 3], excluded: ["/dist"] }); @@ -58,6 +68,7 @@ describe("language pages", () => { "Java", "Node.js", "Python Interpreter", + "Prettier", "Rust", "TypeScript", ]); diff --git a/src/features/settings/languages/PrettierPage.tsx b/src/features/settings/languages/PrettierPage.tsx new file mode 100644 index 000000000..ea20c7b01 --- /dev/null +++ b/src/features/settings/languages/PrettierPage.tsx @@ -0,0 +1,72 @@ +import { useId } from "react"; +import { Input } from "@/ui"; +import { Row, Section, Select, Toggle } from "../components/Form"; +import { useSetting } from "../components/context"; +import { DEFAULT_LANGUAGES } from "@/platform/languageSettings"; + +const names: Record = { + markdown: "Markdown", + yaml: "YAML", + css: "CSS", + scss: "SCSS", + less: "Less", + html: "HTML", + graphql: "GraphQL", + javascript: "JavaScript", + javascriptreact: "JavaScript JSX", + typescript: "TypeScript", + typescriptreact: "TypeScript JSX", + json: "JSON", + jsonc: "JSON with Comments", + vue: "Vue", +}; + +export function PrettierPage() { + const id = useId(); + const [path, setPath] = useSetting("languages.prettier.path"); + const [languages, setLanguages] = useSetting("languages.prettier.languages"); + const [prefer, setPrefer] = useSetting("languages.prettier.prefer"); + const [save, setSave] = useSetting("languages.prettier.runOnSave"); + return ( + <> +
+ + setPath(e.target.value)} /> + + + { - readImageFiles(e.target.files ?? []); - e.target.value = ""; - }} - /> - {props.actions} +
{props.toolbar}
+
+ { + const glue = text && !/\s$/.test(text) ? " " : ""; + setText(`${text}${glue}@`, text.length + glue.length + 1); + }} + /> + imageInput.current?.click()} + /> + { + readImageFiles(e.target.files ?? []); + e.target.value = ""; + }} + /> + + {props.actions} +
); diff --git a/src/features/agents/ConfigPickers.test.tsx b/src/features/agents/ConfigPickers.test.tsx index 2c7c737de..e0c0a828c 100644 --- a/src/features/agents/ConfigPickers.test.tsx +++ b/src/features/agents/ConfigPickers.test.tsx @@ -1,4 +1,4 @@ -import { fireEvent, render, screen } from "@testing-library/react"; +import { fireEvent, render, screen, within } from "@testing-library/react"; import { describe, expect, it, vi } from "vitest"; import type { AgentConfigOption } from "@/bindings"; import { ConfigPickers, configPickerOptions } from "./ConfigPickers"; @@ -85,3 +85,28 @@ it("sends the complete nested model id through ConfigPickers", () => { fireEvent.click(screen.getByRole("option", { name: "Beamcmc/Beam" })); expect(onChange).toHaveBeenCalledExactlyOnceWith("model", "9router/cmc/Beam"); }); + +it("edits secondary settings from the compact popup and restores focus when dismissed", () => { + const approval: AgentConfigOption = { + id: "approvals", + name: "Approvals", + category: "approval", + description: null, + current: "ask", + via: "option", + values: [value("ask", "Ask first"), value("bypass", "Bypass approvals")], + }; + const onChange = vi.fn(); + render(); + const trigger = screen.getByRole("button", { name: "Agent settings" }); + trigger.focus(); + fireEvent.click(trigger); + const dialog = screen.getByRole("dialog", { name: "Agent settings" }); + fireEvent.click(within(dialog).getByRole("button", { name: "Approvals" })); + fireEvent.click(screen.getByRole("option", { name: "Ask first" })); + expect(onChange).toHaveBeenCalledExactlyOnceWith("approvals", "ask"); + expect(dialog).toBeInTheDocument(); + fireEvent.keyDown(document, { key: "Escape" }); + expect(screen.queryByRole("dialog", { name: "Agent settings" })).not.toBeInTheDocument(); + expect(trigger).toHaveFocus(); +}); diff --git a/src/features/agents/ConfigPickers.tsx b/src/features/agents/ConfigPickers.tsx index 08a0e8af8..dbb6f2331 100644 --- a/src/features/agents/ConfigPickers.tsx +++ b/src/features/agents/ConfigPickers.tsx @@ -2,9 +2,11 @@ * Model, mode, approvals and thinking-effort dropdowns for a composer's bottom row. * Modes and approvals use icons; levels are plain text. */ +import { useRef, useState } from "react"; +import clsx from "clsx"; import type { AgentConfigOption } from "@/bindings"; import { useTx } from "@/platform/i18n"; -import { Select } from "@/ui"; +import { IconButton, Popup, Select, T } from "@/ui"; import type { SelectOption } from "@/ui/Select"; import { mainOptions, modeIcon } from "./composerModel"; import styles from "./Composer.module.css"; @@ -43,47 +45,100 @@ export function ConfigPickers({ onChange: (option: string, value: string) => void; }) { const tx = useTx(); + const [open, setOpen] = useState(false); + const anchor = useRef(null); + const options = mainOptions(config); + const secondary = options.filter((o) => o.category !== "model"); + const approval = secondary.find((o) => o.category === "approval" || o.category === "mode"); + const summary = secondary + .map((o) => { + const value = values?.[o.id] ?? o.current; + return `${tx(o.name)}: ${o.values.find((v) => v.value === value)?.name ?? tx("Default")}`; + }) + .join(" · "); return ( <> - {mainOptions(config).map((o) => { - const isMode = o.category === "mode"; - const value = values?.[o.id] ?? o.current ?? null; - const options = configPickerOptions(o); - - return ( - ({ + ...opt, + icon: + option.category === "approval" + ? opt.value === "bypass" + ? "unlock" + : "lock" + : option.category === "mode" + ? modeIcon(opt.value) + : undefined, + }))} + searchable={option.category === "model"} + onChange={(v) => onChange(option.id, v)} + renderValue={ + option.category === "thought_level" && !framed + ? (current) => ( + + {option.name} + {current?.label ?? tx("Default")} + + ) + : undefined + } + /> + ); +} diff --git a/src/features/agents/Home.module.css b/src/features/agents/Home.module.css index f86221152..67cad0ade 100644 --- a/src/features/agents/Home.module.css +++ b/src/features/agents/Home.module.css @@ -60,3 +60,47 @@ .warning { color: var(--danger); } + +.docked { + justify-content: flex-end; + padding: 16px 12px 12px; +} +.docked .inner { + gap: 8px; +} +.docked .where { + order: -1; + flex-wrap: nowrap; + min-width: 0; + gap: 6px; +} +.docked .project, +.docked .projectPicker { + flex: 0 1 auto; + min-width: 0; + max-width: 30%; + margin: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.docked .branch, +.docked .basePicker { + order: 1; + flex: 1 1 0; + min-width: 0; + padding: 0; +} +.docked .isolation { + order: 2; + flex: 0 1 auto; + min-width: 0; + max-width: 45%; + margin-left: auto; +} +.branchName { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} diff --git a/src/features/agents/HomeEditor.tsx b/src/features/agents/HomeEditor.tsx index d7dfa29e9..3ff76b005 100644 --- a/src/features/agents/HomeEditor.tsx +++ b/src/features/agents/HomeEditor.tsx @@ -1,4 +1,5 @@ /** New Task page: one prompt box with the agent and its settings; where it works under it. */ +import clsx from "clsx"; import { useEffect, useState } from "react"; import type { AgentProbe, Branch } from "@/bindings"; import { executeAction } from "@/platform/actions"; @@ -7,7 +8,7 @@ import { useTx, useTxTemplate } from "@/platform/i18n"; import { basename, useProject } from "@/platform/project"; import { Icon, Select, T, type SelectOption } from "@/ui"; import { defaultTaskProject } from "./project"; -import { maybeEditorService } from "@/workbench/contributions"; +import { maybeEditorService, type EditorInput } from "@/workbench/contributions"; import { Composer } from "./Composer"; import { SubmitButton } from "./SubmitButton"; import { canSend, emptyDraft } from "./composerModel"; @@ -17,7 +18,7 @@ import { ADD_AGENT, providerOptions as agentOptions } from "./providerOptions"; import { HOME, NO_COMMANDS, refreshProviders, startTask, updateDraft, useAgentCommands, useAgents } from "./store"; import styles from "./Home.module.css"; -export function HomeEditor() { +export function HomeEditor({ docked = false }: { docked?: boolean; input?: EditorInput }) { const tx = useTx(); const txTemplate = useTxTemplate(); const draft = useAgents((s) => s.draft); @@ -86,15 +87,19 @@ export function HomeEditor() { const setOption = (id: string, value: string) => updateDraft({ config: { ...draft.config, [id]: value } }); return ( -
+
-

- What should the agent do? -

+ {!docked && ( +

+ What should the agent do? +

+ )} ({ value: path, label: basename(path), detail: path }))} onChange={(path) => { @@ -139,12 +145,15 @@ export function HomeEditor() { }} /> ) : ( - {members.length ? basename(root) : project?.name} + + {members.length ? basename(root) : project?.name} + )} {isGit && ( ({ value: b.name, label: b.name }))} onChange={(b) => updateDraft({ base: b === current ? null : b })} @@ -184,7 +198,7 @@ export function HomeEditor() { )}
- {probe && ( + {probe && (!docked || probe.error) && (

{probe.error ? txTemplate(`${provider?.name ?? probe.provider} didn't start: ${probe.error}`) diff --git a/src/features/agents/Session.module.css b/src/features/agents/Session.module.css index 5b104f185..a28570ef3 100644 --- a/src/features/agents/Session.module.css +++ b/src/features/agents/Session.module.css @@ -16,6 +16,20 @@ border-right: 1px solid var(--border); } +.conversation[hidden] { + display: none; +} +.docked { + grid-template-columns: minmax(0, 1fr); + overflow: hidden; +} +.docked .conversation { + border-right: 0; +} +.docked .changes { + width: auto; +} + /* The conversation hugs its content; spare space stays below the composer instead of inside the chat. */ .streamArea, @@ -568,6 +582,7 @@ width: 280px; } .changesHeader { + min-width: 0; display: flex; align-items: center; gap: 6px; @@ -577,11 +592,17 @@ border-bottom: 1px solid var(--border); } .changesTitle { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; font-weight: 600; color: var(--fg-strong); } .changesSummary { flex: none; + overflow: hidden; + text-overflow: ellipsis; padding: 4px 10px; color: var(--fg-subtle); white-space: pre; @@ -608,8 +629,11 @@ gap: 4px; } .changeName { - flex: none; + flex: 0 1 auto; + min-width: 0; white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } .changeDir { flex: 1 1 0; diff --git a/src/features/agents/SessionEditor.tsx b/src/features/agents/SessionEditor.tsx index 00d2ae510..deddc4c4c 100644 --- a/src/features/agents/SessionEditor.tsx +++ b/src/features/agents/SessionEditor.tsx @@ -68,15 +68,13 @@ import { setFocusedSession, focusedSession, type FocusedSession } from "./sessio import { taskMenu } from "./taskActions"; import styles from "./Session.module.css"; -export function SessionEditor({ input }: { input: EditorInput }) { +export function SessionEditor({ input, docked = false }: { input: EditorInput; docked?: boolean }) { const id = (input.data as { task: string }).task; - return ; + return ; } -function TaskSession({ id }: { id: string }) { +function TaskSession({ id, docked }: { id: string; docked: boolean }) { const task = useAgents((s) => s.tasks.get(id)); - // The tool window bar above already shows the title of a docked conversation. - const docked = useAgents((s) => s.docked === id); const entries = useAgents((s) => s.entries.get(id)); const changes = useAgents((s) => s.changes.get(id)); const project = useProject((s) => s.project); @@ -84,7 +82,7 @@ function TaskSession({ id }: { id: string }) { task?.isolation === "local" ? task.status : null, project?.workspace ? (task?.projectRoot ?? project.root) : null, ); - const [changesOpen, setChangesOpen] = useChangesOpen(id, changes ?? null); + const [changesOpen, setChangesOpen] = useChangesOpen(id, changes ?? null, docked); // The subagent conversation shown, with the subagents that lead to it (empty: the task's own). const [path, setPath] = useState([]); const view = path.at(-1) ?? null; @@ -96,8 +94,10 @@ function TaskSession({ id }: { id: string }) { useEffect(() => { void loadEntries(id).catch(() => undefined); void refreshChanges(id); - return markVisible(id); }, [id]); + useEffect(() => { + if (!docked || !changesOpen) return markVisible(id); + }, [id, docked, changesOpen]); useEffect(() => { if (view) void loadEntries(id, view).catch(() => undefined); }, [id, view]); @@ -127,7 +127,7 @@ function TaskSession({ id }: { id: string }) { } }} > -

+ ); @@ -270,6 +276,7 @@ function Header({ className={styles.changesToggle} aria-pressed={changesOpen} disabled={count === 0 && !changesOpen} + aria-label={changesOpen ? tx("Hide changes") : tx("Show changes")} title={changesOpen ? tx("Hide changes") : tx("Show changes")} onClick={onToggleChanges} > @@ -1292,16 +1299,22 @@ function loadChangesOpen(): Record { /** * Whether the Changes pane is shown for `task`: the user's choice once made, else - * only while the task has changes (so it opens when the agent first edits a file). + * only while the task has changes. Docked sessions stay in the conversation until + * the user explicitly opens changes; navigation there does not change editor preferences. */ -function useChangesOpen(task: string, changes: AgentChange[] | null): [boolean, (open: boolean) => void] { +function useChangesOpen( + task: string, + changes: AgentChange[] | null, + docked: boolean, +): [boolean, (open: boolean) => void] { const [state, setState] = useState<{ task: string; open: boolean | undefined }>(() => ({ task, - open: loadChangesOpen()[task], + open: docked ? false : loadChangesOpen()[task], })); - const chosen = state.task === task ? state.open : loadChangesOpen()[task]; + const chosen = state.task === task ? state.open : docked ? false : loadChangesOpen()[task]; const set = (open: boolean) => { setState({ task, open }); + if (docked) return; try { globalThis.localStorage?.setItem(CHANGES_OPEN_KEY, JSON.stringify({ ...loadChangesOpen(), [task]: open })); } catch { @@ -1315,11 +1328,13 @@ function ChangesPane({ task, changes, head, + docked, onHide, }: { task: AgentTask; changes: AgentChange[] | null; head: string | null; + docked: boolean; onHide: () => void; }) { const [selected, setSelected] = useState>(() => new Set()); @@ -1328,6 +1343,7 @@ function ChangesPane({ return (

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%0D2C=<;VbEcr5L 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