Xterm.js: рд╕рдорд░реНрдерди рдлрд╝реЙрдиреНрдЯ ligatures

рдХреЛ рдирд┐рд░реНрдорд┐рдд 8 рд╕рд┐рддре░ 2017  ┬╖  54рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: xtermjs/xterm.js

Https://github.com/sourcelair/xterm.js/pull/938 рдореЗрдВ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рд╕рдорд░реНрдерди

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрднреА рднреА рд╕рдВрднрд╡ рд╣реИ, рд░реЗрдВрдбрд░рд░ рдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреМрди рд╕реЗ рдкрд╛рддреНрд░реЛрдВ рдХреЛ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рд╣реИред

areapi arerenderer help wanted typenhancement

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдирд┐рдпрдорд┐рдд ligatures рдореЗрдВ рд░реБрдЪрд┐ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, li рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓рд┐рдП ligatures рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдмреБрд░рд╛ рд╣реЛрдЧрд╛), рд▓реЗрдХрд┐рди == , !== рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП, => рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдпрд╣рд╛рдБ рдлрд┐рд░рд╛ рдХреЛрдб рдореЛрдиреЛрд╕реНрдкреЗрд╕ рдлреЙрдиреНрдЯ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд▓рд┐рдЧреБрд░реЗрдЯреНрд╕ рдХреА рдПрдХ рдЕрдЪреНрдЫреА рд╕реВрдЪреА рд╣реИ:
https://github.com/tonsky/FiraCode/blob/master/showcases/all_ligb.nng

рд╕рднреА 54 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдирд┐рдпрдорд┐рдд ligatures рдореЗрдВ рд░реБрдЪрд┐ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, li рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓рд┐рдП ligatures рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдмреБрд░рд╛ рд╣реЛрдЧрд╛), рд▓реЗрдХрд┐рди == , !== рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП, => рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдпрд╣рд╛рдБ рдлрд┐рд░рд╛ рдХреЛрдб рдореЛрдиреЛрд╕реНрдкреЗрд╕ рдлреЙрдиреНрдЯ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд▓рд┐рдЧреБрд░реЗрдЯреНрд╕ рдХреА рдПрдХ рдЕрдЪреНрдЫреА рд╕реВрдЪреА рд╣реИ:
https://github.com/tonsky/FiraCode/blob/master/showcases/all_ligb.nng

рдЕрдЧрд░ рд▓рд┐рдЧрдЪрд░ рдХрд╛ рдЖрдзрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдПрдХ рдЕрд▓рдЧ рд░рдВрдЧ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдЖрдк рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓реЗрдВрдЧреЗ?

@ LoganDark рднреА рдирд┐рдпрдорд┐рдд ligatures рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдпрд╛ рдЬрдм рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рдВрдЧ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ?

рдирд╣реАрдВ, рдФрд░ рдирд╣реАрдВред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ txtjs рд╕реЗ рд░реЗрдВрдбрд░ рдХреЛрдб рдХреЛ рдЦреАрдВрдЪрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд▓рд┐рдЧрдЪрд░ рдХреЛ рдХреИрд╕реЗ рд░реЗрдВрдбрд░ рдХрд░рдирд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкрд╛рда рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред http://txtjs.com/examples/Text/ligatures.html

@devsnek рдореИрдВ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╛рда рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░ рд░рд╣реА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ рдирд╣реАрдВ рд▓рдЧрддрд╛ред рдореБрджреНрджрд╛ рдпрд╣ рдЬрд╛рди рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдЪрд░рд┐рддреНрд░ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдЦреАрдВрдЪрд╛ рдЬрд╛ рд╕рдХреЗ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ "==" рдХреЛ "=" рдФрд░ "=" рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рди рдХрд┐ "==")ред

@Tyriar рдлрд╝реЙрдиреНрдЯ рд░реЗрдВрдбрд░рд░ рд╣рдорд╛рд░реЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЗ рдмрд┐рдирд╛ рдЙрд╕ рдХреА рджреЗрдЦрднрд╛рд▓ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛

@devsnek рд╣рд╛рдВ, рд▓реЗрдХрд┐рди рдЧреНрд░рд┐рдб рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдХреЛ рдХреБрдЫ рдЕрдкрд╡рд╛рджреЛрдВ (рдЗрдореЛрдЬреАрд╕, рд╡рд╛рдЗрдб рдпреВрдирд┐рдХреЛрдб рдЪрд╛рд░реНрдЯ) рдХреЗ рд╕рд╛рде рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрд╕ рд╕реВрдЪреА рдореЗрдВ рд▓рд┐рдЧреБрд░реЗрдЯреНрд╕ рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП https://github.com/sourcelair/xterm.js/pull/938 рджреЗрдЦреЗрдВ

@ рджреЗрд╡рд╕реНрдирд╛рдпрдХ рдЖрдк

рдЕрд╕реНрд╡реАрдХрд░рдг: рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рд╖рдп, рд╕рд┐рд░реНрдл рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЯрд┐рдкреНрдкрдгреА

@ LoganDark рднреА рдирд┐рдпрдорд┐рдд ligatures рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдпрд╛ рдЬрдм рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рдВрдЧ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ?

рд╣рдо рдХреИрд╕реЗ рдЕрдиреНрдп emulators рдЙрдиреНрд╣реЗрдВ рд╕рдВрднрд╛рд▓ рджреНрд╡рд╛рд░рд╛ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд╡реЗ рдЕрд▓рдЧ рд╣реЛ рдЕрдЧрд░ рд╡реЗ рдЕрд▓рдЧ рдЕрд▓рдЧ рд░рдВрдЧ рд╣реИрдВ, рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЙрдореНрдореАрдж рд╣реЛрддреА рд╣реИ рдорд┐рд▓рддрд╛ рд╣реИред рдпрд╣ рд▓рдЧрднрдЧ рдПрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рддреАрдХреЛрдВ рдХреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реАрдЖрдИрдПрдо рдореЗрдВ рдХреБрдЫ рднрд╛рд╖рд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рд░реЗрдВрдбрд░ рдореЛрдб _not_ рд╣реИ, рддреЛ рдпрд╣ рд╕рднреА рдкреНрд░рддреАрдХреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред

@ Qix- рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рддреЛ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдкрд╛рдареЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдкреЛрд╕реНрдЯ рдореЗрдВ рд░рдВрдЧ рднрд░рдиреЗ рдХрд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдорд╛рдкреНтАНрдд рдХрд░ рджреЗрдЧрд╛, рдФрд░ рд╕рдВрдпреБрдХреНтАН рдд рдЬреЛрдбрд╝реЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНтАНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдЪрд░-рдЪреМрдбрд╝рд╛рдИ рдХреЗ рдлреЛрдВрдЯ рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореЛрдиреЛрд╕реНтАНрдкреЗрд╕ рдлреЛрдВрдЯ рдЬреЛ рдереЛрдбрд╝рд╛ рдмрдВрдж рд╣реИрдВ / рдкреВрд░реНрдгрд╛рдВрдХ рдЪреМрдбрд╝рд╛рдИ рдирд╣реАрдВ рд╣реИ)

@LoganDark рдмрд╣реБрд░рдВрдЧреА рд▓рдЧреЗрдВрдЧреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ IMO рд░рдВрдЧрдиреЗ рдХрд╛ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рд╣рд╛рдБ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдорд▓реНрдЯреА-рдХрд▓рд░ рд▓рд┐рдЧрдЪрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рднреА рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ рдПрдХ рд╣реА рдЧреНрд▓рд┐рдлрд╝ рдХреЛ рд╢реБрд░реВ рдореЗрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВред

рдПрдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдЪрд░рд┐рддреНрд░ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рд▓рд┐рдЧрдЪрд░ рд╣реИрдВред рдЗрд╕реЗ рдареАрдХ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡рддрдГ рдЗрд╕рдореЗрдВ рдирд┐рдореНрди рд╕реНрддрд░ рдХрд╛ рдХреЛрдб рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ рдЬреЛ рдлрд╝реЙрдиреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ (рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рджреЗрд╢реА рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рд╣реЛрдиреЗ рдФрд░ рд╡реЗрдм рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА), рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╡реЗрдм рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд╕рдВрдкрд░реНрдХ рдореЗрдВ рд╣реИред

рдЕрдм рдЬрдм рд╣рд╛рдЗрдкрд░ 2.0.0 рд╕реНрдерд┐рд░ рд░рд┐рд▓реАрдЬ рд╣реБрдИ, рддреЛ рд╢рд╛рдпрдж рд▓рд┐рдЧрдЪрд░ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рд░реЗрдлрд░реА https://github.com/zeit/hyper/issues/914#issuecomment -361034148

