Каков наилучший способ реализовать подсветку синтаксиса исходного кода в Cocoa?[закрыто]

StackOverflow https://stackoverflow.com/questions/754591

Вопрос

Я работаю над приложением Cocoa, которое должно уметь анализировать и выделять исходный код, написанный на таких языках, как Objective-C, SQL, JavaScript, Python и т.д.Текст также должен быть доступен для редактирования (например, с помощью NSTextView).

Пожалуйста, посоветуйте, как лучше всего реализовать такую функцию в Mac OS X 10.5.

Нет необходимости поддерживать автозаполнение и другие дополнительные функции.Простое форматирование по ключевым словам, строкам, #includes и числам, но с отличной производительностью - это просто нормально.

Кроме того, было бы здорово, если бы поддерживалась настройка по языкам.

Спасибо!

Это было полезно?

Решение

При подготовке проекта, который потребует чего-то подобного, я нашел следующее (но не оценил их подробно):

  • В /Developer/Examples/OpenGL/Cocoa/GLSLEditorSample реализована подсветка синтаксиса.
  • ИДЕКит, “фреймворк с открытым исходным кодом, который обеспечивает редактирование исходного кода программиста, включая раскраску синтаксиса, всплывающие функции и разделение фреймов”.Это не обновлялось некоторое время (оно рекламирует совместимость с 10.2 и 10.3 и поставляется с Project Builder project – может быть преобразовано с помощью Xcode 2.5).
  • UKSyntaxColoredTextDocument - Документ с цветным текстом.

Другие советы

Я бы поддержал совет Ахрумана - особенно внимательно посмотрите на UKSyntaxColoredTextDocument Ули, поскольку это укажет вам правильное направление относительно того, какие классы и т.д.вам придется узнать об этом подробнее.

Это еще один отличный источник информации:

http://www.cocoadev.com/index.pl?ImplementSyntaxHighlighting

Удачи - правильную подсветку синтаксиса добиться сложно, но на этом пути будет очень весело!

Недавно мне пришлось искать решение для подсветки синтаксиса для Cocoa, и после поиска в Stack Overflow Google и GitHub не смогли найти ничего современного, простого в повторном использовании и все еще находящегося в активной разработке.

Похоже, что большинство маркеров синтаксиса в наши дни написаны для Интернета.К счастью, на самом деле довольно легко встроить их в WebView для использования в любом приложении Cocoa.Связь с редактором может осуществляться через WebKit's Протокол WebScriptObject.

Вот пример оболочки для популярного текстового редактора JavaScript Кодовое зеркало для Какао:https://github.com/swisspol/CodeMirrorView

Вы можете использовать Pygments, написанный на python, для генерации HTML-представления исходного кода, который затем может быть представлен в веб-представлении.

(Обратите внимание, как отражено в комментарии ниже - этот ответ был на исходный вопрос, в котором не упоминался редактируемый текст.)

Вы могли бы рассмотреть возможность использования flex, как описано (на немецком языке) здесь [1].Вы можете найти пример такого подхода здесь [2].

[1] http://www.osxentwicklerforum.de/thread.php?postid=14764 [2] http://objectiveous.github.com/davenport/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top