Highlightr - это синтаксис iOS и MacOS, построенный с Swift. Он использует hight.js в качестве ядра, поддерживает 185 языков и поставляется с 89 стилями.
Берет вашу хромую строку с кодом и возвращает NSAttritbittingString с надлежащим синтаксисом.
Кокоподы являются менеджером зависимостей для какао -проектов. Вы можете установить его со следующей командой:
$ gem install cocoapods Чтобы интегрировать Highlightr в ваш проект Xcode с использованием кокопод, укажите его в своем Podfile :
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
target '<Your Target Name>' do
pod 'Highlightr'
endЗатем запустите следующую команду:
$ pod installКарфаген - это децентрализованный менеджер зависимостей, который строит ваши зависимости и предоставляет вам двоичные рамки.
Вы можете установить Carthage с Homebrew, используя следующую команду:
$ brew update
$ brew install carthage Чтобы интегрировать Highlightr в ваш проект Xcode с помощью Carthage, укажите его в своем Cartfile :
github "raspu/Highlightr"
Запустите carthage update , чтобы построить рамку и перетащить встроенный Highlightr.framework в свой проект Xcode.highlightr
Highlightr предоставляет два основных класса:
Это основная конечная точка, вы можете использовать его для преобразования строк кода в NSAttributed Strings.
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, чтобы анализировать код с помощью hight.js. Это на самом деле довольно быстро!
Это никогда не будет так быстро, как нативное решение, но его достаточно быстро, чтобы его использовали в редакторе в реальном времени.
Он поставляется с индивидуальным HTML-анализатором для создания nsattritbittdtingStrings, предварительно обрабатывает темы и предварительно загружает библиотеки JS. В результате он занимает около 50 мс на моем iPhone 6s для обработки 500 строк кода.
Вы можете найти документацию для последнего выпуска на Cocoadocs.
Highlightr доступен по лицензии MIT. Смотрите файл лицензии для получения дополнительной информации.
Hight.js доступен по лицензии BSD. Вы можете найти файл лицензии здесь.