# java-prettify **Repository Path**: nextOS/java-prettify ## Basic Information - **Project Name**: java-prettify - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-15 - **Last Updated**: 2025-12-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java Prettify [TOC] This library is a java port of [Google Prettify][jsprettify], the current version ported is 4-Mar-2013. The copyright holder of the Google Prettify is Mike Samuel (mikesamuel@gmail.com). It is licensed under the Apache License Version 2. This port is distributed under Apache License Version 2. [jsprettify]: https://github.com/google/code-prettify If you need an editor more than a highlighter, please find jsyntaxpane. ## Alternatives [Java SyntaxHighlighter](https://code.google.com/p/java-syntax-highlighter/) ## Requirement Java SE 6 or up ## Language Supported The comments in prettify.parser.Prettify are authoritative but the lexer should work on a number of languages including C and friends, Java, Python, Bash, SQL, HTML, XML, CSS, Javascript, Makefiles and Rust. It works passably on Ruby, PHP, VB, and Awk and a decent subset of Perl and Ruby, but, because of commenting conventions, doesn't work on Smalltalk, or CAML-like languages. LISPy languages are supported via an extension: prettify.lang.LangLisp. And similarly for Clojure, CSS, Go, Haskell, Lua, OCAML, SML, F#, Matlab, Nemerle, Protocol Buffers, Scala, SQL, TeX, LaTeX, VHDL, Visual Basic, WikiText, XQuery, and YAML. If you'd like to add an extension for your favorite language, please look at prettify.lang.LangLisp. ## Themes Default, Desert, Sons of Obsidian, Sunburst ## Configurations * Allows you to change the first (starting) line number. * Allows you to turn gutter with line numbers on and off. * Allows you to highlight one or more lines to focus user's attention. ## Example Note that this highlighter extends Swing component, so all operations are better be executed inside Swing dispatching thread. ```java import java.io.*; import java.util.Arrays; import java.util.logging.*; import javax.swing.*; import prettify.PrettifyParser; import prettify.theme.ThemeDefault; import syntaxhighlight.*; public class Example { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { // the Prettify parser Parser parser = new PrettifyParser(); // initialize the highlighter and use Default theme SyntaxHighlighter highlighter = new SyntaxHighlighter(parser, new ThemeDefault()); // set the line number count from 10 instead of 1 highlighter.setFirstLine(10); // set to highlight line 13, 27, 28, 38, 42, 43 and 53 highlighter.setHighlightedLineList(Arrays.asList(13, 27, 28, 38, 42, 43, 53)); try { highlighter.setContent(new File("test.html")); } catch (IOException ex) { Logger.getLogger(Example.class.getName()).log(Level.SEVERE, null, ex); } JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setContentPane(highlighter); frame.setLocationByPlatform(true); frame.pack(); frame.setVisible(true); } }); } } ``` ## Sample Screenshot ![sample screenshot](https://java-prettify.googlecode.com/svn/wiki/ThemesDemo/ThemeDesert.png) ## Support & Discussion [Support & Discussion Group](https://groups.google.com/group/java-prettify) ## Known Issues * Perl formatting is really crappy. Partly because Perl is hard to parse.