Add enableBold back

Part of #1117
This commit is contained in:
Daniel Imms
2018-01-23 08:28:01 -08:00
parent 4e6b089216
commit df02dacdc4
5 changed files with 29 additions and 3 deletions
+1
View File
@@ -159,6 +159,7 @@ namespace methods_core {
t.setOption('cursorBlink', true); t.setOption('cursorBlink', true);
t.setOption('debug', true); t.setOption('debug', true);
t.setOption('disableStdin', true); t.setOption('disableStdin', true);
t.setOption('enableBold', true);
t.setOption('fontWeight', 'normal'); t.setOption('fontWeight', 'normal');
t.setOption('fontWeight', 'bold'); t.setOption('fontWeight', 'bold');
t.setOption('fontWeightBold', 'normal'); t.setOption('fontWeightBold', 'normal');
+1
View File
@@ -137,6 +137,7 @@ export interface ITerminalOptions {
cursorStyle?: string; cursorStyle?: string;
debug?: boolean; debug?: boolean;
disableStdin?: boolean; disableStdin?: boolean;
enableBold?: boolean;
fontSize?: number; fontSize?: number;
fontFamily?: string; fontFamily?: string;
fontWeight?: FontWeight; fontWeight?: FontWeight;
+3 -1
View File
@@ -72,6 +72,7 @@ const DEFAULT_OPTIONS: ITerminalOptions = {
cursorStyle: 'block', cursorStyle: 'block',
bellSound: BELL_SOUND, bellSound: BELL_SOUND,
bellStyle: 'none', bellStyle: 'none',
enableBold: true,
fontFamily: 'courier-new, courier, monospace', fontFamily: 'courier-new, courier, monospace',
fontSize: 15, fontSize: 15,
fontWeight: 'normal', fontWeight: 'normal',
@@ -424,11 +425,12 @@ export class Terminal extends EventEmitter implements ITerminal, IInputHandlingT
this.renderer.clear(); this.renderer.clear();
this.charMeasure.measure(this.options); this.charMeasure.measure(this.options);
break; break;
case 'enableBold':
case 'letterSpacing': case 'letterSpacing':
case 'lineHeight': case 'lineHeight':
case 'fontWeight': case 'fontWeight':
case 'fontWeightBold': case 'fontWeightBold':
const didCharSizeChange = (key === 'fontWeight' || key === 'fontWeightBold'); const didCharSizeChange = (key === 'fontWeight' || key === 'fontWeightBold' || key === 'enableBold');
// When the font changes the size of the cells may change which requires a renderer clear // When the font changes the size of the cells may change which requires a renderer clear
this.renderer.clear(); this.renderer.clear();
+9 -2
View File
@@ -230,7 +230,7 @@ export abstract class BaseRenderLayer implements IRenderLayer {
colorIndex = fg + 2; colorIndex = fg + 2;
} else { } else {
// If default color and bold // If default color and bold
if (bold) { if (bold && terminal.options.enableBold) {
colorIndex = 1; colorIndex = 1;
} }
} }
@@ -251,6 +251,13 @@ export abstract class BaseRenderLayer implements IRenderLayer {
this._ctx.globalAlpha = DIM_OPACITY; this._ctx.globalAlpha = DIM_OPACITY;
} }
// Draw the non-bold version of the same color if bold is not enabled
if (bold && !terminal.options.enableBold) {
// Ignore default color as it's not touched above
if (colorIndex > 1) {
colorIndex -= 8;
}
}
this._ctx.drawImage(this._charAtlas, this._ctx.drawImage(this._charAtlas,
code * charAtlasCellWidth, code * charAtlasCellWidth,
@@ -262,7 +269,7 @@ export abstract class BaseRenderLayer implements IRenderLayer {
charAtlasCellWidth, charAtlasCellWidth,
this._scaledCharHeight); this._scaledCharHeight);
} else { } else {
this._drawUncachedChar(terminal, char, width, fg, x, y, bold, dim); this._drawUncachedChar(terminal, char, width, fg, x, y, bold && terminal.options.enableBold, dim);
} }
// This draws the atlas (for debugging purposes) // This draws the atlas (for debugging purposes)
// this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height); // this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);
+15
View File
@@ -8,6 +8,11 @@
*/ */
declare module 'xterm' { declare module 'xterm' {
/**
* A string representing text font weight.
*/
export type FontWeight = 'normal' | 'bold' | 'bolder' | 'lighter' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';
/** /**
* An object containing start up options for the terminal. * An object containing start up options for the terminal.
*/ */
@@ -57,6 +62,16 @@ declare module 'xterm' {
*/ */
fontFamily?: string; fontFamily?: string;
/**
* The font weight used to render non-bold text.
*/
fontWeight?: FontWeight;
/**
* The font weight used to render bold text.
*/
fontWeightBold?: FontWeight;
/** /**
* The spacing in whole pixels between characters.. * The spacing in whole pixels between characters..
*/ */