Синтаксическая раскраска в латексе с использованием Minted - PullRequest
2 голосов
/ 02 мая 2011

У меня был вопрос относительно того, возможно ли получить пакет minted или пакет texments для цвета синтаксиса, как вы видели бы в xcode. Не обязательно одинаковые цвета, это не имеет значения, но чтобы выделить все типы переменных и тому подобное.

Примером этого может быть то, что когда я использовал minted, такие вещи, как @synthesize, float, int, все подсвечиваются, но NSArray или NSMutableDictionary - нет.

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

Заранее благодарим за любую помощь!

1 Ответ

1 голос
/ 02 мая 2011

К сожалению, это (легко) невозможно.

minted и texments опираются на лексический анализ кода. Лексический анализ сравнительно прост и эффективен, но это только первый этап анализа исходного кода.

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

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

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

...