comunic/3rdparty/luminous/CHANGES.markdown
2016-11-19 12:08:12 +01:00

13 KiB
Executable File

Luminous Changelog since 0.6.0

##v0.7.0 (12/01/13):

  • Important stuff (maybe):

    • License change: GPL to LGPL.
    • Luminous is a composer package.
  • New stuff:

    • SCSS scanner.
  • Changes to markup/CSS:

    • luminous.css is now compiled from luminous.scss (SCSS)
    • Markup has been modernised and cleaned a bit
    • CSS selectors favoured over superfluous classes, e.g. nth-child instead of an alternating class, ".code > span" instead of a line class.
    • Bundled fonts (dejavu) have been removed - we now reference Consolas, Deja Vu and fall back to plain old 'monospace'.
    • Luminous elements have theme specific borders by default
  • Misc backwardly incompatible changes:

    • The 'include-jquery' setting defaults to 'false' - most people now have jQuery on their sites anyway and including a second version of it isn't a great idea.
    • Height unconstrained elements are now the default in the HTML formatter
    • Removed support for word-wrapping, nobody used this and it would mangle source code to be syntactically invalid anyway. HTML is not generous to this problem.
  • Misc:

    • Support one-time option setting via third parameter of luminous::highlight()
    • HTML output with JavaScript fixes line numbers to the left of the widget regardless of how it's horizontally scrolled.
    • HTML output with JavaScript allows toggling the line numbers (hover over the line numbers to show the control)
    • Preliminary JavaScript API for manipulating Luminous elements (not documented or properly tested yet...)
    • Filesystem cache now uses subdirectories; the cache items are organised into directories using the first two digits of the cache ID (a hex string). This makes things neater by reducing the number of items in a single directory, and may improve performance slightly on some filesystems.
    • examples/index.php example browser
    • Security improvements to testing files, should you have them on your server.
    • Fix broken tests on PHP5.4.
  • Misc language fixes:

    • C#: added missing 'void' keyword, added a lot of types

##v0.6.7-2 (10/6/12):

  • Fixed another problem with unnecessary scrollbars

##v0.6.7-1 (19/05/12):

  • Fixed a regression which introduced scrollbars on inline code

##v0.6.7 (24/04/12):

Likely to be the final release in 0.6 series. Further releases will be on the 0.7 tree.

  • New stuff:

    • Ability to set custom line number for first line in output, thanks Martin Sikora
    • Line highlighting (click with JS) uses CSS transitions
  • Fixes:

    • Small improvements to JavaDoc-like comment highlighting
    • CSS scanner won't break on @media { ... } rules
    • CSS scanner won't break on @keyframe { ... } rules
    • CSS scanner will highlight round brackets in selectors (like :nth-child(n+1))
    • HTML output now a tiny bit compressed
    • HTML output with unconstrained height will scroll horizontally instead of spilling overflow.

##v0.6.6 (26/02/12):

Maintenance release

  • Fixed:

    • Parse errors on PHP 5.2.0 (due to using unescaped '$' in doubly quoted strings)
  • Improved:

    • Cache error behaviour is less ugly. Errors can more easily be detected programmatically, and suppressed (or handled silently). See the cache's docs on how to do this.
    • Made testing/developing on Windows slightly more possible. Don't expect miracles.

##v0.6.5 (15/10/11):

  • New stuff:

    • kimono.css theme (based on the more famous Monokai theme)
    • versioncheck.php (in root) - Version checking script. Run from either a browser or the command line to query the website's API as to the most recent version and output whether you're running it.
    • style and client both have .htaccesses to ensure that they are in fact readable; this might be useful if for some reason you've put Luminous in a directory which a .htaccess forbids access to (e.g. somewhere in a framework).
  • Misc stuff:

    • Some really minor optimisations. Absolutely tiny. You won't notice them.
    • Updated jQuery to 1.6.4
    • The external CSS output by luminous::head_html() now have IDs set, the theme is IDed as 'luminous-theme'. This makes changing the theme via JS a lot neater (see theme switcher example). Why didn't we think of this earlier?
    • SQL cache is a tiny bit faster as it does not try to purge old elements excessively anymore (max: once per 24 hours).
    • GitHub theme is a little bit cleaner with interpolated elements (including PHP short output tags)
    • Diff scanner: the scanner has been split into two. The old behaviour (where embedded source code was highlighted) has been renamed to diff-pretty, and 'diff' now represents a plain scanner which does not highlight embedded code. If you want the old behaviour, use diff-pretty (valid code: diffpretty. See the languages page for more aliases.). This is because the pretty diff scanner is much slower and can encounter problems, so users may prefer a more reliable and faster but plain option.
    • Some of the JS examples have been fixed.
  • Language fixes:

    • Support for Java annotations
    • Django scanner recognises {% comment %} ... {% endcomment %} blocks
    • Ruby scanner has been altered with respect to how it detects regular expression literals. It is now similar to Kate/Kwrite's syntax highlighting and should be slightly better at figuring out what's a regex and what's a division operator. If it causes problems please report it, preferably with an explanation of how Ruby's grammar works in that particular case.
    • Ruby on Rails will now terminate comments at the end of the Rails block as well as newlines
    • Bash scanner will not go into heredoc mode inside ((...)) blocks; this prevents false positives on shift operations
    • Bash scanner should get fewer false positives when picking out comments
    • Perl scanner recognises heredoc openings when the delimiter is preceded by a backslash
    • PHP scanner is a little more careful about detecting user-definitions of functions and classes, i.e. it correctly highlights class names after implements and extends, and won't get confused by PHP5.3+ closures.
    • PHP Snippet mode will detect <?php correctly, should it be encountered.

