Skip to content

Commit 7ed5156

Browse files
authored
Merge pull request microsoft#213905 from microsoft/tyriar/211933
Workaround low underscore in fonts by adjusting line height
2 parents 72216f2 + 8fcf73b commit 7ed5156

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

src/vs/workbench/contrib/terminal/common/terminal.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import { Event } from 'vs/base/common/event';
77
import { IDisposable } from 'vs/base/common/lifecycle';
88
import { MarshalledId } from 'vs/base/common/marshallingIds';
9-
import { IProcessEnvironment, OperatingSystem } from 'vs/base/common/platform';
9+
import { IProcessEnvironment, isLinux, OperatingSystem } from 'vs/base/common/platform';
1010
import Severity from 'vs/base/common/severity';
1111
import { ThemeIcon } from 'vs/base/common/themables';
1212
import { URI } from 'vs/base/common/uri';
@@ -33,7 +33,12 @@ export const TERMINAL_CONFIG_SECTION = 'terminal.integrated';
3333

3434
export const DEFAULT_LETTER_SPACING = 0;
3535
export const MINIMUM_LETTER_SPACING = -5;
36-
export const DEFAULT_LINE_HEIGHT = 1;
36+
// HACK: On Linux it's common for fonts to include an underline that is rendered lower than the
37+
// bottom of the cell which causes it to be cut off due to `overflow:hidden` in the DOM renderer.
38+
// See:
39+
// - https://github.com/microsoft/vscode/issues/211933
40+
// - https://github.com/xtermjs/xterm.js/issues/4067
41+
export const DEFAULT_LINE_HEIGHT = isLinux ? 1.1 : 1;
3742

3843
export const MINIMUM_FONT_WEIGHT = 1;
3944
export const MAXIMUM_FONT_WEIGHT = 1000;

src/vs/workbench/contrib/terminal/test/browser/terminalConfigurationService.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import { notStrictEqual, strictEqual } from 'assert';
77
import { getActiveWindow } from 'vs/base/browser/dom';
88
import { mainWindow } from 'vs/base/browser/window';
9+
import { isLinux } from 'vs/base/common/platform';
910
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
1011
import { EDITOR_FONT_DEFAULTS } from 'vs/editor/common/config/editorOptions';
1112
import { ConfigurationTarget, IConfigurationService } from 'vs/platform/configuration/common/configuration';
@@ -219,7 +220,7 @@ suite('Workbench - TerminalConfigurationService', () => {
219220
}
220221
}
221222
});
222-
strictEqual(terminalConfigurationService.getFont(getActiveWindow()).lineHeight, 1, 'editor.lineHeight should be 1 when terminal.integrated.lineHeight not set');
223+
strictEqual(terminalConfigurationService.getFont(getActiveWindow()).lineHeight, isLinux ? 1.1 : 1, 'editor.lineHeight should be the default when terminal.integrated.lineHeight not set');
223224
});
224225
});
225226

0 commit comments

Comments
 (0)