рдЧреНрд▓рд┐рдлрд╝ рдореИрдкрд┐рдВрдЧ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рджрд░рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдард┐рди рдЕрдЦрд░реЛрдЯ рд╣реИред рдореИрдВ рдЬреЛ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдЙрд╕рдореЗрдВ рд╕реЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрднрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

  1. рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╝реЙрдиреНрдЯ рдбреЗрдЯрд╛ (рдУрдЯреАрдПрдл / ttf / woff / etc) рдпреБрдХреНрдд рдлрд╝рд╛рдЗрд▓ / рдмрдлрд░ рдореЗрдВ рдЪрдпрдирд┐рдд рдлрд╝реЙрдиреНрдЯ рдкрд░рд┐рд╡рд╛рд░ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред
  2. рдлрд╝реЙрдиреНрдЯ рдХреЗ GSUB рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ рдФрд░ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВ рдХрд┐ рдЧреНрд▓рд┐рдлрд╝ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд▓рд┐рдП рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕рдордЭрджрд╛рд░ рд╕реЗрдЯ рдореЗрдВ
  3. рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╡рд░реНрдг рдЕрдиреБрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реИ, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП xterm рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирдХреНрд╢рд╛ рдпрд╛ рдорд╛рдирдЪрд┐рддреНрд░рдг рдлрд╝рдВрдХреНрд╢рди рдкрд╛рд╕ рдХрд░реЗрдВ

рдореИрдВрдиреЗ рдлрд┐рд░рд╛ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рд╣рд╛рд░ рдХрд┐рдпрд╛ рд╣реИ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдЗрд╕рдХрд╛ nerd рдлреЙрдиреНрдЯ рд╡реЗрд░рд┐рдПрдВрдЯ) рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХрд┐рддрдирд╛ рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдпрд╣ рддрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдкрд░реНрдпрд╛рдкреНрдд рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖реА рдорд╣рд╕реВрд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдпрд╛ рдлреЙрдиреНрдЯ рд▓рд┐рдЧреБрд░реЗрдЯреНрд╕ рдХреА рдкрд░реНрдпрд╛рдкреНрдд рджреЗрдЦрднрд╛рд▓ рдХрд░рддрд╛ рд╣реВрдВ) рдЗрд╕реЗ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рдЬреЛ рдкрд╛рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬреНрдЮрд╛рди рдЦреЛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ:

  • рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝реЙрдиреНрдЯ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ xterm.js рдХреА рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди xterm.js рджреНрд╡рд╛рд░рд╛ рдЙрдЬрд╛рдЧрд░ рд╣реБрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ / рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

  • рд╕реАрдПрд╕рдПрд╕ font-family рдХрд╛ рдлреЙрдгреНрдЯ рдХрд╛ рдирд╛рдо рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рдЕрдкрдиреА рдлреЙрдиреНрдЯ рдлрд╛рдЗрд▓ рдкрд░ рдореИрдк рдХрд░рдирд╛ рджрд░реНрджрдирд╛рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИред рдЕрднреА рддрдХ рдореИрдВрдиреЗ рдЬреЛ рдПрдХ рд╣реА рд░рд╛рд╕реНрддрд╛ рджреЗрдЦрд╛ рд╣реИ рд╡рд╣ %WINDIR%\Fonts рдореЗрдВ рд╕рдм рдХреБрдЫ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдорд┐рд▓рдиреЗ рд╡рд╛рд▓реА рд╣рд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ (рд╕реНрдкреЙрдЗрд▓рд░: рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдзреАрдорд╛ рд╣реИ)ред рдЕрднреА рддрдХ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИред (рдиреЛрдЯ: рдореИрдВрдиреЗ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ рдирд╛рдо рдЙрдард╛рдиреЗ рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдирд╛рдордХрд░рдг рдХреБрдЫ рдлреЛрдВрдЯ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ererd рдлреЛрдВрдЯ рд╕реЗ рд╣реИрдВред рд╡реЗ рдПрдХ "рдкрд╕рдВрджреАрджрд╛" рдкрд░рд┐рд╡рд╛рд░ рдФрд░ рдЙрдкрдкрд░рд┐рд╡рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреЗ рдирд╛рдо рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ css font-family ред рдпрджрд┐ рдЖрдк рдЙрддреНрд╕реБрдХ рд╣реИрдВ, рддреЛ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреБрдВрдЬреА HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts )

  • рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ, рдЬрд┐рд╕реЗ opentype.js рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдУрдкрди рдЯрд╛рдЗрдк рдлрд╝реЙрдиреНрдЯ рдХреА рдкреВрд░реНрдг рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ font.stringToGlyphs(str) рдлрд╝рдВрдХреНрд╢рди рднреА рд╣реИ, рдЬреЛ рдмреБрдирд┐рдпрд╛рджреА рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Fira рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ (рдФрд░ рдпрджрд┐ рдЕрдиреНрдп рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдлрд╝реЙрдиреНрдЯ рдирд╣реАрдВ рд╣реИрдВ) рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд╛рдордХ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ рдЕрднреА рддрдХ opentype.js ( рдпреЛрдЬрдирд╛ рдХреЗ рддрд╣рдд рд╕реВрдЪреАрдмрджреНрдз) рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдЖрд╡рд╢реНрдпрдХ GSUB рддрд╛рд▓рд┐рдХрд╛ рдХреЛ JSON рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рд╡рд╣ рд╕рдм рдЧрд╛рдпрдм рд╣реИ рдЬреЛ рддрд╛рд▓рд┐рдХрд╛ рдбреЗрдЯрд╛ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╣реИред

  • рдлрд┐рд░рд╛ рдХреЛрдб рд▓рд┐рдЧреБрд░рд┐рдВрдЧ (рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореВрд▓ рдЧреНрд▓рд┐рдлрд╝ рдХреЛ рдЧреНрд▓рд┐рдлрд╝ рдХреА рд╕рдорд╛рди рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдмрдЬрд╛рдп рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪреМрдбрд╝реЗ рдПрдХ (рдореЛрдиреЛрдкреЗрд╕ рдлрд╝реЙрдиреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП)ред ==> рдЬреИрд╕реА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдлрд╝реЙрдиреНрдЯ рдЖрдкрдХреЛ рджреЛ "LIG" рдЕрдХреНрд╖рд░ (рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдерд╛рди) рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдЧрд╛, рдЗрд╕рдХреЗ рдмрд╛рдж рд▓рд┐рдЧрдЪрд░ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧреНрд▓рд┐рдлрд╝ рд╣реЛрдЧрд╛, рдЬреЛ рдЕрднреА рднреА рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдореЛрдиреЛрдХреНрд░реИрд╕ рд╣реИ рдЪрд░рд┐рддреНрд░ рд╡реНрдпрд╛рдкрдХред рдЕрд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рдПрдХрд▓ рдЪреМрдбрд╝рд╛рдИ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЕрдВрддрд┐рдо рд╡рд░реНрдг рдХрд╛ рдкрде рдЗрд╕рдХреЗ рдкрд╣рд▓реЗ рджреЛ LIG рд╡рд░реНрдгреЛрдВ рдХреЗ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ рд╕реНрдерд╛рди рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░рд┐рддреНрд░ рдХреЗ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рдИрдВ рдУрд░ рд╕реЗ рдЖрдЧреЗ рддрдХ рдлреИрд▓рд╛ рд╣реБрдЖ рд╣реИред рдПрдХ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджреЗрдЦреЗрдВ (0 рдФрд░ 600 рдЪрд░рд┐рддреНрд░ рдХреЗ рдмреЙрдХреНрд╕ рдХреЗ рдХрд┐рдирд╛рд░реЗ рд╣реИрдВ)ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рд░реЗрдВрдбрд░рд░ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдпрджрд┐ рдЗрд╕реЗ xterm.js рдореЗрдВ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

image

  • рдЗрд╕рдореЗрдВ рдПрдХ рдФрд░ рд╢рд┐рдХрди рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд░рд╣реА рд╣реИ рдХрд┐ рд▓рд┐рдЧрдЪрд░ рдХрд╛ рдкреБрдирд░реНрдореВрд▓реНрдпрд╛рдВрдХрди рдХрдм рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдЧрд░ рдореИрдВ рд▓рдЧрд╛рддрд╛рд░ = рдЪрд╛рд░ рдмрд╛рд░ рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛, рдлрд┐рд░ рдПрдХ рдбрдмрд▓ рд▓рд┐рдЧрдЪрд░, рдлрд┐рд░ рдПрдХ рдЯреНрд░рд┐рдкрд▓ рд▓рд┐рдЧрдЪрд░ рдХреЗ рдмрд░рд╛рдмрд░, рдлрд┐рд░ рдЪрд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рд┐рдЧрдЪрд░ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рдпрдореЛрдВ рдореЗрдВ рдореИрдкрд┐рдВрдЧ рд╣реЛрддреА рд╣реИ (рдЕрд░реНрдерд╛рдд рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рдЗрдирдкреБрдЯ '=' рд╣реИ рдФрд░ рдкрд┐рдЫрд▓реЗ рддреАрди рдЕрдХреНрд╖рд░ '===' рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд░реАрдкреИрдк рди рдХрд░реЗрдВ), рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реЛрдЧрд╛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЙрди рдирд┐рдпрдореЛрдВ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред

  • OpenType рдЬрдЯрд┐рд▓ рд╣реИред рдореЛрдЯреЗ рддреМрд░ рдкрд░, рдореИрдВ рдПрдХ рдлрд╝реЙрдиреНрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рд╡рд┐рдзрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рд╣реИред рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд┐рдирд╛ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдореИрдкрд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкрд░ рд╣рдорд▓рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЙрдЪрд┐рдд рддрд░реАрдХрд╛ рдЖрдХрд╕реНрдорд┐рдХ рд╣реИред Fira Code рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Chaining Context рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рдкреНрд░рд╛рд░реВрдк 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрдиреНрдп рд▓реЛрдХрдкреНрд░рд┐рдп рдлрд╝реЙрдиреНрдЯ рд╣реИрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╢рдмреНрджрд╛рд░реНрде рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдВрднрд╡рдд: рдпрд╣ рдПрдХ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

@princjef рдЕрдкрдиреЗ рдЕрдиреНрд╡реЗрд╖рдгреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорджрджрдЧрд╛рд░! рдореИрдВ рднреА рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд░рдЦ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдЖрдпрд╛ рд╣реВрдВ:

  • рдмрд┐рд▓реНрдб-рдЗрди API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрдмрдлреЛрдиреНрд╕ рдореЗрдВ рд▓рд┐рдЧрдЪрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд▓рдЧрддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ)
  • рдХреБрдЫ рд▓рд┐рдЧрдЪрд░ рдРрд╕реЗ рд╣реИрдВ рдЬреЛ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдлрд╝реЙрдиреНрдЯ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реЛ (рдЬреИрд╕реЗ li )
  • рд▓рд┐рдЧреЙрд░реЗрдЯреНрд╕ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рдЙрдкрд╕рдореБрдЪреНрдЪрдп рд╣реИ рдЬреЛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рдЕрдзрд┐рдХрд╛рдВрд╢ рдлрд┐рд░рд╛ рдХреЛрдб рд▓рд┐рдЧреНрд░реЗрд╕реЗрд╕ред
  • рдПрдХ рдЪрд░рд┐рддреНрд░ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдФрд░ рдХрдИ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдлреИрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рдПрдХрд▓-рдЪрд░рд┐рддреНрд░ рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рддрд┐рдкрд╛рджрди рджреГрд╖реНрдЯрд┐рдХреЛрдг (CharAtlas) рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдард┐рди рд╣реИред

