Подсветка синтаксиса для Java - PullRequest
6 голосов
/ 05 декабря 2009

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

Однако я не смог найти такую ​​библиотеку для Java, которая бы поддерживала нужные мне языки программирования (ADA, ASP, BNF, Bash, Brainfuck, C, C ++, C #, CSS, Cobol, ColdFusion, D, Fortran, Haskell , HTML, INI (Config), Java, JavaScript, Lisp, Make, Objective C, PASCAL, Perl, PHP, PLSQL, Пролог, Python, Ruby, Схема, SQL, VB.NET, Verilog, VHDL, Visual Basic, XML. )

Знаете ли вы один или я должен предпочесть неэффективный способ получения выделенного кода с удаленного PHP-сервера через транзакцию http? Есть идеи?

Спасибо.

Ответы [ 7 ]

8 голосов
/ 06 декабря 2009
5 голосов
/ 05 декабря 2009

Посмотрите на JHighlighter или Синтаксический пакет jEdit . Все указанные языки не поддерживаются "из коробки". Тем не менее, у вас есть источники, поэтому я думаю, что должна быть возможность добавить поддержку языка.

Не прямой ответ, но, если опция подсветки синтаксиса на стороне клиента является опцией, библиотека SyntaxHighlighter от Алекса Горбачева - это потрясающая библиотека javascript, поддерживающая множество языков и весьма расширяемый .

3 голосов
/ 06 декабря 2009

Вы можете использовать Pygments через Jython. Это будет не так быстро, как решение Java, но намного быстрее, чем взаимодействие с удаленным сервером.

За исключением того, что вы можете запускать Geshi локально и передавать через него исходный код, это также будет работать в обход HTTP.

1 голос
/ 11 июля 2014

Существует порт prettify.js для Java: java-prettify .

Его можно использовать для создания HTML (вычисляемого в Java), как я уже говорил здесь: Используйте парсер java-prettify для создания HTML

1 голос
/ 26 октября 2013

Кажется, что возможно запустить GeSHi из Java: GeSHi4J похоже, что это оболочка, которая запускает библиотеку PHP на JVM.

0 голосов
/ 30 апреля 2013

Несколько действительно хороших маркеров:

Оба легко реализуются на стороне клиента и поддерживают широкий спектр языков. У них также есть большой выбор CSS-тем, благодаря которым код выглядит так, как в вашем любимом редакторе.

0 голосов
/ 28 января 2010

jedit - текстовый редактор с поддержкой подсветки синтаксиса для более чем 170 языков с помощью «режимов». Это также позволяет вам указать свой собственный синтаксис. Вы можете использовать компонент StandaloneTextArea в своем собственном приложении следующим образом:

  • Извлечь источник (например: jedit4.3source.tar.bz2 в d: \ source \ jedit)
  • Используйте ant для копирования всех файлов textarea в .. \ textarea, например:

    D: \ Source \ jedit \ jEdit> ant prepare-textArea

  • Однако в нем отсутствует файл BufferUndoListener.java. Скопируйте это вручную, выполнив

    D: \ Source \ jedit \ jEdit> копировать org \ gjt \ sp \ jedit \ buffer \ BufferUndoListener.java .. \ textarea \ src \ org \ gjt \ sp \ jedit \ buffer \

  • В Eclipse создайте Java-проект из существующего источника в каталоге D: \ Source \ jedit \ textarea

  • Перейдите к org.gjt.sp.jedit.textarea.StandaloneTextArea.java
  • Изменить строку
mode.setProperty("file","modes/xml.xml");

до

mode.setProperty("file","src/modes/xml.xml");
  • Run. Скопируйте и вставьте XML в редактор и убедитесь, что подсветка синтаксиса работает.
...