summaryrefslogtreecommitdiff
path: root/Changes.textile
blob: 69eacdce53e6732f5a2fc719addfeffbc28fc26b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
h1=. CodeRay Version Changes
 
p=. _This files lists all changes in the CodeRay library since the 0.8.4 release._
 
h2. Changes in 0.9.1
 
h3. Token classes
 
* *NEW* token classes @:complex@, @:decorator@, @:imaginary@
  (all for Python)
* *REMOVED* token class @:procedure@
  – use @:function@ or @:method@ instead.

h3. @Tokens@
 
* *NEW* method @#scanner@
  
  Stores the scanner.
* *REMOVED* methods @.write_token@, @.read_token@, @.escape@, @.unescape@
  
  They were only used by the @Tokens@ encoder, which was removed also.

h3. @Encoders::Encoder@
 
* *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@

h3. @Encoders::Tokens@
 
* *REMOVED* – use @Tokens#dump@ and @Tokens.load@.

h3. @Encoders::Filter@
 
* *NEW*
  A @Filter@ encoder has another @Tokens@ instance as output.

h3. @Encoders::TokenClassFilter@
 
* *NEW*
  
  It takes 2 options, @: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@.

h3. @Encoders::CommentFilter@
 
* *NEW*
  
  Removes tokens of the @:comment@ class.

h3. @Encoders::LinesOfCode@
 
* *NEW*
  
  Counts the lines of code according to the @KINDS_NOT_LOC@ token class list
  defined by the scanner. It uses the new @TokenClassFilter@.
  
  Alias: @:loc@, as in @tokens.loc@.

h3. @Encoders::JSON@
 
* *NEW*
  
  Outputs tokens in a simple JSON format.

h3. @Encoders::Term@
 
* *NEW* (beta, by Rob Aldred)
  
  Outputs code highlighted for a color terminal.

h3. @Encoders::HTML@
 
* *NEW* option @:title@ (default value is _CodeRay output_)
  
  Setting this changes the title of the HTML page.
* *NEW* option @:highlight_lines@ (default: @nil@)
  
  Highlights the given set of line numbers.
- *REMOVED* option @:level@
  
  It didn't do anything. CodeRay always outputs XHTML.

h3. @Encoders::Text@
 
* Uses @Encoder@ interface with @super@ and @#text_token@.

h3. @Encoders::XML@
 
* @FIXED@ ("#94":http://redmine.rubychan.de/issues/94)
  
  It didn't work at all.

h3. Scanners
 
* *NEW* Mapped @:h@ to @:c@, @:cplusplus@ and @:'c++'@ to @:cpp@,
  @:ecma@, @:ecmascript@, @:ecma_script@ to @:java_script@,
  @:pascal@ to @:delphi@, and @:plain@ to @:plaintext@.

h3. @Scanners::Scanner@
 
* *NEW* constant @KINDS_NOT_LOC@
  
  A list of all token classes not considered in LOC count.
  Added appropriate values for scanners.
* *NEW* method @#lang@ returns the scanner's lang, which is its @plugin_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)

h3. @Scanners::Cpp@
 
* *NEW* (C++)

h3. @Scanners::Groovy@
 
* *NEW* (beta)

h3. @Scanners::Python@
 
* *NEW*

h3. @Scanners::PHP@
 
* *NEW* (based on Stefan Walk's work)

h3. @Scanners::SQL@
 
* *NEW* (based on code by Josh Goebel)

h3. @Scanners::C@
 
* *IMPROVED* added a list of @:directive@ tokens that were @:reserved@ before
* *IMPROVED* detection of labels
* *IMPROVED* allow @1L@ and @1LL@ style literals

h3. @Scanners::CSS@
 
* *IMPROVED* element selectors are highlighted as @:type@ instead of @:keyword@

h3. @Scanners::Delphi@
 
* *IMPROVED* Don't cache tokens in CaseIgnoringWordList.

h3. @Scanners::Java@
 
* *IMPROVED* @assert@ is highlighted as a @:keyword@ now
* *IMPROVED* @const@ and @goto@ are highlighted as @:reserved@
* *IMPROVED* @false@, @true@, and @null@ 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@

h3. @Scanners::JavaScript@
 
* *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

h3. @Scanners::JSON@
 
* *IMPROVED* constants (@true@, @false@, @nil@) are highlighted as @:value@

h3. @Scanners::Ruby@
 
* *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@

h3. @Scanners::YAML@
 
* *IMPROVED* indentation detection

h3. @Styles::Cycnus@
 
* changed a few colors (exceptions, inline strings, predefined types)

h3. @Plugin@
 
* *NEW* method @#title@
  
  Set and get the plugin's title. Titles can be arbitrary strings.
* *NEW* method @#helper@ loads helpers from different plugins
  
  Use this syntax: @helper 'other_plugin/helper_name'@

h3. @FileType@
 
* *NEW* @FileType[]@ takes @Pathname@ instances
* *NEW* regonizes @.cc@, @.cpp@, @.cp@, @.cxx@, @.c++@, @.C@, @.hh@, @.hpp@, @.h++@, @.cu@ extensions (C++)
  
  Thanks to Sander Cox and the TextMate C bundle.
* *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.

h3. @CaseIgnoringWordList@
 
* *FIXED* ("#97":http://redmine.rubychan.de/issues/97)
  
  The default value is no longer ignored.

h3. @ForRedCloth@
 
* *FIXED* for RedCloth versions 4.2.0+ ("#119":http://redmine.rubychan.de/issues/119)

h3. Cleanups
 
* warnings about character classes _[Ruby 1.9]_
* encoding issues _[Ruby 1.9]_
* documentation, code