Вопрос

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

Однако я не смог найти такую библиотеку для 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, Prolog, Python, Ruby, Scheme, SQL, VB.NET , Verilog, VHDL, Visual Basic, XML.)

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

Спасибо.

Это было полезно?

Другие советы

Взгляните на Джиглигер или Синтаксический пакет jEdit.Все упомянутые языки не поддерживаются "из коробки".Однако у вас есть исходники, так что, я думаю, должна быть возможность добавить языковую поддержку.

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

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

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

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

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

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

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

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

    D:\Source\jedit\jEdit > муравьиная подготовка-текстовая область

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

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

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

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

Для

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

Вот пара хайлайтеров, которые работают действительно хорошо::

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top