рдЯреАрдмреАрдПрдЪ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рд┐рдЧрдореЗрдВрдЯреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ

@ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ xterm.js рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдХреЛрдг рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдХреЗ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЧрдЪрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ (рдХреБрдЫ

рдЙрд╕ рдЕрдВрдд рддрдХ, рдореИрдВрдиреЗ рдПрдХ рд╣реА рд╕рдореВрд╣ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ (рдПрдлрдЬреА, рдмреАрдЬреА, рдЖрджрд┐) рдХреЗ рд╕рд╛рде рдкрд╛рддреНрд░реЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рда рд░реЗрдВрдбрд░рд░ рдХреЛ рдЯреНрд╡рд┐рдХ рдХрд┐рдпрд╛ред рдпрд╣ рд╕рднреА рд▓рд┐рдЧрдореЗрдВрдЯреНрд╕ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ (рдФрд░ рдХреБрдЫ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП), рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╣реАрдВ рднреА рдПрдХ рд▓рд┐рдЧрдЪрд░ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд╣рд╛рдВ рдХреЛрдИ рднреА рдХрд┐рд╕реА рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░реЗрдЧрд╛ред рдпрд╣рд╛рдБ Fira рдХреЛрдб (рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрд░реЛрдо рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдПрдЬ рдирд╣реАрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдбреЗрдореЛ рдРрдк рдореЗрдВ NeoVIM рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

image

рд╢рд╛рдЦрд╛ рдпрд╣рд╛рдБ рд╣реИ рдЕрдЧрд░ рд▓реЛрдЧ рдПрдХ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ: https://github.com/princjef/xterm.js/tree/ligature-support

рдЗрд╕ рдкрд░ рдиреЛрдЯреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА:

  • рдореИрдВрдиреЗ рдХреЛрдИ рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдирд╣реАрдВ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╢рд░реНрдд рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╕рднреА рд╕рдорд╛рди-рд╕реНрдЯрд╛рдЗрд▓ рд╡рд╛рд▓реЗ рдкрд╛рддреНрд░реЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд╕рдореВрд╣рд┐рдд рдХрд░рдХреЗ, рдЪрд░рд┐рддреНрд░ рдПрдЯрд▓рд╕ рдореВрд▓ рд░реВрдк рд╕реЗ рдЦрд┐рдбрд╝рдХреА рд╕реЗ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрди рдЬрдЧрд╣реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЬрд╣рд╛рдВ рдХреЛрдИ рд▓рд┐рдЧрдЪрд░ рдирд╣реАрдВ рд╣реИрдВ (рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рд╡реЗ рдХрд╣рд╛рдВ рд╣реЛрдВрдЧреЗ / рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ)ред рдЬрдм рдореИрдВ рдХрдИ рд╡рд░реНрдгреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдг рдХреЛрдб Infinity рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдХрд┐рд╕реА рдХреИрд╢рд┐рдВрдЧ рд╕реЗ рдмрдЪреВрдВрдЧрд╛ред
  • рдЪрд░рд┐рддреНрд░ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреБрдЫ рдХрд┐рдирд╛рд░реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдФрд░ рдУрд╡рд░рд▓реИрдк рд╣реИ рдЬреЛ рдореИрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЬреНрдпрд╛рджрд╛рддрд░ рдПрдХ рд╕рдмреВрдд рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред

рдЪрд░рд┐рддреНрд░ рдПрдЯрд▓рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рда рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ, рдлрд┐рд░ рдЗрд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рддреЗ рд╣реБрдП рдкрд╛рда рдХреЗ рдПрдХ рдмреНрд▓реЙрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмреИрдХрдПрдВрдб рдореЗрдВ рд░реЗрдВрдбрд░ рдХрд░рдирд╛ рд╣реИ? рдпрджрд┐ рдПрдХ рд╣реА рдЫрд╡рд┐ рдореЗрдВ рджреЛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рдВрдпреБрдХреНрдд рдкрд╛рда рдХреЛ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдЯрд▓рд╕ рдкрд░ рд╡рд╛рдкрд╕ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдкрд╛рда рдХреЗ рддрд╛рд░реЛрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдХреЗ, рдпрд╣ рд╕реАрдЦрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рда рдХреЗ рдХреМрди рд╕реЗ рддрд╛рд░ рд▓рд┐рдЧреЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред

рдЙрд╕ рдХреЗ рд╕рд╛рде рдореБрд╢реНрдХрд┐рд▓ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рди рдХреЗрд╡рд▓ рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдкрд╛рддреНрд░реЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЙрдирдХреЗ рд╕рдВрджрд░реНрдн рднреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, '=== 1' рдХреЛ рддреАрди рд╕рдорд╛рди рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди '====' рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рдорд╛рди рддреАрди рд╕рдорд╛рди рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕рдВрджрд░реНрдн рдХрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреА рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдм рдПрдХ рд▓рд┐рдЧрдЪрд░ рдХреЛ рдЗрд╕рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рд╣реА рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рдпрдореЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдХрдард┐рди рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐-рдкреНрд░рд╡рдг рд╣реЛрдЧрд╛ред

рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп (рд▓реЗрдХрд┐рди рдХрдо рдкреЛрд░реНрдЯреЗрдмрд▓) рджреГрд╖реНрдЯрд┐рдХреЛрдг рдПрдХ рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд▓рд┐рдЧрдЪрд░ рдкрд░реНрд╡рддрдорд╛рд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреЗрдд рд╣реИ рдЬреЛ рдлрд╝реЙрдиреНрдЯ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдЬрд╛рдирддрд╛ рд╣реИред рдлрд┐рд░ рд╕рдм рдХреБрдЫ рд▓реЗрдХрд┐рди рдмрд╛рд╣рд░реА рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рдПрдЯрд▓рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рджрд┐рдП рдЧрдП рд╕рдореВрд╣ рдКрдкрд░ рдХреЗ рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╛рда рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рджрд┐рдП рдЧрдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╡рд┐рд╕реНрддреГрдд рдХреА рд╣реИрдВ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЧрддрд┐ рдФрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдУрдкрдирд┐рдВрдЧ рд╕рдВрджрд░реНрдн рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдкрд░ рд╕рд╣реА рдлрд╝реЙрдиреНрдЯ рдЦреЛрдЬрдиреЗ рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛)ред

рдХреНрдпрд╛ рдпрд╣ рдЙрдЪрд┐рдд рд╣реЛрдЧрд╛ рдХрд┐ рд▓рд┐рдЧрд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрдЯрд┐рдВрдЧ рд╣реЛ, рдЬреЛ рд▓рд┐рдЦрддрд╛ рд╣реИ
рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдореЗрдВ рдПрдХ рдкреВрд░реА рд▓рд╛рдЗрди? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реЛрдЧрд╛
рд╕рд╣реА рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреА рдЧрд╛рд░рдВрдЯреА, рдФрд░ рдкреНрд░рджрд░реНрд╢рди рд╣рд┐рдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдкреНрдЯ-рдЗрди рд╣реЛрдЧрд╛
рдРрд╕реЗ рд▓реЛрдЧ рдЬреЛ рдЧрддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рд┐рдЧреБрд░реЗрдЯреНрд╕ рдХреА рдЕрдзрд┐рдХ рджреЗрдЦрднрд╛рд▓ рдХрд░рддреЗ рд╣реИрдВред

рд╕реВрд░реНрдп рдкрд░, рдЕрдкреНрд░реИрд▓ 22, 2018, 16:21 рдЬреЗрдл рдкреНрд░рд┐рдВрд╕рд┐рдкрд▓ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛ рд╣реИ:

рдЗрд╕рдХреЗ рд╕рд╛рде рдореБрд╢реНрдХрд┐рд▓ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдирд┐рд░реНрднрд░ рд╣реИ
рди рдХреЗрд╡рд▓ рд▓рд┐рдЧрдЪрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдкрд╛рддреНрд░реЛрдВ рдкрд░, рдмрд▓реНрдХрд┐ рдЙрдирдХреЗ рд╕рдВрджрд░реНрдн рднреАред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, '=== 1' рдХреЛ рддреАрди рд╕рдорд╛рди рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди
'====' рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рдорд╛рди рддреАрди рд╕рдорд╛рди рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рд╕рдВрджрд░реНрдн рдХрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреА рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрдард┐рди рд╣реЛрдЧрд╛ рдФрд░
рдЬрдм рд▓рд┐рдЧрдЪрд░ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рдпрдореЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐-рдкреНрд░рд╡рдг
рдмрд╕ рдЗрд╕рдХреЗ рдЙрддреНрдкрд╛рджрди рд╕реЗред

рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп (рд▓реЗрдХрд┐рди рдХрдо рдкреЛрд░реНрдЯреЗрдмрд▓) рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреЗрдд рд╣реИ
рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдкрд░реНрд╡рддрдорд╛рд▓рд╛ рдПрдХ рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕реЗ рдлрд╝реЙрдиреНрдЯ рдЬрд╛рдирддрд╛ рд╣реИ
рдореЗрдЯрд╛рдбреЗрдЯрд╛ред рдлрд┐рд░ рд╕рдм рдХреБрдЫ рд▓реЗрдХрд┐рди рдмрд╛рд╣рд░реА рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ
рдПрдЯрд▓рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рджрд┐рдП рдЧрдП рд╕рдореВрд╣ рдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдКрдкрд░ рд╡рд╛рд▓реЗ рдХреА рддрд░рд╣ред рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд╕реНрдерд╛рдиреЛрдВ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг
рдкрд╛рда рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ
рд╡рд┐рд╕реНрддреГрдд рдкрд╣рд▓реЗ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЧрддрд┐ / рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕рд╣реА рдлрд╝реЙрдиреНрдЯ рдЦреЛрдЬрдиреЗ рдкрд░
рдУрдкрдирдЯрд╛рдЗрдк рд╕рдВрджрд░реНрдн рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдЬрдЯрд┐рд▓рддрд╛)ред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЗрд╕ рдзрд╛рдЧреЗ рдХреА рд╕рджрд╕реНрдпрддрд╛ рджреА рдЧрдИ рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/xtermjs/xterm.js/issues/958#issuecomment-383420281 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAKyryMlayIQijY32GpWBmpvCUi13Wfbks5trRBigaJpZM4PRej6
ред

