Pull to refresh

Comments 44

Забыл упомянуть, что Ace также использует Codeschool например (основной редактор, для python и coffee так точно) и другие проекты, которые предоставляют редактор кода.
Наверное, все-таки более авторитетный пользователь Ace — Cloud9 IDE.
Его я не забыл упомянуть :)
Вы забыли упомянуть, что проект не только хостится на Github, но и сам Github использует Ace :)
UFO just landed and posted this here
CodeMirrror ему и в подметки не годится, и функционалом, и красотой.
Работал и с ACE и с CodeMirror. Остановился на последнем, он показался более логичным и интуитивным по своей структуре. Хотя оба редактора хороши.
Как минимум необычно. Если добавить предпросмотр веб-страниц и веб-консоль, то может получиться очень даже интересный симбиоз.
Консоль есть, но как по мне, она еще слишком сырая. А предпросмотр — слишком специфический элемент, лучше в качестве расширения, что-ли.
Предпросмотр? Отнюдь! Это незаменимая вещь для html-верстальщиков и веб-программистов. Ничто не заменит realtime-редактирования по скорости и удобству. Так же на базе предпросмотра можно добавлять различные поведенческие тесты.

В QtWebKit есть консоль? Или вы про свою говорите?
У Ace консоль есть. А предпросмотр это конечно важно, но не всегда используется, и не всеми. Ace — это не только редактор html/js/css/coffee/etc
А вообще это всё может неплохо так с qml быть скрещено. :) Как раз можно будет легко и быстро наваять редактор для всяких планшетов.
Хотя это всё детский лепет, подсветка синтаксиса тут не учитывает семантику, а тупо подсвечивает ключевые слова. А для семантической подсветки нужен парсер языка, как минимум.
QML это классно, но у меня пока нет идей как это правильно сделать. А вот с семантической подсветкой можно подумать. Спасибо за наводку, может таки сделаю какое-то API для этого, у Novile
В Qt5.1 появился доступ к QTextDocument'у из qml классов, значит вполне можно уже сделать qml компонент, который будет любой текст подсвечивать.
А что насчет вебкита? Если QWebView можно встроить в кумль, то вообще збс, можно будет спортировать без проблем.
Это то на раз два три, но было бы круче без вебкита это сделать, сэмулировав некоторые вызовв.
При необходимости парсер языка можно сделать в виде плагина и вставлять в Ace уже готовое AST-дерево. Либо, как вариант, использовать EBNF-парсер на js, но тогда польза от самого Ace начинает стремиться к нулю, разве что удобная стилизация с помощью css. И в обоих вариантах, конечно, придется патчить сам Ace.
А он, кстати, схемы подсветки от kate умеет?
Я уверен что их можно портировать. Сейчас все схемы висят на theme-*.js файлах
Там тогда нужен автоматический конвертер.
Плюс еще явно нужна поддержка сниппетов, причем желательно с возможностью изнутри запускать скрипты. В kate как раз сниппеты умеют вставки на js, а textmate сниппеты вообще могут системные скрипты пускать.
Желтый, желтый. Прости меня Хабр, но по-другому внимания не привлечь. Да и как мне выразить Qt+Ace в коротком заголовке?
Может как-то так: Qt+Ace - кратко ни о чем.
Список фичей редактора просто сразил меня на повал — ни один из существующих не предоставляет то, что может Ace.
Почему? Наведите пример, пожалуйста.
Я таки думал что самый функциональный это ОС-Emacs :)
Есть поддержка vim/emacs комманд, но пока еще сырая
Мммм встроенный лисп?! :)
а всякие плагины на js оно умеет?
Ну не знаю насчёт самый функциональный, он по большому счёту даже со всем допиливаниями и плагинами не умеет (или умеет криво) многое из того, что современные редакторы делают из коробки и без лишнего напряга (нет, понятно, что теоретически к нему можно прикрутить абсолютно любую функциональность). Тот же multimode совершенно кошмарен, я в конце концов от него отказался, т.к. головной боли больше, чем пользы.
Я Emacs юзаю в основном за то, что при всех недостатках это очень удобный текстовый редактор. Который поставленную перед ним задачу — редактирование текста — решает лучше, чем всё остальное, что мне довелось пробовать. А всё остальное… ну не знаю, каждый новый плагин — это в первую очередь куча глюков и нестыковок с уже собранным зоопарком при спорной пользе. Скажем, автодополнение я даже не пытался к Emacs прикручивать и на удивление никакого дискомфорта от этого после перехода с Eclipse не испытал: мне проще набить название метода/переменной/класса по памяти, чем ждать, пока редактор протормозится и родит список вариантов, потом просмотреть список и убедиться, что нужный вариант присутствует, и затем выбрать его из списка.
Ace хороший редактор, и хорошо решает возложенную на него задачу, но зачем делать такое тяжелое решение, неужели нет адекватной альтернативы написанной на c++/Qt, на вскидку, есть Scintilla?
Я очень долгое время работал над редактором QodeEdit (я и PasNox — француз один), но понял, что ничего лучше Ace на вебките не может быть. Еще я писал цикл статей про QScintilla (в Qt Software 3 статьи), но она такая ужасная, что сейчас вызывает у меня только отвращение.
Ace неприятен тем, что предоставляет очень мало выходов наружу. Нормально следить за изменением текста в редакторе практически невозможно — ни эвентов нормальных, ни методов, которые не триггерят перевод курсора. В результате для одного из проектов пересели на Codemirror. Тот вообще-то тоже не сахар, но с ним работать чуточку легче.
Для кьютешников я сделал достаточно хорошее API ивентов (Novile), в конечном итоге это все равно костыль, но костыль с хорошими доками и оберткой
UFO just landed and posted this here
Никто не подскажет, как научить ACE понимать имена свойств объектов на русском? (Для тех, у кого здоровый интерес «а нафига наименования на русском??? — спросите у 1С. Я и сам не понимаю»). Тем не менее, сейчас делаю разбор XML при импорте из 1С, и АСЕ в подсветке php сигнализирует ошибку в синтаксисе на такое: $xml->Классификатор.

Простите за некропостинг, но я таки отвечу за 1с.
Обычно среди мейнстрима бытует мнение, что русский язык в 1с потому, что дескать 1с-программисты настолько недоразвиты, что им сложно выучить слова на английском. На самом деле всё упирается в предметную область. Когда у тебя в проекте десять тысяч идентификаторов (методов, переменных и т.п.), при этом вся предметная область тебе понятна не очень глубоко, ТЗ всё на русском, терминология на русском, клиент, консультанты по предметной области, пользователи — всё на русском… Переводить — увеличение сложности, поддерживаемости и читаемости на порядок. Транслитерация — тоже самое.
Нет, XML я бы на их месте транслитерировал, но всё остальное — оставить по русски. Там есть возможность писать всё по английски, но пользуются этим только те кто пишет для англоязычных клиентов.
ПС: основной код перестаешь переводить через неделю. Я только со знаками препинания мучался (фигурные скобки на русском — зло), и до сих пор если иногда приходится лезть в 1с код (что делаю не чаще раз в год), то язык запросов в голове перевожу. SQL более родной, и «SELECT» понятнее чем «ВЫБРАТЬ», и так далее…
Сорри, но меня не особо интересуют их мотивы и прочее относительно использования русского языка. У меня вопрос к Эйсу, как сделать так, чтобы он их понимал.
Sign up to leave a comment.

Articles