mirror of
https://github.com/pierre42100/comunic
synced 2024-12-30 15:39:00 +00:00
13 KiB
Executable File
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.
- The web language scanner's
##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
andluminous::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