HighLightr est un surligneur de syntaxe iOS et macOS construit avec Swift. Il utilise Highlight.js comme core, prend en charge 185 langues et est livré avec 89 styles.
Prend votre chaîne boiteuse avec du code et renvoie un NSATTRIBLETSTRING avec une mise en surbrillance de syntaxe appropriée.
Cocoapods est un gestionnaire de dépendances pour les projets de cacao. Vous pouvez l'installer avec la commande suivante:
$ gem install cocoapods Pour intégrer HighLightr dans votre projet Xcode à l'aide de cocoapods, spécifiez-le dans votre Podfile :
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
target '<Your Target Name>' do
pod 'Highlightr'
endEnsuite, exécutez la commande suivante:
$ pod installCarthage est un gestionnaire de dépendances décentralisé qui construit vos dépendances et vous fournit des cadres binaires.
Vous pouvez installer Carthage avec Homebrew en utilisant la commande suivante:
$ brew update
$ brew install carthage Pour intégrer HighLightr dans votre projet Xcode à l'aide de Carthage, spécifiez-le dans votre Cartfile :
github "raspu/Highlightr"
Exécutez carthage update pour construire le cadre et faire glisser le Highlightr.framework construit dans votre projet Xcode.HighLightr
HighLightr fournit deux classes principales:
C'est le point de terminaison principal, vous pouvez l'utiliser pour convertir les chaînes de code en chaînes nsattribuées.
let highlightr = Highlightr ( )
highlightr . setTheme ( to : " paraiso-dark " )
let code = " let a = 1 "
// You can omit the second parameter to use automatic language detection.
let highlightedCode = highlightr . highlight ( code , as : " swift " )
Une sous-classe de NSTextStorage, vous pouvez l'utiliser pour mettre en évidence le texte en temps réel.
let textStorage = CodeAttributedString ( )
textStorage . language = " Swift "
let layoutManager = NSLayoutManager ( )
textStorage . addLayoutManager ( layoutManager )
let textContainer = NSTextContainer ( size : view . bounds . size )
layoutManager . addTextContainer ( textContainer )
let textView = UITextView ( frame : yourFrame , textContainer : textContainer ) Oui, HighLightr s'appuie sur iOS & MacOS JavaScriptcore pour analyser le code en utilisant Highlight.js. C'est en fait assez rapide!
Il ne sera jamais aussi rapide qu'une solution native, mais il est assez rapide pour être utilisé sur un éditeur en temps réel.
Il est livré avec un analyseur HTML fabriqué sur mesure pour la création de NSAttributedStrings, prétraitement les thèmes et précharge les bibliothèques JS. En conséquence, il prend environ 50 ms sur mon iPhone 6s pour traiter 500 lignes de code.
Vous pouvez trouver la documentation de la dernière version sur Cocoadocs.
HighLightr est disponible sous la licence du MIT. Voir le fichier de licence pour plus d'informations.
Highlight.js est disponible sous la licence BSD. Vous pouvez trouver le fichier de licence ici.