2008-09-14 12 views
10

Ich habe Syntax-Highlighter gefunden, die bereits vorhandenen Code hervorheben, aber ich würde es gerne bei der Eingabe mit einem WYSIWYG-ähnlichen Editor tun. Ich brauche keine automatischen Funktionen, nur die Hervorhebung.Gibt es JavaScript-Syntax-Textmarker?

Als eine Folgefrage, was ist der WYSIWYG-Editor, den Stackoverflow verwendet?

Edit: Dank der Antwort unten, fand ich zwei, die wie sie aussehen könnte meine Bedürfnisse anzupassen: EditArea und CodePress

EDIT: Auch diese Frage Siehe:
https://stackoverflow.com/questions/379185/free-syntax-highlighting-editor-control-in-javascript

Antwort

7

Hier ist ein wirklich interessanter Artikel darüber, wie man schreiben: (Noch besser ist, gibt er die volle Quelle zu einem JavaScript-Formatierer und colorizer.)

Implementing a syntax-higlighting JavaScript editor in JavaScript oder Eine brutale Irrfahrt auf die dunkle Seite des DOM Baum

Wie macht man anständige Syntax Hervorhebung? Ein sehr einfaches Scannen kann den Unterschied zwischen Zeichenfolgen, Kommentare, Schlüsselwörter und andere Code unterscheiden. Aber dieses Mal wollte ich tatsächlich in der Lage sein, regelmäßige Ausdrücke zu erkennen, so dass ich keine eklatante Fehlverhalten mehr hatte.

Wichtigerweise behandelt es Regex korrekt. Interessant ist auch, dass er einen lexer/parser mit Fortsetzungsübergabe anstelle der typischen lex (oder regex) -basierten Lexer verwendete, die Sie in der Wildnis sehen.

Als Bonus diskutiert er viele reale Probleme, die bei der Arbeit mit JavaScript im Browser auftreten.

+0

Seine Beispiele waren nicht das, wonach ich suchte, aber er hatte zwei Links am Ende der Seite, die ich hilfreich fand. Vielen Dank. –

3

Google code pretify See.

Siehe diese Frage für die edit control that stackoverflow verwendet.

+0

Danke für den Link auf dem Edit-Steuerelement gefunden habe, die Anwendungen Stackoverflow. Pretify sieht gut aus, war aber nicht das, was ich mit Live-Highlighting meinte. TinyMCE und ein paar andere WYSIWYG-Editoren zeigen, wie Ihre Seite aussehen soll, während Sie in das Textfeld tippen ... Ich suche nach einem, der das gleiche für Code tut. –

0

Sie auch http://softwaremaniacs.org/soft/highlight/en/ versuchen können - es schnell ist, es unterstützt nicht nur Javascript sondern viele andere Sprachen. Und wenn Sie eine Live-Vorschau benötigen, wie die Hervorhebung funktioniert, können Sie setInterval verwenden, um die Hervorhebung auszuführen und in einem separaten Feld anzuzeigen.

0

Obwohl es eine steile Lernkurve hat, ist Vim der beste Editor da draußen, für jede Sprache. Es hat eine GUI-Version, aber wirklich glänzt in Terminal-Bearbeitung. Jede Zeit, die damit verbracht wird, den Umgang mit diesem Editor zu erlernen, ist keine Zeitverschwendung. Es hat Syntax-Highlighting, wie Sie suchen, sowie Tausende (wörtlich) anderer Features und Plugins.

12

Die Frage könnte besser als "Welche Syntax Highlighting-Editor empfehlen Sie eine HTML-Textfläche in meiner Web-App zu ersetzen?" (Einige der anderen Antworten hier befassen sich mit Desktop-Anwendungen oder reinen Textmarker, nicht clientseitige Editoren)

Ich empfehle auch CodeMirror, es ist in Javascript geschrieben und unterstützt viele Browser. Es verwendet einen echten Parser (anstatt Regexps), so dass es mit komplexen Problemen umgehen kann, wie zum Beispiel das korrekte Hervorheben von Strings. Der Entwickler reagiert auch sehr auf die discussion group.

+0

CodeMirror sieht absolut fantastisch aus. Ich kann es kaum erwarten, es auf meinen Seiten zu implementieren. – pestaa

+0

das ist erstaunlich – Glycerine

0

Muss mit Bespin von Mozilla gehen. Es ist mit HTML5-Funktionen gebaut (so ist es schnell und schnell, aber nicht unterstützt Legacy-Browsern), aber auf jeden Fall erstaunlich zu verwenden und schlägt alles, was ich rübergekommen bin - wahrscheinlich, weil Mozilla es unterstützt, und sie Firefox so yeah entwickeln. .. Es gibt auch eine jQuery Plugin which contains a extension for it, um es mit jQuery etwas einfacher zu machen.