2015-06-30 2 views
-1

У меня есть приложение, которое экспортирует код Objective-C и Swift.Форматировать строку, используя цвета выделения кода Xcode

В окне предварительного просмотра для этого авто сгенерированного кода, я хотел бы, чтобы форматировать текст с теми же цветами тема по умолчанию Xcode использует то есть зеленый для комментариев, синий для чисел, красный для строк фиолетовых для имен классов и т.д.

Приложения, такие как PaintCode, могут достичь этого. Кто-нибудь знает библиотеку или другие способы ее создания.

Paint Code with formatted code preview

ответ

1

Вам потребуется лексера разделить текст на части: идентификаторы, символы, строки и число литералов, комментарии и т.д. Дальнейшее чтение о lexers on Wikipedia.

Затем вы должны знать, какой цвет применять на них, включая идентификаторы разного типа: ключевые слова, функции, переменные, типы и т. Д. Для них вы можете управлять списками и искать их.

Для синтаксического анализа, хорошее место для начала - NSScanner или просто перейдите по текстовому символу по символу. Так мы делаем это в PaintCode.

Для самой окраски просто используйте NSAttributedString и NSForegroundColorAttributeName. В Core Text нет необходимости.

Смежные вопросы