Подтвердить что ты не робот

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

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

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

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

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

Спасибо!

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

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

Ответ 3

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

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

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

Ответ 4

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

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