дзеркало
https://github.com/l0ng-ai/openidea.git
синхронізовано 2026-11-09 11:15:40 +02:00
Root cause: the terminal built its own font-family ("JetBrains Mono", Nerd Fonts, monospace) without the bundled "JetBrains Mono Variable", so on Windows (no JetBrains Mono installed) xterm fell back to the system monospace (SimSun on Chinese Windows); xterm also measured cells before the webfont loaded.
Fix: one resolver (src/platform/fonts.ts monoFontFamily) maps JetBrains Mono to the bundled face; xterm re-measures once fonts load; "Use editor font" also takes the editor's fallback font (IDEA).
Siblings covered: embedded run terminal, editor default family + fallback, Settings › Editor › Font preview.
Verified in-app on macOS (terminal renders JetBrains Mono Variable). Not verified on Windows.
Claude-Session: https://claude.ai/code/session_01VUYsdXA2nkF5v6zsC93dpn
25 рядки
1.1 KiB
TypeScript
25 рядки
1.1 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { monoFontFamily } from "./fonts";
|
|
|
|
const BASE = "var(--font-mono)";
|
|
|
|
describe("monoFontFamily", () => {
|
|
it.each([
|
|
// #26: the default family names the bundled face, so it renders without a system install.
|
|
["JetBrains Mono", "", `"JetBrains Mono Variable", "JetBrains Mono", ${BASE}`],
|
|
["", "", `"JetBrains Mono Variable", "JetBrains Mono", ${BASE}`],
|
|
[undefined, "", `"JetBrains Mono Variable", "JetBrains Mono", ${BASE}`],
|
|
["JetBrains Mono", "PingFang SC", `"JetBrains Mono Variable", "JetBrains Mono", "PingFang SC", ${BASE}`],
|
|
["Fira Code", "", `"Fira Code", ${BASE}`],
|
|
['"Cascadia Code"', " Microsoft YaHei ", `"Cascadia Code", "Microsoft YaHei", ${BASE}`],
|
|
])("%j + fallback %j", (family, fallback, expected) => {
|
|
expect(monoFontFamily(family, fallback, BASE)).toBe(expected);
|
|
});
|
|
|
|
it("always ends with the bundled stack, so a missing family never reaches the system default", () => {
|
|
expect(monoFontFamily("Not Installed", "", '"JetBrains Mono Variable", monospace')).toBe(
|
|
'"Not Installed", "JetBrains Mono Variable", monospace',
|
|
);
|
|
});
|
|
});
|