Skip to content

@jsvision/core / fallbackGlyph

Function: fallbackGlyph()

fallbackGlyph(char, caps): string

Defined in: render/glyphs.ts:92

Substitute a glyph for the terminal's capabilities.

Resolution order: ASCII ambiguous-chrome fallback (when ambiguousWide is on, most specific — its keys collide with no other table) → ASCII box fallback (when boxDrawing is off) → # for block/shade glyphs (when halfBlocks is off) → ? for any other code point above U+007F (when utf8 is off) → the glyph unchanged.

Parameters

char

string

A single buffer glyph (a continuation cell's empty string passes straight through).

caps

CapabilityProfile

The resolved terminal capabilities.

Returns

string

The original glyph when supported, else its ASCII fallback.

Example

ts
import { fallbackGlyph, resolveCapabilities } from '@jsvision/core';
const caps = resolveCapabilities().profile;

fallbackGlyph('│', caps); // '│' on a UTF-8 terminal; '|' when box-drawing is unavailable
fallbackGlyph('█', caps); // '█' normally; '#' when half/solid blocks are unavailable