Существуют ли текстовые редакторы / IDE, которые поддерживают языки в общем? - PullRequest
2 голосов
/ 26 июня 2010

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

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

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

Ответы [ 8 ]

7 голосов
/ 26 июня 2010

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

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

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

3 голосов
/ 26 июня 2010

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

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

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

2 голосов
/ 26 июня 2010

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

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

1 голос
/ 26 июня 2010

EditPadPro поставляется с набором инструментов, которые позволяют создавать собственные подсветку синтаксиса , свертывание кода и навигацию по файлам схемы, основанные на очень мощныхсинтаксис регулярных выражений.Таким образом, если ваш язык не входит в число тех, которые уже были предоставлены «из коробки», или можно загрузить с веб-сайта , вы можете довольно легко свернуть свой собственный (и поделиться им с сообществом)..

alt text

1 голос
/ 26 июня 2010

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

0 голосов
/ 28 июня 2010

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

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

0 голосов
/ 26 июня 2010

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

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

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

0 голосов
/ 26 июня 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...