@princjef рд╡рд╛рд╣, рдЖрдкрдХреЗ рд╕рдВрдкрд╛рджрди рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ xterm рд░реЗрдВрдбрд░рд░ рдХреЗ рд╕рд╛рде ligatures рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЪрд╛рд▓ рд╕рд┐рд░реНрдл рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдирд┐рдпрдореЛрдВ рдХреЛ рдХреИрд╕реЗ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИред

@princjef рдорд╣рд╛рди рдЬрд╛рдВрдЪ!

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝реЙрдиреНрдЯ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ xterm.js рдХреА рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди xterm.js рджреНрд╡рд╛рд░рд╛ рдЙрдЬрд╛рдЧрд░ рд╣реБрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ / рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

@princjef рдореИрдВ рдЕрдВрддрд┐рдо рд▓рд┐рдЧрдЪрд░ рд╕рдкреЛрд░реНрдЯ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ:

  • some-magical-package : рдПрдХ рджреЗрд╢реА рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рдореВрд▓ рдлрд╝реЙрдиреНрдЯ рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡реЗрдм рдлрд╝реЙрдиреНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореИрдкрд┐рдВрдЧред рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рд╣рд┐рдЯ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП AsyncWorker рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдпрджрд┐ рдЗрд╕реЗ рдЖрд▓рд╕реНрдпрдкреВрд░реНрд╡рдХ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдкрд╣рд▓реЗ рд▓реЙрдиреНрдЪ рдкрд░ рдЗрд╕реЗ рд╕реНрдХреИрди рдХрд░рдиреЗ рдФрд░ рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред
  • xtermjs/xterm-ligature-support : рдПрдХ рдПрдбрдСрди рдЬреЛ рдиреЛрдб рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдХреИрд╢ рдлрд╝реЙрдиреНрдЯ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП some-magical-package рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдРрдбрдСрди рддрдм рднреА рд╕реНрдХреИрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдлреЛрдВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯреНрд░реА рдореЗрдВ рдЧреИрд░-рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдлреЛрдВрдЯ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлреЛрдВрдЯ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рдкрд░ рдлреЛрдВрдЯ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВред рдореИрдВ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рдПрдкреАрдЖрдИ рдХреА рддрд░рд╣ рдЗрд╕ рддрд░рд╣ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ:

    /** Returns a list of characters to be drawn together */
    export function getLigatures(fontFamily: string): string[] { ... }
    

рдХреБрдЫ рд▓рд┐рдЧрдЪрд░ рд╣реИрдВ рдЬреЛ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдлрд╝реЙрдиреНрдЯ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реЛ (рдЬреИрд╕реЗ рд▓реА)

@ mofux рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ? рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╣рдореЗрдВ рдЙрди рд╕рднреА рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдПрдХ рдЪрд░рд┐рддреНрд░ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдФрд░ рдХрдИ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдлреИрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рдПрдХрд▓-рдЪрд░рд┐рддреНрд░ рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рддрд┐рдкрд╛рджрди рджреГрд╖реНрдЯрд┐рдХреЛрдг (CharAtlas) рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдард┐рди рд╣реИред

@ mofux рд╣рдореЗрдВ рдЖрд╕рдиреНрди рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рдореВрд╣ рдХреЛ рдПрдХ рд╕рд╛рде рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@princjef : рдореИрдВрдиреЗ рдХреЛрдИ рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдирд╣реАрдВ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╢рд░реНрдд рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

