CodeEditApp / CodeEditApp/CodeEdit

✨ Support fallback fonts in Text Editing preferences

Ouverte
#1,032 1 commentaire 1 réaction 0 personnes assignées Voir sur GitHub
enhancement
Langage dominant
Swift
Étoiles
23k
Forks
1.2k
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

### Is your feature request related to a problem? Please describe.

No

### Describe the solution you'd like

Hello,

Currently, the **Text Editing** settings allow users to select one font only. In many cases, one font is not enough to cover up the Unicode characters that need. We could use multiple fonts to work as a font chain, just like the CSS `font-family`.

In Cocoa, there is a way to combine multple fonts as one NSFont instance, sample code:

~~~swift
static func combinedFont(from fontNames: [String], size: CGFloat) -> NSFont? {
guard let primary = fontNames.first, let primaryFont = NSFont(name: primary, size: size) else { return nil }
let primaryDescriptor: NSFontDescriptor = primaryFont.fontDescriptor
let descriptors: [NSFontDescriptor] = fontNames.dropFirst().map { name -> NSFontDescriptor in
return primaryDescriptor.addingAttributes([.name: name])
}
let descriptor: NSFontDescriptor = primaryDescriptor.addingAttributes([.cascadeList: descriptors])
return NSFont(descriptor: descriptor, size: size)
}
~~~

### Describe alternatives you've considered

Maybe we could put a TextField in **Text Editing** settings, let users to enter the font names they wanted.

### Additional context

screenshot-text-editing

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par examiner les préférences de Text Editing et la manière dont l’éditeur applique actuellement sa seule police sélectionnée. Consultez l’exemple fourni de Cocoa NSFont cascadeList et envisagez l’alternative TextField pour saisir les noms de polices. Le travail sera considéré comme terminé lorsque les utilisateurs pourront configurer plusieurs polices de repli et voir les caractères Unicode rendus via la chaîne de polices.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
macos, swift
Domaine
desktop
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.