2010-06-26 2 views
2

Я ищу редактор/IDE, который может предоставлять функции, которые приятно иметь во время кодирования (пример: возможность переходить на определение функций) для языков, для которых он специально не создан. Этим я имею в виду языки, разработанные для очень конкретной цели и часто используемые только небольшим сообществом. Другими словами, те, которые не имеют встроенной поддержки в большинстве программ.Есть ли текстовые редакторы/IDE, которые поддерживают языки в целом?

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

Что-то вроде этого существует? Если нет, то какие проблемы, по вашему мнению, возникнут при его создании?

ответ

7

Если вам нужна только функция перехода к определению конкретной функции или класса, тогда VIM (и многие другие редакторы, такие как Emacs, Epsilon и JOE) может прочитать местоположение перехода из файла ctags. Вам просто нужно написать генератор файлов ctags для вашего пользовательского языка.

Для программируемых редакторов (например, VIM, Emacs, Epsilon, Eclipse и gedit) вы можете написать свой собственный плагин для своего пользовательского языка, но он может быстро стать трудоемким и кошмаром обслуживания, поскольку новые версии редакторов имеют тенденцию для изменения интерфейса плагина.

Обратите внимание: добавление поддержки подсветки синтаксиса обычно намного проще, чем добавление поддержки символов в виде ctags для поиска символов. Более сложные функции, такие как рефакторинг и контекстно-зависимое завершение символов (например, Ctrl-Space и Tab в современных IDE), еще сложнее реализовать.

1

Большинство хороших IDE являются агностиками языка и поддерживают несколько языков программирования, если не так много. Если вы говорите о DSL, у eclipse есть решение, которое должно иметь seems pretty awsome - Xtext

0

Visual Studio предназначен для этого, но для этого требуется, чтобы язык добавлял явную поддержку. Например, Delphi Prism будет установлен в Visual Studio и обеспечит полную языковую поддержку.

Это намного выше и выше «конфигурации», однако для этого требуется довольно много настраиваемой разработки.

0

SciTE and Scintilla предлагает общий редактор/платформу для разных языков. Библиотека содержит несколько парсеров, которые работают со многими языками программирования, и вы можете повторно использовать один из них для своего языка, чтобы добавить форматирование и подсветку синтаксиса.

Они не предлагают расширенные функции, такие как щелчок, но вы можете создать его поверх библиотеки.

Visual Studio и Eclipse также поддерживают языковые плагины.

3

У GNU Emacs довольно хорошая инфраструктура для такого рода вещей. До недавнего времени Haskell был относительно неизвестным языком, используемым в основном исследователями.Тем не менее, в несколько тысяч строк Emacs Lisp, мы имеем

  • подсветка синтаксиса с цветами
  • Автоматическая отступы
  • поддержка пакета
  • Автоматическая подсветка типа и другой информации при размещении курсора над функциями библиотеки
  • Мета-точка на идентификатор, чтобы перейти к его определению (через механизм стандартной Emacs тегов)

Приятная вещь о Emacs заключается в том, что (а) есть много моделей, и (б) вы можете постепенно наращивать окружающую среду, начиная с тех аспектов, которые важны для вас.

1

EditPadPro содержит набор инструментов, которые позволяют создавать собственные схемы, основанные на очень сильном синтаксисе regex. Поэтому, если ваш язык не входит в число тех, которые уже были предоставлены в готовом виде или can be downloaded off the website, вы можете легко свернуть свой собственный (и поделиться им с сообществом).

alt text

2

Я удивлён никто не упомянул Notepad ++ еще: http://notepad-plus-plus.org/

Он предлагает поддержку синтаксиса для очень многих языков и предлагает пользователю добавлять новые языки, и активное сообщество, которое добавляет многие языки, которые не включены в комплект поставки.

0

Zeus это язык нейтральный IDE для платформы Windows, и предоставляет это перейти к определению/декларациям функциональности для любого языка, поддерживаемого ctags.

Чтобы заставить его работать, вы просто создаете Zeus project/workspace, а затем добавляете файлы в это рабочее пространство.

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