@wavebeem : рдХреНрдпрд╛

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХреИрдирд╡рд╛рд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдХрд╛рд░ рджреЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рд╕реЗ рдХрдо рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд╣рдореЗрдВ рдПрдХ рдРрд╕реА рдЬрдЧрд╣ рдкрд░ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдЬрд╣рд╛рдВ рд▓рд┐рдЧрдЪрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдПрдХ рдРрдбрдСрди рдХреЛ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рднреА рдореИрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдПрдХ рдлреЙрд▓рдмреИрдХ DOM рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЕрднреА рдмрд╣реБрдд рд╕рд╛рд░реА рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдХреНрд░реЛрдорд┐рдпрдо рдореЗрдВ GPU рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЧрд▓рдд рд╣реЛ рд╕рдХрддреА рд╣реИрдВред Https://github.com/xtermjs/xterm.js/issues/1360 рджреЗрдЦреЗрдВ

рдЪрд░рд┐рддреНрд░ рдПрдЯрд▓рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рда рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ, рдлрд┐рд░ рдЗрд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рддреЗ рд╣реБрдП рдкрд╛рда рдХреЗ рдПрдХ рдмреНрд▓реЙрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмреИрдХрдПрдВрдб рдореЗрдВ рд░реЗрдВрдбрд░ рдХрд░рдирд╛ рд╣реИ? рдпрджрд┐ рдПрдХ рд╣реА рдЫрд╡рд┐ рдореЗрдВ рджреЛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рдВрдпреБрдХреНрдд рдкрд╛рда рдХреЛ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдЯрд▓рд╕ рдкрд░ рд╡рд╛рдкрд╕ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@ j-f1 рдпрд╣ рдЬрд┐рддрдирд╛ рд▓рдЧрддрд╛ рд╣реИ рдЙрд╕рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдкрд╛рддреНрд░реЛрдВ рдХреЛ рдПрдХ рд╣реА рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджреВрд╕рд░рд╛ рдПрдХ рдЕрд▓рдЧ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЪрд╛рд░реЛ рдПрдЯрд▓рд╕ рдореЗрдВ рдЕрдВрддрд░ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИ (рд╡рд░реНрдг рд╣рдореЗрд╢рд╛ рдПрдХ рдЧреЛрд▓ рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдЦреАрдВрдЪреЗ рдЬрд╛рддреЗ рд╣реИрдВ)ред рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд┐рдХреНрд╕рд▓реНрд╕ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдХрд┐ рдорд╣рдВрдЧрд╛ рд╣реИред

@ рдЯрд╛рдпрд░рд┐рдпрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╕рд╛рдорд╛рдиреНрдп рдбрд┐рдЬрд╛рдЗрди рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╣рдо _may_ some-magical-package рдореЗрдВ рдлрд╝реЙрдиреНрдЯ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрд╢реА рдХреЛрдб рдкрд░ рдирд┐рд░реНрднрд░ рди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рд╕реЗ рджреВрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо / рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ред рдореИрдВрдиреЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдиреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╣рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕рд╣реА рд╣реЛрдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред

рдореБрдЭреЗ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ some-magical-package рд▓рд┐рдП рдХреБрдЫ рдЕрд▓рдЧ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

export function getSubstitutionRanges(fontFamily: string, text: string): Promise<[number, number][]>;

Ligatures рд╕реНрд╡рдпрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рдпрдо рдЬрдЯрд┐рд▓ рдФрд░ рдмреЗрдХреНрдб рджреЛрдиреЛрдВ рд╣реА рдлрд╝реЙрдиреНрдЯ рдореЗрдВ рдмрд╣реБрдд рдЧрд╣рд░реЗ рд╣реИрдВред рд╕реНрд╡рдпрдВ рдлреЙрдиреНрдЯ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдФрд░ рдЗрд╕реЗ xterm.js рдкрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХрд╛ рднрд╛рд░ рдбрд╛рд▓ рджреЗрдВ, рдореИрдВ рдЗрд╕реЗ рджреВрд╕рд░реЗ рдкрд░рд┐рд╡рд╛рдж рдкрд░ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ рдФрд░ рдЗрд╕реЗ xterm.js рдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреМрди рд╕реЗ рд╡рд░реНрдгреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдВрджрд░реНрдн рдХреЗ рд▓реБрдХрд╣реЗрдб / рд▓реБрдХрдмрд╛рдЗрдВрдб рдкрд╣рд▓реВ рднреА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдХреЗ рд▓рд┐рдП '===' рдирдХреНрд╢реЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рд╣реИ рдЕрдЧрд░ рдпрд╣ рдПрдХ рдФрд░ рдмрд░рд╛рдмрд░ рдЪрд┐рд╣реНрди рджреНрд╡рд╛рд░рд╛ рдкреАрдЫрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдФрд░ рдзреНрдпрд╛рди рджреЗрдВ: рдЬреЛ рдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ (рдХрдо рд╕реЗ рдХрдо рдЬрдм рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ) рд╕реЗ рдПрдХ рд╣реА рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдХреА рд╕реАрдорд╛рдУрдВ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рдкрд░рд┐рд╕реАрдорди рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд╛рддреНрд░реЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рдЕрдиреБрдХреНрд░рдо рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд▓рдЧрд╛рддрд╛рд░ рд▓рд┐рдЧрдЪрд░ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рд╕реАрдорд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рддрд░рдХреАрдмреЗрдВ рдвреВрдВрдвреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡рдд: рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдореИрдВ рд╢рд╛рдпрдж рдЧрд▓рддреА рд╕реЗ рджреЛ рд▓рд┐рдЧреНрд░реЗрдЪрд░ рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЧрд▓рддреА рд╕реЗ рдмрдВрдЯрд╡рд╛рд░реЗ рдХреЗ рдмрдЬрд╛рдп рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рдХрд░ рджреВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрднреА рднреА рдПрдХ рд╕рдореВрд╣ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рднреА рдХреЛ рдПрдХ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реБрдП рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХрдорд╛рддреНрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореБрджреНрджрд╛ рд╡рд╣рд╛рдБ рд╡рд┐рд╖рдо рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИред

рдПрдХрдорд╛рддреНрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореБрджреНрджрд╛ рд╡рд╣рд╛рдБ рд╡рд┐рд╖рдо рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИред

рдмрд╕ рдирд╣реАрдВ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдирд┐рд░рдВрддрд░ рд╢реИрд▓реА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдкрд╛рд╕ рдХрд░реЗрдВред рдпрджрд┐ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдЕрд▓рдЧ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдЖрдк рд░реЗрдЦрд╛рдВрдХрд┐рдд рдкрд╛рда рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдкрд╡рд╛рдж рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рдРрд╕реА рдЪреАрдЬрд╝ рд╕реЗ рджреВрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рджреЗрд╢реА рдХреЛрдб рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ

ЁЯСН

Ligatures рд╕реНрд╡рдпрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рдпрдо рдЬрдЯрд┐рд▓ рдФрд░ рдмреЗрдХреНрдб рджреЛрдиреЛрдВ рд╣реА рдлрд╝реЙрдиреНрдЯ рдореЗрдВ рдмрд╣реБрдд рдЧрд╣рд░реЗ рд╣реИрдВред рд╕реНрд╡рдпрдВ рдлреЙрдиреНрдЯ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдФрд░ рдЗрд╕реЗ xterm.js рдкрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХрд╛ рднрд╛рд░ рдбрд╛рд▓ рджреЗрдВ, рдореИрдВ рдЗрд╕реЗ рджреВрд╕рд░реЗ рдкрд░рд┐рд╡рд╛рдж рдкрд░ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ рдФрд░ рдЗрд╕реЗ xterm.js рдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреМрди рд╕реЗ рд╡рд░реНрдгреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

@princjef рдпрд╣ рдФрд░ рднреА рдмреЗрд╣рддрд░ рд▓рдЧрддрд╛ рд╣реИ, рдХрдо xterm.js рдХреЛ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдмреЗрд╣рддрд░ рдХрд░рдирд╛ рд╣реИред

рдПрдХрдорд╛рддреНрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореБрджреНрджрд╛ рд╡рд╣рд╛рдБ рд╡рд┐рд╖рдо рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдЙрд╕реА рд╢реИрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рда рдХреЗ рд▓рд┐рдП ligatures рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдлреЙрдиреНрдЯ рдХреА рддрд░рдл рджреЗрдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдХреЛрдб рд╣реИрдВ рдЬреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдлрд┐рд░рд╛ рдХреЛрдб рдХреЗ рд╕рднреА рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд░реНрдгреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд░реЗрдВрдЬ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдПрдХ рдпрд╛ рджреЛ рдЕрдиреНрдп рдлреЛрдВрдЯ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╡реЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рднреА рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЕрдм рддрдХ рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЙрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ Fira Code рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдереЗ, рдЗрд╕рд▓рд┐рдП рдЕрдиреНрдп рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рд╡рд┐рдзрддрд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЕрднреА рднреА рдлреЙрдиреНрдЯ рд▓реБрдХрд┐рдВрдЧ рдкрд╛рд░реНрдЯ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдЙрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рд╡рд╣рд╛рдБ рдХреБрдЫ рдкреИрдХреЗрдЬ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рдпрд╛ рддреЛ рдЦрд░рд╛рдм рд▓рдЧ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдЦрд░рд╛рдм рдмрдиреЗ рд╣реБрдП рд╣реИрдВ

