diff options
Diffstat (limited to 'packages/frontend/src/lib')
| -rw-r--r-- | packages/frontend/src/lib/components/TabBar.svelte | 15 | ||||
| -rw-r--r-- | packages/frontend/src/lib/components/ToolPermissions.svelte | 6 | ||||
| -rw-r--r-- | packages/frontend/src/lib/settings.svelte.ts | 2 |
3 files changed, 21 insertions, 2 deletions
diff --git a/packages/frontend/src/lib/components/TabBar.svelte b/packages/frontend/src/lib/components/TabBar.svelte index 4fbe3b1..354260c 100644 --- a/packages/frontend/src/lib/components/TabBar.svelte +++ b/packages/frontend/src/lib/components/TabBar.svelte @@ -89,10 +89,11 @@ function handleRenameKeydown(e: KeyboardEvent): void { class="tabs tabs-lift min-w-max" ondblclick={(e) => { if (e.target === e.currentTarget) tabStore.createNewTab(); }} > - <!-- New tab button — always first --> + <!-- New tab button — sticky-pinned to the left edge so it stays reachable + at any horizontal scroll; opaque bg + right-side shadow as a floating cue. --> <button type="button" - class="tab" + class="tab tab-active !sticky left-0 z-10 !rounded-ss-none !border-l-0 shadow-[2px_0_4px_-1px_rgba(0,0,0,0.2)]" onclick={() => tabStore.createNewTab()} aria-label="New tab" > @@ -152,6 +153,16 @@ function handleRenameKeydown(e: KeyboardEvent): void { </button> </div> {/each} + + <!-- Trailing padding after the last tab. Fills remaining space (big target), + shrinks to a small minimum when the bar overflows and scrolls. + Double-click anywhere in it to open a new tab. --> + <!-- svelte-ignore a11y_no_static_element_interactions --> + <div + class="flex-1 min-w-12 self-stretch cursor-default" + ondblclick={() => tabStore.createNewTab()} + title="Double-click to open a new tab" + ></div> </div> </div> diff --git a/packages/frontend/src/lib/components/ToolPermissions.svelte b/packages/frontend/src/lib/components/ToolPermissions.svelte index db5055c..6b09a07 100644 --- a/packages/frontend/src/lib/components/ToolPermissions.svelte +++ b/packages/frontend/src/lib/components/ToolPermissions.svelte @@ -52,6 +52,12 @@ const toolPermissions: ToolPermission[] = [ label: "Search code", description: "Allow the AI to search the codebase with the cs ranked code-search engine", }, + { + id: "lsp", + label: "LSP queries", + description: + "Allow the AI to query a language server for hover, go-to-definition, references, and more", + }, ]; const { diff --git a/packages/frontend/src/lib/settings.svelte.ts b/packages/frontend/src/lib/settings.svelte.ts index 30361a7..0da4e45 100644 --- a/packages/frontend/src/lib/settings.svelte.ts +++ b/packages/frontend/src/lib/settings.svelte.ts @@ -15,6 +15,7 @@ let toolPerms = $state<Record<string, boolean>>({ web_search: false, youtube_transcribe: false, search_code: false, + lsp: false, }); let savedToolPerms = $state<Record<string, boolean>>({ read: true, @@ -28,6 +29,7 @@ let savedToolPerms = $state<Record<string, boolean>>({ web_search: false, youtube_transcribe: false, search_code: false, + lsp: false, }); let skillChecks = $state<Record<string, boolean>>({}); let chunkLimit = $state(100); |
