Форум сайта python.su
xml нужен чтоб хранить метаданные, и руками его никто не редактирует.
Значит, человеку, который писал плагин, руби знаком больше чем питон. Ну и что?
Офлайн
ничего особенного. только подтверждение моего собственного мнения о том, что НОРМАЛЬНОГО API для написания плагинов для редакторов просто НЕ СУЩЕСТВУЕТ. и это меня черезвычайно печалит.
Офлайн
Интресно услышать требованию к нормальному API.
Офлайн
Нормальное API должно быть достаточно высокоуровневым и позволять работать на соответствующем уровне абстракции: редактируемый документ, пункты меню отвязанные от их GUI-реализации, индекс активного документа, список открытых файлов, если используется нечто типа дерева проектов – то соответствующий интерфейс позволяющий читать и манипулировать этим деревом. Доступ к внутренним функциям самого редактора по возможности также расширенный и высокоуровневый. Если в редакторе реализованы какие-то полезные дополнительные докируемые окна, то хотелось бы иметь возможность их наследовать и создавать при желании без переписывания GUI-кода.
Очень хочется иметь нормальное разделение Model-View-Controller, а не мешать GUI в кучу с реализуемыми алгоритмами.
Нормальное API не должно вам вываливать на голову внутреннюю реализацию редактора в перемешку с GUI-кодом (как это имеет место быть в Dr.Python) и с другой стороны быть достаточно богатым, чтобы можно было добраться до потрохов, а не просто дублировать доступные юзеру команды главного меню (как это имеет место быть в PSPad). Хорошее API должно иметь хоть какую-то документацию, а не так как в UliPad.
Сравнивать мне мало с чем, я фактически пытался изучать как это сделано в Eclipse, DrPython, UliPad, PSPad. Для PSPad даже немного написал сам, но потом наткнулся на серьезные препятствия с мешанием в кучу пространства имен и дальше мне стало резко неинтересно. Textmate в силу его яблочности в ближайшем будущем мне не видеть. Но ваши ссылки на поддержку hg вызывают у меня сильные аналогии с эклипсом.
Хотелось бы в будущем поглядеть как плагины пишутся для знаменитого Emacs-a, чтобы сложить еще более полное впечатление.
Офлайн
Я сам на емаксе сидел очень долго, пока на мак не переполз. Вот что думаю по поводу реализации перечисленных вами требований:
Особенность емакса в том, что он сам по себе написан с помощью плагинов. На С написан только интерпретатор емакс-лиспа, все функции редактирования реализованы на нем. Поэтому, есть доступ абсолютно ко всем частям редактора. Поэтому, под емакс возможно даже написать мейлер, броузер, джаббер-клиент, и т. д.
gui-кода в емаксе очень мало, и он очень примитивный, совершенно под ногами не путается. емакс-лисп сделан абстрагированным от кода рисования, а самих бекендов очень много (консольный, гтк-2, мотиф, xaw3d, lesstiff и еще что-то).
Документация в емаксе замечательная, есть туториалы, удобная система самодокументации. Т. е., помимо того, что документация высококачественная, ей еще очень удобно пользоваться.
Из минусов емакса: очень разросшаяся кодовая база, редактор реально является монстром. Плохая интеграция с другими компонентами операционной системы (особенно гуевыми). Отсутствие нормального парсера документов (все парсится только регекспами, есть движок semantic, но он жутко недоделанный и глючный). Отсутсвие нормальных режимов редактирования для современных языков (в т. ч. питона). Необходимость очень много времени тратить на настройку.
Емакс можно рассматривать сейчас как некий академический проект, но практическую ценность он потерял, имхо.
Можете еще посмотреть на jedit. http://jedit.org/ (юзал его в линухе месяца 2, когда емакс в конец достал, но еще не купил мак)
По той ссылке на поддержку хг судить сложно (хотя бы потому что она не является частью текстмейта), посмотрите лучше этот скринкаст: http://macromates.com/screencast/scopes_and_comments.mov (61 мб).
Офлайн
спасибо за обзор по потрохам эмакса. по вашим словам получается что там все реализовано “правильно”. :-)
Офлайн
Емакс можно рассматривать сейчас как некий академический проект, но практическую ценность он потерял, имхо.Ну нельзя сказать, что совсем потерял. :) Я пользуюсь, и даже если некоторыми вещами недоволен - другими редакторами недоволен ещё больше.
Офлайн
bialixСкажем так, в нем заложены правильные идеи, но с точки зрения юзабилити он не очень. С другой стороны, теоретически можно эту юзабилити улучшить, но практически это слабо реализуемо. Как я все больше убеждаюсь, рядовой юзер не знает как сделать так, чтоб было удобно. Маковские эксперты по эргономике знают, а юзер не знает. “В большом пусть поют, а я буду оперировать, и никакой разрухи” (с) Проф. Преображенский.
спасибо за обзор по потрохам эмакса. по вашим словам получается что там все реализовано “правильно”. :-)
Отредактировано (Дек. 2, 2007 11:07:02)
Офлайн