Refine appearance settings and syntax highlighting

Keep parsed chat and tool detail content in sync with appearance token changes. Hide font-family controls on native, use One as the default syntax theme, add Swift highlighting, and give Nord a distinct light palette.
This commit is contained in:
Mohamed Boudra
2026-05-31 21:40:38 +07:00
parent 4cc72a84e8
commit 9f88b4e69c
21 changed files with 310 additions and 53 deletions
@@ -240,7 +240,7 @@ describe("appearance settings", () => {
expect(result.monoFontFamily).toBe("");
expect(result.uiFontSize).toBe(DEFAULT_UI_FONT_SIZE);
expect(result.codeFontSize).toBe(DEFAULT_CODE_FONT_SIZE);
expect(result.syntaxTheme).toBe("github");
expect(result.syntaxTheme).toBe("one");
});
it("clamps the UI font size into range and rejects non-numeric values", async () => {
@@ -346,7 +346,7 @@ describe("appearance settings", () => {
}),
});
expect((await loadAppSettingsFromStorage(deps)).syntaxTheme).toBe("github");
expect((await loadAppSettingsFromStorage(deps)).syntaxTheme).toBe("one");
});
it("drops an unknown syntax theme id back to the default", async () => {
@@ -356,7 +356,7 @@ describe("appearance settings", () => {
}),
});
expect((await loadAppSettingsFromStorage(deps)).syntaxTheme).toBe("github");
expect((await loadAppSettingsFromStorage(deps)).syntaxTheme).toBe("one");
});
});
@@ -33,7 +33,7 @@ export interface AppSettings {
monoFontFamily: string; // "" = platform default mono stack
uiFontSize: number; // clamped px, default 16
codeFontSize: number; // clamped px, default 12
syntaxTheme: SyntaxThemeId; // default "auto"
syntaxTheme: SyntaxThemeId; // default "one"
}
export interface Settings extends AppSettings {
@@ -50,7 +50,7 @@ export const DEFAULT_CLIENT_SETTINGS: AppSettings = {
monoFontFamily: "",
uiFontSize: DEFAULT_UI_FONT_SIZE,
codeFontSize: DEFAULT_CODE_FONT_SIZE,
syntaxTheme: "github",
syntaxTheme: "one",
};
export const DEFAULT_APP_SETTINGS: Settings = {