authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-02-17 17:57:37-08:00
committergravatar for jmarminge@gmail.comJulius Marminge <jmarminge@gmail.com> 2026-02-17 19:47:09-08:00
logf6136bd4c2a23a37c41610ac352058bc17a198a8
treeba51ae6be042298053393ba4c204c9b6ea17be96
parent385d77d0c259ee69195cbf1b99d788852c5fb4b4

rm dupe


2 files changed, 9 insertions(+), 11 deletions(-)

apps/web/src/components/ChatView.tsx+1-7
......@@ -60,7 +60,7 @@ import {
6060import { isScrollContainerNearBottom } from "../chat-scroll";
6161import { useStore } from "../store";
6262import { MAX_THREAD_TERMINAL_COUNT, type ChatImageAttachment } from "../types";
63import { getVscodeIconUrlForEntry } from "../vscode-icons";
63import { basenameOfPath, getVscodeIconUrlForEntry } from "../vscode-icons";
6464import { useTheme } from "../hooks/useTheme";
6565import BranchToolbar from "./BranchToolbar";
6666import GitActionsControl from "./GitActionsControl";
......@@ -125,12 +125,6 @@ function workToneClass(tone: "thinking" | "tool" | "info" | "error"): string {
125125 return "text-muted-foreground/40";
126126}
127127
128function basenameOfPath(pathValue: string): string {
129 const slashIndex = pathValue.lastIndexOf("/");
130 if (slashIndex === -1) return pathValue;
131 return pathValue.slice(slashIndex + 1);
132}
133
134128type SessionContinuityState = "resumed" | "new" | "fallback_new";
135129
136130interface EnsuredSessionInfo {
apps/web/src/vscode-icons.ts+8-4
......@@ -66,7 +66,7 @@ function toLowercaseLookup(source: Record<string, string>): Record<string, strin
6666 return lookup;
6767}
6868
69function basenameOfPath(pathValue: string): string {
69export function basenameOfPath(pathValue: string): string {
7070 const slashIndex = pathValue.lastIndexOf("/");
7171 if (slashIndex === -1) return pathValue;
7272 return pathValue.slice(slashIndex + 1);
......@@ -88,7 +88,10 @@ function extensionCandidates(fileName: string): string[] {
8888 return [...candidates];
8989}
9090
91function resolveLanguageFallbackDefinition(pathValue: string, theme: "light" | "dark"): string | null {
91function resolveLanguageFallbackDefinition(
92 pathValue: string,
93 theme: "light" | "dark",
94): string | null {
9295 const basename = basenameOfPath(pathValue).toLowerCase();
9396 const languageIds = theme === "light" ? lightLanguageIds : darkLanguageIds;
9497
......@@ -99,8 +102,9 @@ function resolveLanguageFallbackDefinition(pathValue: string, theme: "light" | "
99102
100103 for (const candidate of extensionCandidates(basename)) {
101104 const languageId =
102 localLanguageIdByExtensionOverrides[candidate as keyof typeof localLanguageIdByExtensionOverrides] ??
103 languageIdByExtension[candidate];
105 localLanguageIdByExtensionOverrides[
106 candidate as keyof typeof localLanguageIdByExtensionOverrides
107 ] ?? languageIdByExtension[candidate];
104108 if (!languageId) continue;
105109 return languageIds[languageId] ?? darkLanguageIds[languageId] ?? null;
106110 }