@princjef рдпрджрд┐ рдЖрдк рдЕрдиреНрдп рдлреЛрдВрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ Iosevka рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдареАрдХ рд╣реИ, рдореИрдВрдиреЗ рдПрдХ рдкреИрдХреЗрдЬ рдмрдирд╛рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ font-ligatures (aka some-magical-package ) рдФрд░ рдХреБрдЫ рд╕рдВрдмрджреНрдз рдкреИрдХреЗрдЬ рджрд┐рдП рдЧрдП рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рд╣реА рдлрд╝реЙрдиреНрдЯ рдвреВрдВрдв рд╕рдХреЗрдВ рдФрд░ рдлрд┐рд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХреЗрдВ рдХрд┐ рд▓рд┐рдЧрдЪрд░ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЯреЗрдХреНрд╕реНрдЯ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛рдВ рд╣реИрдВред

рдореИрдВрдиреЗ рдлрд╝реЙрдиреНрдЯ рдЦреЛрдЬрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ред ~ 150 ttf / otf рдлреЛрдВрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░реНрдлреЗрд╕ рдкреНрд░реЛ 4 рдкрд░ рдореИрдВ 300-400ms рдореЗрдВ рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рдлреЙрдиреНрдЯ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ I / O рдмрд╛рдзреНрдп рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдкрд╣рд▓реЗ рдХреБрдЫ рд░реЗрдВрдбрд░ рд╕рд╛рдЗрдХрд▓ рдХреЗ рд▓рд┐рдП рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдкрд░ рдХрд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рддреЗрдЬреА рд╕реЗ рд▓реЛрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХрд┐ рдПрдХ рдкреАрдЯреА рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдП рдФрд░ рдХреБрдЫ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдереВрдХ рджреЗрдВред рдПрдХ рдмрд╛рд░ рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣рдо рдЬреЛ рднреА рдЯреЗрдХреНрд╕реНрдЯ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЙрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдВрдбрд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рддрдм рднреА рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рднреА рдлрд╝реЙрдиреНрдЯ рдмрджрд▓рддрд╛ рд╣реИ рдпрд╛ рд╣рдо рдкрд╣рд▓реА рдмрд╛рд░ рдкреВрд░реА рд╕реВрдЪреА рдХреЛ рдХреИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдореИрдВ рд╡реИрд╕реЗ рднреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкреВрд░реА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ)ред

рдЬреИрд╕реЗ рд╣реА рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдорд╛рдирдЪрд┐рддреНрд░рдг рдХреЗ рд▓рд┐рдП, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдПрдХ рддрд╛рд░ рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдлрд╝реЙрдиреНрдЯ рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рдореВрд╣ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред CI рдореЗрдВ Fira Code, Iosevka рдФрд░ Monoid рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд▓рд┐рдЧрдЪрд░ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдкреВрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ рдХреБрдЫ рдлрд╝реЙрдиреНрдЯ рд╣реИрдВ рдЬреЛ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдореИрдВрдиреЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ)ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВрдиреЗ рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рдЕрдиреБрдХреВрд▓рди / рдЯреНрдпреВрдирд┐рдВрдЧ рдореЗрдВ рдХреЛрдИ рд╕рдордп рдирд╣реАрдВ рдмрд┐рддрд╛рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдХреБрдЫ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдФрд░ рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдордзреНрдпрдо рд▓рдВрдмрд╛рдИ рдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд▓рд┐рдЧреЙрд░рд╕ 2-20ms рд▓реЗрддрд╛ рд╣реИ (рдкрдврд╝реЗрдВ: 1 рдкрдВрдХреНрддрд┐)ред рдЕрднреА рднреА рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬрдЧрд╣ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рд╕рдордп рдмрд╣реБрдд рдЪрд┐рдВрддрд┐рдд рдирд╣реАрдВ рд╣реВрдВред рдореИрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдЯрд╛рдпрд░ рдХреЛ рд▓рд╛рдд рдорд╛рд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЕрдЧрд░ рд╡реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ @princjef! рдЖрдк 0xc0ffee , 0x1234 , рдФрд░ 17x32 рд▓рд┐рдП Fira Code рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ? ( x рдЙрди рдкрд░ рдПрдХ рдмрд╛рд░ рд╕рд╛рдЗрди рдЗрди рдХрд░реЗрдВ)

@princjef рдХрдорд╛рд▓!

рдореИрдВрдиреЗ рдХреБрдЫ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдФрд░ рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдордзреНрдпрдо рд▓рдВрдмрд╛рдИ рдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд▓рд┐рдЧреЙрд░рд╕ 2-20ms рд▓реЗрддрд╛ рд╣реИ (рдкрдврд╝реЗрдВ: 1 рдкрдВрдХреНрддрд┐)

рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреЛрдб рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ?

@ j-f1 рдЙрди рдХрд╛рдо рдХреЛ рднреА рдкреВрд░рд╛ рдХрд░реЗрдВ: https://github.com/princjef/font-ligatures/blob/master/src/index.spec.ts#L136 -L137

@Tyriar рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЬреЛрдбрд╝рд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдХреЙрд▓ рдкреИрдЯрд░реНрди node bench/lines.js <font-name> <input-text> [iterations] рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдЖрдк рдПрдХ рдмрд╣реБрд╕реНрддрд░реАрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рднреА рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдкрд╛рда рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рд░-рдмрд╛рд░ рд╕рдЯреАрдХ рдПрдХ рд╣реА рдЗрдирдкреБрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдХреВрд▓рди рд╕реЗ рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрдХреНрд░ рдХрд░реЗрдВрдЧреЗред

рдпрд╣ рд▓рд┐рдЦрддреЗ рд╣реБрдП рдХрд┐ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЬрдм рдореИрдВ рдЗрдирдкреБрдЯ рдХреА рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддрдм рднреА рдпрд╣ рдкрд╣рд▓реЗ рд░рди рдХреЗ рдмрд╛рдж рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрддрд╛ рд╣реИред ~ 10 рдЪрд░рд┐рддреНрд░ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП Iosevka рдХреЗ рд▓рд┐рдП рдПрдХ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдХреБрдЫ рдЕрдВрд╢ рдХрд╛ рдФрд╕рдд рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ Fira рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЖрдзрд╛ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХред рдпрд╛ рддреЛ рдореИрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЛ рдорд╛рд░ рд░рд╣рд╛ рд╣реВрдВ рдпрд╛ рдЯрд░реНрдмреЛрдлрди рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╣ рдЬрд╛рджреВ рд╣реИред рдпрд╣ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдХреБрд╢рд▓ рдирд╣реАрдВ рд╣реИ-рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдЧреЗ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджреВрдВрдЧрд╛ (рдЬрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рдореИрдВ рд╢рд╛рдпрдж рдмреЗрд╣рддрд░ рд╕реБрдзрд╛рд░ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рднреА рдЬреЛрдбрд╝реВрдВрдЧрд╛)ред

