feat(services): reorder services within a run configuration type (#345)

Services followed configuration detection order, so frequently used services could not be kept together. Services can now be dragged before or after a sibling, with an insertion indicator and edge scrolling, or moved with Move Up/Down from the toolbar and context menu.

The order is stored per project location and type, separately from configuration definitions. New configurations append, windows stay in sync, and a failed save keeps the order for the session with a warning. Sorting in Tree is opt-in, so other trees are unchanged.

Co-authored-by: wangxga <[email protected]>
Цей коміт міститься в:
wangxgaтаwangxga authored and GitHub committed 2026-10-31 01:28:41 +08:00
1 джерело 0660f3c020
коміт a3cd99db1f
16 files changed
+985 -17

No files matched your search

+3
Переглянути файл
@@ -19,6 +19,7 @@ import {
} from "react";
import type { RunConfig } from "@/bindings";
import type { MenuItem } from "@/ui/Menu";
import type { TreeReorder } from "@/ui/Tree";
import { create } from "zustand";
import { useShallow } from "zustand/react/shallow";
@@ -232,6 +233,8 @@ export interface ServiceProviderContribution {
banner?: ComponentType;
/** Entries of the "Add Service" (+, ⌘N) menu. */
addMenu?(): MenuItem[];
/** Optional sibling display ordering; does not move services between groups. */
reorder?: TreeReorder<ServiceTreeItem>;
}
export const useServiceProviders = create<{ providers: Map<string, ServiceProviderContribution> }>(() => ({