comunic/3rdparty/luminous/CHANGES.markdown

292 lines
13 KiB
Markdown
Raw Normal View History

2016-11-19 11:08:12 +00:00
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](https://github.com/martinsik)
- 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:
- Ada language support
- Cache can be stored in a MySQL table. See (the docs)[http://luminous.asgaard.co.uk/index.php/docs/show/cache/]
- 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