Highlightrは、Swiftで構築されたiOS&MacOS構文ハイライターです。 CoreとしてHighlight.jsを使用し、185の言語をサポートし、89のスタイルが付属しています。
コードで足の不自由な文字列を取り、適切な構文強調表示でnsattributedstringを返します。
Cocoapodsは、Cocoaプロジェクトの依存マネージャーです。次のコマンドでインストールできます。
$ gem install cocoapods Cocoapodsを使用してHighlightrをXcodeプロジェクトに統合するには、 Podfileで指定します。
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
target '<Your Target Name>' do
pod 'Highlightr'
end次に、次のコマンドを実行します。
$ pod installCarthageは、依存関係を構築し、バイナリフレームワークを提供する分散型依存関係マネージャーです。
次のコマンドを使用して、HomeBrewでCarthageをインストールできます。
$ brew update
$ brew install carthage Carthageを使用してHighlightrをXcodeプロジェクトに統合するには、 Cartfileで指定します。
github "raspu/Highlightr"
carthage updateを実行してフレームワークを構築し、構築されたHighlightr.frameworkをXcodeプロジェクトにドラッグします。highlightr
Highlightrは2つの主要なクラスを提供します。
これがメインエンドポイントです。これを使用して、コード文字列をnsattributed文字列に変換できます。
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 " )
nstextStorageのサブクラスであるため、テキストをリアルタイムで強調表示することができます。
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 ) はい、HighlightrはiOSおよびMacOS JavaScriptCoreに依存して、highlight.jsを使用してコードを解析します。これは実際には非常に速いです!
ネイティブソリューションほど速くなることはありませんが、リアルタイムエディターで使用するのに十分な速さです。
NSattributedStringsを作成するためのカスタムメイドのHTMLパーサーが付属しており、テーマを前処理し、JSライブラリをプリロードしています。その結果、500行のコードを処理するために、iPhone 6sで50ミリ秒を約50ミリ秒かかります。
Cocoadocsの最新リリースのドキュメントを見つけることができます。
HighlightrはMITライセンスの下で利用できます。詳細については、ライセンスファイルを参照してください。
Highlight.jsは、BSDライセンスの下で利用できます。ここでライセンスファイルを見つけることができます。