2008-09-14 2 views
10

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

В качестве последующего вопроса, что такое редактор WYSIWYG, который использует stackoverflow?

Edit: Благодаря ниже ответа, я нашел два, которые выглядят, как они могли бы удовлетворить мои потребности: EditArea и CodePress

EDIT: Смотрите этот вопрос также:
https://stackoverflow.com/questions/379185/free-syntax-highlighting-editor-control-in-javascript

ответ

7

Вот очень интересная статья о том, как написать одно: (Еще лучше, если он дает полный исходный код для форматировщика JavaScript и Colorizer.)

Implementing a syntax-higlighting JavaScript editor in JavaScript или Зверское ODYSSEY к темной стороне DOM дерево

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

Важно, что оно правильно обрабатывает регулярное выражение. Интересен также тот факт, что он использовал продолжение lexer/parser для стилей продолжения вместо более типичных лексерских (или регулярных) лексер, которые вы увидите в дикой природе.

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

+0

Его примеры не были тем, что я искал, но у него было две ссылки внизу страницы, которые я нашел полезными. Благодарю. – 2008-09-14 21:55:02

3

См Google code pretify.

См. Этот вопрос для использования edit control that stackoverflow.

+0

Спасибо за ссылку на контроль редактирования, что StackOverflow использования. Pretify выглядит красиво, но не совсем то, что я имел в виду под живым подсветкой. TinyMCE и несколько других редакторов WYSIWYG показывают, как ваша страница должна выглядеть, когда вы печатаете текстовое поле ... Я ищу тот, который делает то же самое для кода. – 2008-09-14 21:30:45

0

Я не программирую много javascript, но JSEclipse был очень полезен для меня в прошлом. Он поставляется как плагин Eclipse.

Я использую его в течение многих лет бесплатно

http://www.interaktonline.com/products/eclipse/jseclipse/overview/

Я также сильно зависят от FireBug для Firefox всякий раз, когда я имею дело с Javascript

0

Вы также можете попробовать http://softwaremaniacs.org/soft/highlight/en/ - это быстро, это поддерживает не только javascript, но и многие другие языки. И если вам нужен живой просмотр того, как будет выполняться подсветка, вы можете использовать setInterval для запуска выделения и отображения его в отдельном окне.

0

Хотя он имеет крутую кривую обучения, Vim - лучший редактор там, для любого языка. Он имеет версию GUI, но на самом деле светит в редактировании терминала. Любое время, потраченное на изучение того, как использовать этот редактор, не тратится впустую. Он имеет подсветку синтаксиса, как вы ищите, а также тысячи (в буквальном смысле) других функций и плагинов.

12

Вопрос может быть лучше сформулирован как «Какой редактор подсветки синтаксиса вы рекомендовали заменить html textarea в своем веб-приложении?» (Некоторые из других ответов здесь касаются настольных приложений или подсветки синтаксиса, а не редакторов на стороне клиента)

Я также рекомендую CodeMirror, он написан на Javascript и поддерживает множество браузеров. Он использует настоящий синтаксический анализатор (а не регулярные выражения), поэтому он может справляться со сложными проблемами, такими как правильное выделение экранированных строк. Разработчик также очень отзывчив на discussion group.

+0

CodeMirror выглядит абсолютно потрясающе. Не могу дождаться, чтобы реализовать его на своих сайтах. – pestaa 2010-03-19 06:44:38

0

Gotta go Bespin от Mozilla. Он построен с использованием функций HTML5 (так что это быстро и быстро, но не поддерживает устаревшие браузеры, хотя), но, безусловно, потрясающе использовать и превосходить все, с чем я столкнулся - возможно, потому, что это поддерживает Mozilla, и они разрабатывают Firefox, так что да. .. Также есть jQuery Plugin which contains a extension for it, чтобы сделать его немного проще в использовании с jQuery.

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