##v0.6.4 (18/09/11):

  • New stuff:

    • Django scanner
    • 'geoynx' theme now has a per-line highlight style
  • Fixes:

    • Fix Luminous not fully respecting rounded corners (border-radius) on the outer-most div element.
    • A few typos and grammatical problems corrected in documentation
  • Language fixes:

    • Added missing 'with' keyword for Python
    • Added some missing functions to Python (int, str, float, list, etc)
    • Fix theoretically possible bug where the HTML scanner cannot 'recover' after it breaks from HTML-mode into server-side mode.
    • Fix occasional overzealous assert() triggering in HTML scanner
    • Fix occasional bug where ECMAScript's embedded XML literals would not break allow embedded server-side languages
    • Fix occasional bug where CSS and ECMAScript didn't always allow embedded server-side languages
  • Important stuff for developers:

    • The web language scanner's server_tags has been changed to a regular expression. This is not backwardly compatible.

##v0.6.3-1 (06/08/11):

  • Fixes:
    • Fix stupid bug where the cache will purge items after 9 days of inactivity, instead of 90 days. This is user-overridable by the 'cache-age' option, and will only affect installations where it was left to the default setting.

##v0.6.3 (22/06/11):

  • New Stuff:

  • Fixes

    • Disabled cache purging by default in the cache superclass, previously it was set to an hour and may have been invoked accidentally if you insantiated a cache object yourself for some reason.
    • Check before invoking the command line arg parser that Luminous is really what's being executed, so that you can now include it from another CLI program.
  • Languages fixes:

    • Fix recognition of Perl's shell command strings (backticks) when the string involves escape characters
    • Fix bug with Perl heredoc recognition not waiting until the next line to invoke heredoc parsing mode
    • Fix bug with Python not correctly recognising numeric formats with a leading decimal point
    • Fix Ruby's %w and %W operators such that their contents are recognised as strings split by whitespace, not one continual string
    • Highlight "${var}" string interpolation syntax in PHP scanner

##v0.6.2 (15/05/11):

  • General:

    • The User API's configuration settings has been changed internally, using the luminous::set() method will throw exceptions if you try to do something nonsensical.
    • Each configuration option is now documented fully in Doxygen (LumiousOptions class).
    • High level user API's docs are bundled in HTML.
    • PHP 5.2 syntax error fixed in LaTeX formatter (did not affect 5.3+)
  • New Stuff:

    • HTML full-page formatter, which produces a standalone HTML document. Use 'html-full' as the formatter.
    • Command line interface. Run php luminous.php --help to see the usage
    • Language guessing. Generally accurate for large sources of common languages, with no guarantees in other situations. See luminous::guess_language and luminous::guess_lanuage_full in Doxygen for details.
  • Language fixes:

    • C/C++ had its #if 0... #endif nesting slightly wrong, it now works properly
    • Diff scanner should no longer get confused over formats (i.e. original, context, or unified) if a line starts with a number.
    • PHP now recognises backtick delimited 'strings'
    • Ruby heredoc detection previously had a minor but annoying bug where a heredoc declaration would kill all highlighting on the remainder of that line. This now works correctly.
    • SQL recognises a much more complete set of words, though non-MySQL dialects are still under-represented

##v0.6.1 (29/04/11):

  • General:

    • Certain versions of PCRE trigger a lot of bugs in the regular expressions, which seemed to backtrack a lot even on very simple strings. Most (if not all) of these expressions have been rewritten to avoid this.
    • The above previously threw an exception: this is now true only if the debug flag is set, otherwise the failure is handled.
    • The User API should catch any exceptions Luminous throws in non-debug code. If one is caught, Luminous returns the input string wrapped in a pre tag.
    • 'plain' is used as a default scanner in the User API (previously an exception was thrown if a scanner was unknown)
    • Fix bug where the User API's 'relative root' would collapse double slashes in protocols (i.e. http:// => http:/)
    • User API now throws Exception if the highlighting function is called with non-string arguments
    • Some .htaccesses are provided to prevent search engines/bots crawling the Luminous directories (many of the files aren't supposed to be executed individually and will therefore populate error logs should a bot discover a directory)
    • Minor tweaks to the geonyx theme
    • Obsolete JavaScript has been removed and replaced with a much less intrusive behaviour of double click the line numbers to hide them, js inclusion is disabled by default by User API.
    • Infinite loop bug in the abstract formatter/word wrap method fixed (although this wasn't actually reachable by any of the formatters)
  • Language fixes:

    • Pod/cut style comments in Perl should now work all the time
    • C/C++'s "#if 0 ... #endif" blocks (which are highlighted as comments) now nest
    • Python recognises a list of exceptions as types
  • New Stuff:

    • Go language support
  • Internal/Development:

    • Unit test of stateful scanner much more useful
    • Formatter base class unit test (tests/unit/formatter.php)
    • Syntax test for scanners (syntax.php)
    • Stateful scanner throws an exception if the initial state is popped (downgraded from an assertion)
    • Stateful scanner safety check no longer requires that an iteration advances the pointer as long as the state is changed
    • Coding standards applied in all formatters
    • All scanning classes have complete API documentation
    • Paste test (interface.php) works properly with Unicode

v0.6.0 (16/04/11):

  • 0.6.0 is a near-total rewrite with a lot of changes. The hosting has moved from Google Code to GitHub and most code is freshly written.
  • Changelog is restarted