This files lists all changes in the CodeRay library since the 0.8.4 release.
{{toc}}
Fixes for JRuby’s 1.9 mode and minor issues.
- REMOVED obsolete
has_rdoc
gem specification, fixing a warning.
- NEW method
#scan_rest
replacesscan_until(/\z/)
, which is broken in JRuby 1.6 —1.9 mode.
See #297.
- FIXED LOC counting (should be 0).
See #296.
- FIXED the
IDENT
pattern not to use character properties, which are broken in JRuby 1.6 —1.9 mode.
See #297, thanks to banister for reporting!
- ADDED more keywords:
between
,databases
,distinct
,fields
,full
,having
,is
,prompt
,tables
.
See #221, thanks to Etienne Massip again.
- NEW regonizes ColdFusion file type extensions
.cfm
and.cfc
as XML.
See #298, thanks to Emidio Stani.
Fixes a dangerous JavaScript scanner bug, and a testing problem with Ruby 1.9.1.
- FIXED The functional tests now load the lib directory (instead of the gem) in Ruby 1.9.1.
- FIXED
KEY_CHECK_PATTERN
regexp
See #264, thanks to Etienne Massip!
Minor improvements to the Ruby scanner and a fix for Ruby 1.9.
- IMPROVED handling of new hash syntax (keys are marked as
:key
now,
colon is a separate:operator
token, all idents can be used as keys)
See #257, thanks to WoNáDo! - ADDED
__ENCODING__
magic constant (Ruby 1.9) - FIXED: Scanner no longer tries to modify the input string on Ruby 1.9.
See #260, thanks to Jan Lelis!
Support for Rubinius (#251), improved mutlibyte handling, Ruby 1.9 syntax, and valid HTML.
- FIXED: Line tokens use
span
withdisplay: block
instead ofdiv
, which was invalid HTML (#255).
- IMPROVED handling of encodings in Ruby 1.9: UTF-8 and Windows-1252 are checked.
- NEW: Invalid chars will be converted to
?
in Ruby 1.9. - FIXED
string=
method for Rubinius. See issue 481 on their site.
- FIXED: Don’t use non-ASCII regexps.
- FIXED: Highlight unexpected lines as
:comment
.
- FIXED: Use
ASCII-8BIT
encoding for now.
- ADDED support for some Ruby 1.9 syntax (#254):
- the
->
lambda shortcut - new Hash syntax using colons (
{ a: b }
)
- the
- FIXED: Use
UTF-8
encoding. - IMPROVED unicode support on Ruby 1.8 (#253).
- FIXED recognition of non-ASCII identifiers in Ruby 1.9, JRuby, and Rubinius (#253).
- CHANGED heredoc recognition to ignore delimiters starting with a digit. This is incorrect, but causes less false positives.
- FIXED scanning of comments; nice catch, Rubinius!
(#252)
Updated command line interface and minor scanner fixes for the Diff, HTML, and RHTML scanners.
- FIXED: Partly rewritten, simplified, fixed.
(#244)
- FIXED handling of change headers with code on the same line as the @@ marker.
(#247)
- FIXED a missing regexp modifier that slowed down the scanning.
(#245)
- FIXED highlighting of ERB comment blocks.
(#246)
- FIXED: Documentation of Tokens.
(#218)
- NEW: automatic TTY detection (uses
Term
encoder) - NEW: optional 3rd parameter for the filename
- FIXED: Converted to UNIX format.
- FIXED: Warn about generated files.
- FIXED: Ensure line break after the output (especially for LoC counter).
- FIXED: Don’t keep state of XML scanner between calls for E4X literals.
- FIXED: Close unfinished strings with the correct token kind.
- NEW Basic tests and a Rakefile are now included in the Gem. [Flameeyes]
Adoc
task is also included. - FIXED Use
$CODERAY_DEBUG
for debugging instead of$DEBUG
. [Trans]
(#192) - REMOVED
Term::Ansicolor
was bundled under lib/, but not used. [Flameeyes]
(#205) - WORKAROUND for Ruby bug
#2745
- FIXED strings are closed correctly
(#138) - FIXED several token kinds had no associated color
(#139) - NEW alias
terminal
Encoders::Terminal
in the next release.
- FIXED Don’t close tokens that are not open. Send
:error
token instead.
- FIXED token kind of closing brackets is
:operator
instead ofnil
(#148)
- FIXED allow
\
operator (namespace separator)
(#209)
- FIXED doesn’t send debug tokens when
$DEBUG
is true [Trans]
(#149)
- NEW token classes
:complex
,:decorator
,:imaginary
(all for Python) - REMOVED token class
:procedure
– use:function
or:method
instead.
- NEW method
#scanner
- REMOVED methods
.write_token
,.read_token
,.escape
,.unescape
Tokens
encoder, which was removed also.
- REMOVED Don’t require the stringio library.
- NEW public methods
#open_token
,#close_token
,#begin_line
,#end_line
These methods are called automatically, like#text_token
. - NEW proteced method
#append_encoded_token_to_output
- REMOVED – use
Tokens#dump
andTokens.load
.
- NEW
AFilter
encoder has anotherTokens
instance as output.
- NEW
:exclude
and :include
, that specify which token classes
to include or exclude for the output. They can be a single token class,
an Array
of classes, or the value :all
.
- NEW
:comment
class.
- NEW
KINDS_NOT_LOC
token class list
defined by the scanner. It uses the new TokenClassFilter
.
Alias: :loc
, as in tokens.loc
.
- NEW
- NEW (beta, by Rob Aldred)
- NEW option
:title
(default value is CodeRay output)
- NEW option
:highlight_lines
(default:nil
)
- REMOVED option :level
- Uses
Encoder
interface withsuper
and#text_token
.
FIXED
(#94)
- NEW Mapped
:h
to:c
,:cplusplus
and:'c++'
to:cpp
,
:ecma
,:ecmascript
,:ecma_script
to:java_script
,
:pascal
to:delphi
, and:plain
to:plaintext
.
- NEW constant
KINDS_NOT_LOC
- NEW method
#lang
returns the scanner’s lang, which is itsplugin_id
. - FIXED automatic, safe UTF-8 detection [Ruby 1.9]
- FIXED column takes care of multibyte encodings [Ruby 1.9]
- FIXED is dumpable (
Tokens
store their scanner in an@scanner
variable)
- NEW (C++)
- NEW (beta)
- NEW
- NEW (based on Stefan Walk’s work)
- NEW (based on code by Josh Goebel)
- IMPROVED added a list of
:directive
tokens that were:reserved
before - IMPROVED detection of labels
- IMPROVED allow
1L
and1LL
style literals
- IMPROVED element selectors are highlighted as
:type
instead of:keyword
- IMPROVED Don’t cache tokens in CaseIgnoringWordList.
- IMPROVED
assert
is highlighted as a:keyword
now - IMPROVED
const
andgoto
are highlighted as:reserved
- IMPROVED
false
,true
, andnull
are highlighted as:pre_constant
- IMPROVED
threadsafe
is no longer a:directive
- IMPROVED
String
is highlighted as a:pre_type
- IMPROVED built-in classes ending with Error or Exception are
highlighted as a:exception
instead of:pre_type
- NEW a list of
PREDEFINED_CONSTANTS
to be highlighted as:pre_constant
- NEW XML literals are recognized and highlighted
- NEW function name highlighting
- IMPROVED
.1
is highlighted a number - FIXED strings close with the correct kind when terminated unexpectedly
- IMPROVED constants (
true
,false
,nil
) are highlighted as:value
- IMPROVED
Patterns::KEYWORDS_EXPECTING_VALUE
for more accurate
value_expected
detection - IMPROVED handling of
\
as a string delimiter - IMPROVED handling of unicode strings; automatic switching to unicode
- IMPROVED highlighting of
self.method
definitions - REMOVED
Patterns::FANCY_START_SAVE
(obsolete) - FIXED encoding issues [Ruby 1.9]
- FIXED a problem in early Ruby 1.8.6 patch versions with
Regexp.escape
- IMPROVED indentation detection
- changed a few colors (exceptions, inline strings, predefined types)
- NEW method
#title
- NEW method
#helper
loads helpers from different plugins
helper 'other_plugin/helper_name'
- NEW
FileType[]
takesPathname
instances - NEW regonizes
.cc
,.cpp
,.cp
,.cxx
,.c++
,.C
,.hh
,.hpp
,.h++
,.cu
extensions (C++)
- NEW regonizes
.pas
,.dpr
extensions (Delphi) - NEW regonizes
.gvy
,.groovy
extensions (Groovy) - NEW regonizes
.php
,.php3
,.php4
,.php5
extensions (PHP) - NEW regonizes
.py
,.py3
,.pyw
extensions (Python) - NEW regonizes
.rxml
extension (Ruby) - NEW regonizes
.sql
extension (SQL) - File types list was sorted alphabetically.
- FIXED (#97)
- FIXED for RedCloth versions 4.2.0+ (#119)
- warnings about character classes [Ruby 1.9]
- encoding issues [Ruby 1.9]
- documentation, code