рдПрдХ рджреЛ рдиреЛрдЯ:

  • рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ, рдореИрдВ рдЗрдирдкреБрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ
  • Ligatures рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдХрд╛рд░рдг, Fira рдХреЛрдб Iosevka рдпрд╛ Monoid рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкрд░рд┐рдкреВрд░реНрдг рд╣реИред рдореИрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдлрд┐рдпреЛрд░рд╛ рдХреЛрдб рдХреЛ рдИрдУрд╕реЗрд╡рдХрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 5-10x рдЬрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред
  • рдмрд┐рдирд╛ рд▓рд┐рдЧрдЪрд░ рдХреЗ рдлреЛрдВрдЯ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдлрд╝реЙрдиреНрдЯ рдореЗрдВ рдХреЛрдИ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдореИрдВ рдПрдХ рдЦрд╛рд▓реА рдкрд░рд┐рдгрд╛рдо рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рддреЗрдЬрд╝ рдирд┐рдХрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдпрд╛ рд╣рдо рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рдХреЙрд▓ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдкреИрдХреЗрдЬ (https://github.com/princjef/font-ligatures/issues/2) рдкрд░ рдПрдХ рдореБрджреНрджреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдкрд╣рд▓реВ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдпрд╣рд╛рдВ рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЧрдИ рд╣реИ (рд╕рднреА рд╕рдВрдЦреНрдпрд╛рдПрдВ рдПрдордПрд╕ рдореЗрдВ рдмрд╛рд░ рд╣реИрдВ)ред рдкрд╣рд▓реЗ рдкрд╛рдБрдЪ рдирдВрдмрд░ рдХреЙрд▓рдо рдЗрдирдкреБрдЯ рдХреА рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ рдФрд░ рдЕрдВрддрд┐рдо рджреЛ рдкреНрд░рддрд┐ рд╡рд░реНрдг рд╣реИрдВред рджреВрд╕рд░рд╛ рдЕрдВрддрд┐рдо рдХреЙрд▓рдо рд╡рд╣ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ ~ 0.5 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдкреНрд░рддрд┐ рдЪрд░рд┐рддреНрд░ (0.0005 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ) рдХреЗ рд▓рд┐рдП рд╢реВрдЯрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

NAME | рдПрд╡реАрдЬреА | STDEV | 5% | 50% | 95% | AVG (CHAR) | STDEV (CHAR)
----------------------- | ------- | --------- | ------ | -------- | ------- | ------------- | ----------------
Fira рдХреЛрдб: code.txt | 5.9570 | 12.6951 | 0.5270 | 5.1020 | 12.2330 | 0.1443531 | 0.2091743 рд╣реИ
Fira рдХреЛрдб: noLigatures.txt | 12.1932 | 3.4402 | 8.1420 | 12.1205 | 15.5900 | 0.1321094 | 0.0334362 рд╣реИ
Iosevka: code.txt | 0.5571 | 1.4722 | 0.0485 | 0.3215 | 1.6155 | 0.0135005 | 0.0333483
Iosevka: noLigatures.txt | 0.7476 | 0.4230 | 0.4365 | 0.6030 | 1.7725 | 0.0080998 | 0.0044501 рд╣реИ
рдореЛрдиреЙрдпрдб: code.txt | 0.8896 | 1.6637 | 0.0910 | 0.6625 | 1.9225 | 0.0215566 | реж.режрек6реирезремрем
рдореЛрдиреЙрдЗрдб: noLigatures.txt | 1.6661 | 0.6935 | 1.0695 | 1.4450 | 2.6910 | 0.0180521 | 0.0071922 рд╣реИ
рдЙрдмрдВрдЯреВ рдореЛрдиреЛ: code.txt | рддрд╛рдЬ 2 | 0.3935 | 0.0080 | 0.0220 | 0.0605 | 0.0009735 | 0.0090228 рд╣реИ
рдЙрдмрдВрдЯреВ рдореЛрдиреЛ: noLigatures.txt | 0.0356 | 0.0644 | 0.0120 | 0.0280 | 0.0805 | 0.0003858 | 0.0006891

рдЕрдм рдЬрдм рдХрд┐ рдЕрдЪреНрдЫрд╛ рдЖрдзрд╛рд░рднреВрдд рдбреЗрдЯрд╛ рд╣реИ рддреЛ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдХрд┐рдП рдЧрдП рд▓рд╛рдн рдХрд╛ рдмреЗрд╣рддрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

@Tyriar рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ xterm-ligature-support рдкреИрдХреЗрдЬ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ?

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣ xtermjs org (рдЬреЛ рдореБрдЭреЗ рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ) рдХреЗ рддрд╣рдд рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдСрд░реНрдЧрди рдореЗрдВ рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдмрдирд╛рдиреЗ / рдкреБрд╢ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореБрдЭреЗ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рддрд╣рдд рдПрдХ рд░реЗрдкреЛ рдореЗрдВ рдбрд╛рд▓ рджреЗрдВрдЧреЗ рдЬреЛ рдСрд░реНрдЧрди рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдЖрдк рдПрдХ рд╕реНрдЯрдм рд░реЗрдкреЛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдореИрдВ рдкреАрдЖрд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рдирдЬрд░рд┐рдП рд╕реЗ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ # 1460 рдХреЛ рдкрд╣рд▓реЗ рддреЛ рдХреЛрдИ рдЬрд▓реНрджрдмрд╛рдЬрд╝реА рдирд╣реАрдВ рдереА, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рдмрд╛рд░ рдХреЛрдб рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЙрд╕реЗ рдХрд╣рд╛рдВ рдбрдВрдк рдХрд░рдирд╛ рд╣реИред

@princjef I рдиреЗ https://github.com/xtermjs/xterm-ligature-support рдмрдирд╛рдпрд╛ рдФрд░ рдЖрдкрдХреЛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХреАред рдореИрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рджреВрд╕рд░реЗ рдПрдбреЛрди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓рд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмрд╛рд╣рд░реА рдРрдбрдСрди рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ addons рдФрд░ https://github.com/CoderPad/xterm-webfont рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ

рдореИрдВ рдЬрд▓реНрдж рд╣реА рдкреАрдЖрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ soon

рдЗрд╕ https://github.com/microsoft/vscode/issues/34103 рдкрд░ vscode repo рдореЗрдВ рдЕрдкрдбреЗрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣рд╛рдБ рд╣рдо рд╢реЗрд╖ рдХрд╛рд░реНрдп xterm.js рдореЗрдВ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  • Xtermjs / xterm.js рд░реЗрдкреЛ рдореЗрдВ xtermjs / xterm-addon-ligatures рдПрдХреАрдХреГрдд рдХрд░реЗрдВ, рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рдХрд╛рд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рд╣реЛрддреЗ рд░рд╣реЗрдВ
  • рдбреЗрдореЛ рдореЗрдВ ligatures рд╣реБрдХ
  • рдХреБрдЫ рдХрдардкреБрддрд▓реА рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯ рдХрд░реЗрдВ рдЬреЛ рд╕рднреА рд░реЗрдВрдбрд░рд░реНрд╕ (рдбреЛрдо, рдХреИрдирд╡рд╛рд╕, рд╡реЗрдмрд▓рдЧ) рдкрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд▓рд┐рдЧрдЪрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ
  • рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдХрдо рдХрд░реЗрдВ

рдпрд╣рд╛рдБ рд╕рднреА рдХреЛ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! ЁЯШД ЁЯШД

рдЕрдЧрд░ рдореИрдВ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реВрдВ, @Tyriar , рдХреНрдпрд╛ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ?

рдореИрдВрдиреЗ рдпрд╣ рднреА рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдкрд░ рд╕реНрд▓реЛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдореИрдВ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдХрд┐рддрдирд╛ рдзреАрдорд╛ рдерд╛ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛?

рдзрдиреНрдпрд╡рд╛рдж!

@ torch2424 рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐

@Tyriar рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдпрд╣ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдерд╛ред рд╣рдо рдПрдХ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдлреАрдЪрд░ an рдзрдиреНрдпрд╡рд╛рдж!

рд╣рдореНрдо рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рддреЛ рдПрдХ webfont рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рдЙрд╕реА рдлреЙрдиреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ (urgh) рдХреЛ рдЬреЗрдПрд╕ рд▓реЛрдореНрд╕ рдореЗрдВ рд▓рд┐рдЧрдЪрд░ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рдХрд░рдХреЗред рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╡ рд╣реИ / рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдирд┐рд╖реНрдХрд░реНрд╖рдг рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдПрдХ рдмрдбрд╝рд╛ рджрдВрдд рд╣реИред рдореЗрдо рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рдПрдХ рдлрд╝реЙрдиреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛рдлреА рдмрдбрд╝реА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╢рд╛рдпрдж

рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЗрдЦрд╛, рддрдм рд╕реЗ рдХреБрдЫ рд╕рдордп рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рд╕реНрдорд░рдг рдпрд╣ рдерд╛ рдХрд┐ рд╡реЗрдм рдлреЛрдВрдЯ рдХреЗ рд▓рд┐рдП рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрдЪреНрдЪреА рдлрд╝реЙрдиреНрдЯ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдореЗрдВ рдХреЛрдИ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдпрджрд┐ рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд╡реЗрдм рдлрд╝реЙрдиреНрдЯ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд▓рд┐рдЧреЛрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдореЗрдВ рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд░реЗрдВрдбрд░ рдореЗрдВ рдЧреНрд▓рд┐рдлрд╝ рдХреИрд╢рд┐рдВрдЧ рдЕрдиреБрдХреВрд▓рди рдХреЛ рдЫреЛрдбрд╝ рджреЗрдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИред рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдореМрдЬреВрджрд╛ рдРрдбрдСрди рдХреЛ рдЙрд╕ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдХрд░ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдЧреИрд░-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордиреНрд╡рдп рдФрд░ рдореИрдиреБрдЕрд▓ рд╡рд╛рдпрд░рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╡ рд╣реИ / рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдирд┐рд╖реНрдХрд░реНрд╖рдг рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдПрдХ рдмрдбрд╝рд╛ рджрдВрдд рд╣реИред рдореЗрдо рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рдПрдХ рдлрд╝реЙрдиреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛рдлреА рдмрдбрд╝реА рд╣реЛ рд╕рдХрддреА рд╣реИ

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдлреЛрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреИрдХреЗрдЬ рдХреЛ рд▓реБрдХрдЕрдк / рдбрд┐рдЯреЗрдХреНрд╢рди рдХреА рджрдХреНрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рднрд╛рд░реА рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЕрдм рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд▓реЛрдбрд┐рдВрдЧ рд╕рдордп рдФрд░ рдореЗрдореЛрд░реА рдЦрдкрдд рдХреА рд▓рд╛рдЧрдд рдкрд░ рдЖрддрд╛ рд╣реИред рдпрд╣ рдлрд╝реЙрдиреНрдЯ рд╕реЗ рдлрд╝реЙрдиреНрдЯ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рдпрджрд┐ рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рдерд╛, рддрдм рднреА рд╡реЗрдм рдПрдкреАрдЖрдИ рдЯреЗрдХреНрд╕реНрдЯ / рдХреИрд░реЗрдХреНрдЯрд░ рдХреЛрдб рдкреЙрдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдлрд╝реЙрдиреНрдЯ рдХреЗ рдЕрдВрджрд░ рд▓рд┐рдЧрдореЗрдВрдЯреНрд╕ рдлрд╝реЙрдиреНрдЯ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧреНрд▓рд┐рдлрд╝ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рд╡реЗрдм рдПрдкреАрдЖрдИ рдореЗрдВ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рд┐рд░ рдХреЗ рд▓рд┐рдП @princjef Thx, рдпрд╣ рдмреЛрдЭрд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рд▓рд╛рдпрдХ рдирд╣реАрдВ imhoред

@khaledhosny рдЬреЗрдПрд╕ рдореЗрдВ рдлреЛрдВрдЯ рд╕реЗ рд╕рдВрдпреБрдХреНрддрд╛рдХреНрд╖рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдЕрдзрд┐рдХ рдерд╛, рдЬрдмрдХрд┐ рдЕрднреА рднреА

рдЗрд╕ рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА рдХреЛрдбрдмреЗрд╕ (https://github.com/xtermjs/xterm.js/pull/2847) рдореЗрдВ рд▓рд┐рдЧреНрдпреБрдЕрд░реНрд╕ рдПрдбрдСрди рдХреЛ рдорд░реНрдЬ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдЕрднреА рднреА рдереЛрдбрд╝рд╛ рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдЯреЗрд╕реНрдЯ рд╕реЗрдЯрдЕрдк рдХреЗ рдмрд┐рдирд╛ рдмрддрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ ( https://github.com/xtermjs/xterm.js/issues/2896)ред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдбрдСрди рдХреЗрд╡рд▓ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ + рдиреЛрдб рд░рдирдЯрд╛рдЗрдо (рдпрд╛рдиреА рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди) рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ, рдореИрдВ рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛ рдЬреЛ рдореБрдЭреЗ рдХреЗрд╡рд▓ рдЙрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдиреЛрдб рдбрд┐рдкреНрд╕ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдФрд░ рд╡реАрдПрд╕ рдХреЛрдб (https: /) рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред /github.com/microsoft/vscode/issues/34103)ред рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рднреА рдпрд╣ рд╢реЙрдЯ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рддреЛ рдЙрд╕реЗ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд╕рд╛рде рд▓реЗрдмрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред https://github.com/xtermjs/xterm.js/issues/2897

рд╣рдореЗрдВ рд▓рд┐рдЧреЗрдВрдбрд░реНрд╕ рдРрдбрдСрди рдХреЗ рд▓рд┐рдП рдлрд╝реЙрдиреНрдЯ рдПрдХреНрд╕реЗрд╕ рдПрдкреАрдЖрдИ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореВрд▓ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ ttyd рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛

image

@UziTech рдУрд╣ рд╡рд╛рд╣, рдпрд╣ рднрдпрд╛рдирдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЬреЛ рднреА рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╣рдо рдЗрд╕реЗ рдлреЙрдиреНрдЯ рдПрдХреНрд╕реЗрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд▓реЗ рд╕рдХреЗрдВред

@UziTech @Tyriar @princjef
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд╝реЙрдиреНрдЯ рдПрдХреНрд╕реЗрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдХреЛрдб font-ligatures рдкреИрдХреЗрдЬ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рдХреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпрд╛ рдиреЛрдб / рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдореЗрдВ рд╣реИ, рдпрд╣ рддрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдлрд╝реЙрдиреНрдЯ рдПрдХреНрд╕реЗрд╕ рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдпрд╛ рд╡рд░реНрддрдорд╛рди рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдореИрдВрдиреЗ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдПрдХ рд╣реИрдбреА рдкреНрд░реВрдл рдмрдирд╛рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдореЗрд░реЗ рдХрд╛рдВрдЯреЗ (рд▓реЛрдХрд▓рдлреЛрдиреНрд╕ рд╢рд╛рдЦрд╛) рдореЗрдВ рдбреЗрдореЛ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ
Screenshot 2021-01-17 at 18 39 27

рдЖрдк #font-access chrome://flags рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдлреЛрдВрдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдмрд╛рд░ рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)

рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдЬрдирд╕рдВрдкрд░реНрдХ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред

рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рдХреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпрд╛ рдиреЛрдб / рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдореЗрдВ рд╣реИ, рдпрд╣ рддрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдлрд╝реЙрдиреНрдЯ рдПрдХреНрд╕реЗрд╕ рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдпрд╛ рд╡рд░реНрддрдорд╛рди рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд╣рдо рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЬреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдХреЗрд╡рд▓ рд╡реЗрдм рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рдиреЛрдб рдбрд┐рдкреЛ рдХреЛ рдмрдВрдбрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрдВрдЧреАред рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрддреНрддрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рд╣рдо рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдлрд╛рд▓рдмреИрдХ рдкрд╣реБрдБрдЪ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ (рдЕрдВрддрддрдГ?) рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдбрд┐рдлреЙрд▓реНрдЯ рдХреЛ рдлреНрд▓рд┐рдк рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдорд╣рд╛рди рдХрд╛рдо! рд╡рд╣ рднрдпрд╛рдирдХ ЁЯШН рд╣реИ

рд╣рдо рдХреЗрд╡рд▓ рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдлрд╝реАрдЪрд░ рдбрд┐рдЯреЗрдХреНрд╢рди рдХреЗ рдмрд╛рдж require рдЙрдиреНрд╣реЗрдВ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред
рдФрд░ рдЖрд╢реНрд░рд┐рдд рд╡реЗрдм рдХреЗрд╡рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЙрдиреНрд╣реЗрдВ рдмрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдмрд╛рд╣рд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣рдо рдлрд╝реЙрдиреНрдЯ рдПрдХреНрд╕реЗрд╕ рдПрдкреА рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВред

Ounds рдореИрдВ рдмрдВрдбрд▓рд░ рдЪрд┐рдВрддрд╛ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдирд┐рдХрд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдо рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рд╡рд┐рдХрд▓реНрдк рдХреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдореЗрдВ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЕрдкрдЧреНрд░реЗрдб / рдЪрд░рдгрдмрджреНрдз рдХрд░реЗрдВрдЧреЗред

@Tyriar рдХреНрдпрд╛ рд╣рдо рдЬрд▓реНрдж рд╣реА рдлреЙрдиреНрдЯ-рдлрд╛рдЗрдВрдбрд░ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рд▓рд┐рдЧреБрд░реЗрдЯреНрд╕ рдПрдбрдСрди рдХреА рдПрдХ рд░рд┐рд▓реАрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@UziTech [email protected] рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐, рдореИрдВрдиреЗ 4.10 https://github.com/xtermjs/xterm.js/issues/3220 рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЯрдХреНрдХрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рдмрдирд╛рдпрд╛ рд╣реИред

рдореИрдВрдиреЗ рдПрдХ pr prcjef / font-ligatures # 22 рдЦреЛрд▓рд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдкрд╣рд▓реЗ рдЪрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

LB-J picture LB-J  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

chris-tse picture chris-tse  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

johnpoth picture johnpoth  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

7PH picture 7PH  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

goxr3plus picture goxr3plus  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