rouge 2.0.6 → 2.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/rougify +1 -0
- data/lib/rouge/demos/abap +6 -0
- data/lib/rouge/demos/coq +3 -1
- data/lib/rouge/demos/vue +11 -0
- data/lib/rouge/lexers/abap.rb +238 -0
- data/lib/rouge/lexers/clojure.rb +2 -2
- data/lib/rouge/lexers/coq.rb +4 -0
- data/lib/rouge/lexers/cpp.rb +5 -4
- data/lib/rouge/lexers/haml.rb +13 -3
- data/lib/rouge/lexers/html.rb +1 -1
- data/lib/rouge/lexers/javascript.rb +6 -41
- data/lib/rouge/lexers/json.rb +28 -0
- data/lib/rouge/lexers/json_doc.rb +17 -0
- data/lib/rouge/lexers/perl.rb +1 -1
- data/lib/rouge/lexers/python.rb +1 -18
- data/lib/rouge/lexers/ruby.rb +1 -1
- data/lib/rouge/lexers/rust.rb +1 -1
- data/lib/rouge/lexers/tex.rb +2 -5
- data/lib/rouge/lexers/turtle.rb +2 -2
- data/lib/rouge/lexers/typescript.rb +5 -5
- data/lib/rouge/lexers/vue.rb +124 -0
- data/lib/rouge/lexers/xml.rb +1 -1
- data/lib/rouge/version.rb +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c642d8b27b75da850a03e347206247e0396cb3cf
|
4
|
+
data.tar.gz: 94198b0ec1e78e10120292d2a909879f440fc6ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d36907f61fb6045cd4c0437870f98871c855ab29d1ba4a3ebc30f5f9bb33bf270e0081ff31d7e69c7bdb0536a5bdcc959c15c8dc88249a21eac45795eebe3ce
|
7
|
+
data.tar.gz: ed6572d2000df7e7ccf125634e4cfa4fd2d7487015a1c082b6b787784e710622004eb59b39b22750ef3fba8dcab1d230551344832828446676b153f315ac7c30
|
data/bin/rougify
CHANGED
data/lib/rouge/demos/coq
CHANGED
data/lib/rouge/demos/vue
ADDED
@@ -0,0 +1,238 @@
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
2
|
+
# ABAP elements taken from http://help.sap.com/abapdocu_750/en/index.htm?file=abapdo.htm
|
3
|
+
|
4
|
+
module Rouge
|
5
|
+
module Lexers
|
6
|
+
class ABAP < RegexLexer
|
7
|
+
title "ABAP"
|
8
|
+
desc "SAP - Advanced Business Application Programming"
|
9
|
+
tag 'abap'
|
10
|
+
filenames '*.abap'
|
11
|
+
mimetypes 'text/x-abap'
|
12
|
+
|
13
|
+
def self.keywords
|
14
|
+
@keywords = Set.new %w(
|
15
|
+
*-INPUT ?TO ABAP-SOURCE ABBREVIATED ABS ABSTRACT ACCEPT ACCEPTING
|
16
|
+
ACCORDING ACCP ACTIVATION ACTUAL ADD ADD-CORRESPONDING ADJACENT
|
17
|
+
AFTER ALIAS ALIASES ALIGN ALL ALLOCATE ALPHA ANALYSIS ANALYZER AND
|
18
|
+
ANY APPEND APPENDAGE APPENDING APPLICATION ARCHIVE AREA ARITHMETIC
|
19
|
+
AS ASCENDING ASPECT ASSERT ASSIGN ASSIGNED ASSIGNING ASSOCIATION
|
20
|
+
ASYNCHRONOUS AT ATTRIBUTES AUTHORITY AUTHORITY-CHECK AVG BACK
|
21
|
+
BACKGROUND BACKUP BACKWARD BADI BASE BEFORE BEGIN BETWEEN BIG BINARY
|
22
|
+
BINTOHEX BIT BIT-AND BIT-NOT BIT-OR BIT-XOR BLACK BLANK BLANKS BLOB
|
23
|
+
BLOCK BLOCKS BLUE BOUND BOUNDARIES BOUNDS BOXED BREAK-POINT BT
|
24
|
+
BUFFER BY BYPASSING BYTE BYTE-CA BYTE-CN BYTE-CO BYTE-CS BYTE-NA
|
25
|
+
BYTE-NS BYTE-ORDER CA CALL CALLING CASE CAST CASTING CATCH CEIL
|
26
|
+
CENTER CENTERED CHAIN CHAIN-INPUT CHAIN-REQUEST CHANGE CHANGING
|
27
|
+
CHANNELS CHAR CHAR-TO-HEX CHARACTER CHECK CHECKBOX CIRCULAR CLASS
|
28
|
+
CLASS-CODING CLASS-DATA CLASS-EVENTS CLASS-METHODS CLASS-POOL
|
29
|
+
CLEANUP CLEAR CLIENT CLNT CLOB CLOCK CLOSE CN CO COALESCE CODE
|
30
|
+
CODING COLLECT COLOR COLUMN COLUMNS COL_BACKGROUND COL_GROUP
|
31
|
+
COL_HEADING COL_KEY COL_NEGATIVE COL_NORMAL COL_POSITIVE COL_TOTAL
|
32
|
+
COMMENT COMMENTS COMMIT COMMON COMMUNICATION COMPARING COMPONENT
|
33
|
+
COMPONENTS COMPRESSION COMPUTE CONCAT CONCATENATE CONCAT_WITH_SPACE
|
34
|
+
COND CONDENSE CONDITION CONNECT CONNECTION CONSTANTS CONTEXT
|
35
|
+
CONTEXTS CONTINUE CONTROL CONTROLS CONV CONVERSION CONVERT COPIES
|
36
|
+
COPY CORRESPONDING COUNT COUNTRY COVER CP CPI CREATE CREATING
|
37
|
+
CRITICAL CS CUKY CURR CURRENCY CURRENCY_CONVERSION CURRENT CURSOR
|
38
|
+
CURSOR-SELECTION CUSTOMER CUSTOMER-FUNCTION CX_DYNAMIC_CHECK
|
39
|
+
CX_NO_CHECK CX_ROOT CX_SQL_EXCEPTION CX_STATIC_CHECK DANGEROUS DATA
|
40
|
+
DATABASE DATAINFO DATASET DATE DATS DATS_ADD_DAYS DATS_ADD_MONTHS
|
41
|
+
DATS_DAYS_BETWEEN DATS_IS_VALID DAYLIGHT DD/MM/YY DD/MM/YYYY DDMMYY
|
42
|
+
DEALLOCATE DEC DECIMALS DECIMAL_SHIFT DECLARATIONS DEEP DEFAULT
|
43
|
+
DEFERRED DEFINE DEFINING DEFINITION DELETE DELETING DEMAND
|
44
|
+
DEPARTMENT DESCENDING DESCRIBE DESTINATION DETAIL DF16_DEC DF16_RAW
|
45
|
+
DF16_SCL DF34_DEC DF34_RAW DF34_SCL DIALOG DIRECTORY DISCONNECT
|
46
|
+
DISPLAY DISPLAY-MODE DISTANCE DISTINCT DIV DIVIDE
|
47
|
+
DIVIDE-CORRESPONDING DIVISION DO DUMMY DUPLICATE DUPLICATES DURATION
|
48
|
+
DURING DYNAMIC DYNPRO E EDIT EDITOR-CALL ELSE ELSEIF EMPTY ENABLED
|
49
|
+
ENABLING ENCODING END END-ENHANCEMENT-SECTION END-LINES
|
50
|
+
END-OF-DEFINITION END-OF-FILE END-OF-PAGE END-OF-SELECTION
|
51
|
+
END-TEST-INJECTION END-TEST-SEAM ENDAT ENDCASE ENDCATCH ENDCHAIN
|
52
|
+
ENDCLASS ENDDO ENDENHANCEMENT ENDEXEC ENDFORM ENDFUNCTION ENDIAN
|
53
|
+
ENDIF ENDING ENDINTERFACE ENDLOOP ENDMETHOD ENDMODULE ENDON
|
54
|
+
ENDPROVIDE ENDSELECT ENDTRY ENDWHILE ENDWITH ENGINEERING ENHANCEMENT
|
55
|
+
ENHANCEMENT-POINT ENHANCEMENT-SECTION ENHANCEMENTS ENTRIES ENTRY
|
56
|
+
ENVIRONMENT EQ EQUIV ERRORMESSAGE ERRORS ESCAPE ESCAPING EVENT
|
57
|
+
EVENTS EXACT EXCEPT EXCEPTION EXCEPTION-TABLE EXCEPTIONS EXCLUDE
|
58
|
+
EXCLUDING EXEC EXECUTE EXISTS EXIT EXIT-COMMAND EXPAND EXPANDING
|
59
|
+
EXPIRATION EXPLICIT EXPONENT EXPORT EXPORTING EXTEND EXTENDED
|
60
|
+
EXTENSION EXTRACT FAIL FETCH FIELD FIELD-GROUPS FIELD-SYMBOL
|
61
|
+
FIELD-SYMBOLS FIELDS FILE FILTER FILTER-TABLE FILTERS FINAL FIND
|
62
|
+
FIRST FIRST-LINE FIXED-POINT FKEQ FKGE FLOOR FLTP FLUSH FONT FOR
|
63
|
+
FORM FORMAT FORWARD FOUND FRAME FRAMES FREE FRIENDS FROM FUNCTION
|
64
|
+
FUNCTION-POOL FUNCTIONALITY FURTHER GAPS GE GENERATE GET
|
65
|
+
GET_PRINT_PARAMETERS GIVING GKEQ GKGE GLOBAL GRANT GREEN GROUP
|
66
|
+
GROUPS GT HANDLE HANDLER HARMLESS HASHED HAVING HDB HEAD-LINES
|
67
|
+
HEADER HEADERS HEADING HELP-ID HELP-REQUEST HEXTOBIN HIDE HIGH HINT
|
68
|
+
HOLD HOTSPOT I ICON ID IDENTIFICATION IDENTIFIER IDS IF
|
69
|
+
IF_ABAP_CLOSE_RESOURCE IF_ABAP_CODEPAGE IF_ABAP_DB_BLOB_HANDLE
|
70
|
+
IF_ABAP_DB_CLOB_HANDLE IF_ABAP_DB_LOB_HANDLE IF_ABAP_DB_READER
|
71
|
+
IF_ABAP_DB_WRITER IF_ABAP_READER IF_ABAP_WRITER IF_MESSAGE
|
72
|
+
IF_OS_CA_INSTANCE IF_OS_CA_PERSISTENCY IF_OS_FACTORY IF_OS_QUERY
|
73
|
+
IF_OS_QUERY_MANAGER IF_OS_QUERY_OPTIONS IF_OS_STATE
|
74
|
+
IF_OS_TRANSACTION IF_OS_TRANSACTION_MANAGER IF_SERIALIZABLE_OBJECT
|
75
|
+
IF_SHM_BUILD_INSTANCE IF_SYSTEM_UUID IF_T100_DYN_MSG IF_T100_MESSAGE
|
76
|
+
IGNORE IGNORING IMMEDIATELY IMPLEMENTATION IMPLEMENTATIONS
|
77
|
+
IMPLEMENTED IMPLICIT IMPORT IMPORTING IN INACTIVE INCL INCLUDE
|
78
|
+
INCLUDES INCLUDING INCREMENT INDEX INDEX-LINE INFOTYPES INHERITING
|
79
|
+
INIT INITIAL INITIALIZATION INNER INOUT INPUT INSERT INSTANCE
|
80
|
+
INSTANCES INSTR INT1 INT2 INT4 INT8 INTENSIFIED INTERFACE
|
81
|
+
INTERFACE-POOL INTERFACES INTERNAL INTERVALS INTO INVERSE
|
82
|
+
INVERTED-DATE IS ISO ITNO JOB JOIN KEEP KEEPING KERNEL KEY KEYS
|
83
|
+
KEYWORDS KIND LANG LANGUAGE LAST LATE LAYOUT LCHR LDB_PROCESS LE
|
84
|
+
LEADING LEAVE LEFT LEFT-JUSTIFIED LEFTPLUS LEFTSPACE LEGACY LENGTH
|
85
|
+
LET LEVEL LEVELS LIKE LINE LINE-COUNT LINE-SELECTION LINE-SIZE
|
86
|
+
LINEFEED LINES LIST LIST-PROCESSING LISTBOX LITTLE LLANG LOAD
|
87
|
+
LOAD-OF-PROGRAM LOB LOCAL LOCALE LOCATOR LOG-POINT LOGFILE LOGICAL
|
88
|
+
LONG LOOP LOW LOWER LPAD LPI LRAW LT LTRIM M MAIL MAIN MAJOR-ID
|
89
|
+
MAPPING MARGIN MARK MASK MATCH MATCHCODE MAX MAXIMUM MEDIUM MEMBERS
|
90
|
+
MEMORY MESH MESSAGE MESSAGE-ID MESSAGES MESSAGING METHOD METHODS MIN
|
91
|
+
MINIMUM MINOR-ID MM/DD/YY MM/DD/YYYY MMDDYY MOD MODE MODIF MODIFIER
|
92
|
+
MODIFY MODULE MOVE MOVE-CORRESPONDING MULTIPLY
|
93
|
+
MULTIPLY-CORRESPONDING NA NAME NAMETAB NATIVE NB NE NESTED NESTING
|
94
|
+
NEW NEW-LINE NEW-PAGE NEW-SECTION NEXT NO NO-DISPLAY NO-EXTENSION
|
95
|
+
NO-GAP NO-GAPS NO-GROUPING NO-HEADING NO-SCROLLING NO-SIGN NO-TITLE
|
96
|
+
NO-TOPOFPAGE NO-ZERO NODE NODES NON-UNICODE NON-UNIQUE NOT NP NS
|
97
|
+
NULL NUMBER NUMC O OBJECT OBJECTS OBLIGATORY OCCURRENCE OCCURRENCES
|
98
|
+
OCCURS OF OFF OFFSET ON ONLY OPEN OPTION OPTIONAL OPTIONS OR ORDER
|
99
|
+
OTHER OTHERS OUT OUTER OUTPUT OUTPUT-LENGTH OVERFLOW OVERLAY PACK
|
100
|
+
PACKAGE PAD PADDING PAGE PAGES PARAMETER PARAMETER-TABLE PARAMETERS
|
101
|
+
PART PARTIALLY PATTERN PERCENTAGE PERFORM PERFORMING PERSON PF
|
102
|
+
PF-STATUS PINK PLACES POOL POSITION POS_HIGH POS_LOW PRAGMAS PREC
|
103
|
+
PRECOMPILED PREFERRED PRESERVING PRIMARY PRINT PRINT-CONTROL
|
104
|
+
PRIORITY PRIVATE PROCEDURE PROCESS PROGRAM PROPERTY PROTECTED
|
105
|
+
PROVIDE PUBLIC PUSH PUSHBUTTON PUT QUAN QUEUE-ONLY QUICKINFO
|
106
|
+
RADIOBUTTON RAISE RAISING RANGE RANGES RAW RAWSTRING READ READ-ONLY
|
107
|
+
READER RECEIVE RECEIVED RECEIVER RECEIVING RED REDEFINITION REDUCE
|
108
|
+
REDUCED REF REFERENCE REFRESH REGEX REJECT REMOTE RENAMING REPLACE
|
109
|
+
REPLACEMENT REPLACING REPORT REQUEST REQUESTED RESERVE RESET
|
110
|
+
RESOLUTION RESPECTING RESPONSIBLE RESULT RESULTS RESUMABLE RESUME
|
111
|
+
RETRY RETURN RETURNCODE RETURNING RETURNS RIGHT RIGHT-JUSTIFIED
|
112
|
+
RIGHTPLUS RIGHTSPACE RISK RMC_COMMUNICATION_FAILURE
|
113
|
+
RMC_INVALID_STATUS RMC_SYSTEM_FAILURE ROLE ROLLBACK ROUND ROWS RPAD
|
114
|
+
RTRIM RUN SAP SAP-SPOOL SAVING SCALE_PRESERVING
|
115
|
+
SCALE_PRESERVING_SCIENTIFIC SCAN SCIENTIFIC
|
116
|
+
SCIENTIFIC_WITH_LEADING_ZERO SCREEN SCROLL SCROLL-BOUNDARY SCROLLING
|
117
|
+
SEARCH SECONDARY SECONDS SECTION SELECT SELECT-OPTIONS SELECTION
|
118
|
+
SELECTION-SCREEN SELECTION-SET SELECTION-SETS SELECTION-TABLE
|
119
|
+
SELECTIONS SEND SEPARATE SEPARATED SET SHARED SHIFT SHORT
|
120
|
+
SHORTDUMP-ID SIGN SIGN_AS_POSTFIX SIMPLE SINGLE SIZE SKIP SKIPPING
|
121
|
+
SMART SOME SORT SORTABLE SORTED SOURCE SPACE SPECIFIED SPLIT SPOOL
|
122
|
+
SPOTS SQL SQLSCRIPT SSTRING STABLE STAMP STANDARD START-OF-SELECTION
|
123
|
+
STARTING STATE STATEMENT STATEMENTS STATIC STATICS STATUSINFO
|
124
|
+
STEP-LOOP STOP STRING STRUCTURE STRUCTURES STYLE SUBKEY SUBMATCHES
|
125
|
+
SUBMIT SUBROUTINE SUBSCREEN SUBSTRING SUBTRACT
|
126
|
+
SUBTRACT-CORRESPONDING SUFFIX SUM SUMMARY SUMMING SUPPLIED SUPPLY
|
127
|
+
SUPPRESS SWITCH SWITCHSTATES SYMBOL SYNCPOINTS SYNTAX SYNTAX-CHECK
|
128
|
+
SYNTAX-TRACE SYST SYSTEM-CALL SYSTEM-EXCEPTIONS SYSTEM-EXIT TAB
|
129
|
+
TABBED TABLE TABLES TABLEVIEW TABSTRIP TARGET TASK TASKS TEST
|
130
|
+
TEST-INJECTION TEST-SEAM TESTING TEXT TEXTPOOL THEN THROW TIME TIMES
|
131
|
+
TIMESTAMP TIMEZONE TIMS TIMS_IS_VALID TITLE TITLE-LINES TITLEBAR TO
|
132
|
+
TOKENIZATION TOKENS TOP-LINES TOP-OF-PAGE TRACE-FILE TRACE-TABLE
|
133
|
+
TRAILING TRANSACTION TRANSFER TRANSFORMATION TRANSLATE TRANSPORTING
|
134
|
+
TRMAC TRUNCATE TRUNCATION TRY TSTMP_ADD_SECONDS
|
135
|
+
TSTMP_CURRENT_UTCTIMESTAMP TSTMP_IS_VALID TSTMP_SECONDS_BETWEEN TYPE
|
136
|
+
TYPE-POOL TYPE-POOLS TYPES ULINE UNASSIGN UNDER UNICODE UNION UNIQUE
|
137
|
+
UNIT UNIT_CONVERSION UNIX UNPACK UNTIL UNWIND UP UPDATE UPPER USER
|
138
|
+
USER-COMMAND USING UTF-8 VALID VALUE VALUE-REQUEST VALUES VARC VARY
|
139
|
+
VARYING VERIFICATION-MESSAGE VERSION VIA VIEW VISIBLE WAIT WARNING
|
140
|
+
WHEN WHENEVER WHERE WHILE WIDTH WINDOW WINDOWS WITH WITH-HEADING
|
141
|
+
WITH-TITLE WITHOUT WORD WORK WRITE WRITER XML XSD YELLOW YES YYMMDD
|
142
|
+
Z ZERO ZONE
|
143
|
+
)
|
144
|
+
end
|
145
|
+
|
146
|
+
def self.builtins
|
147
|
+
@keywords = Set.new %w(
|
148
|
+
acos apply asin assign atan attribute bit-set boolc boolx call
|
149
|
+
call-method cast ceil cfunc charlen char_off class_constructor clear
|
150
|
+
cluster cmax cmin cnt communication_failure concat_lines_of cond
|
151
|
+
cond-var condense constructor contains contains_any_not_of
|
152
|
+
contains_any_of copy cos cosh count count_any_not_of count_any_of
|
153
|
+
create cursor data dbmaxlen dbtab deserialize destructor distance
|
154
|
+
empty error_message escape exp extensible find find_any_not_of
|
155
|
+
find_any_of find_end floor frac from_mixed group hashed header idx
|
156
|
+
include index insert ipow itab key lax lines line_exists line_index
|
157
|
+
log log10 loop loop_key match matches me mesh_path namespace nmax
|
158
|
+
nmin node numeric numofchar object parameter primary_key read ref
|
159
|
+
repeat replace rescale resource_failure reverse root round segment
|
160
|
+
sender serialize shift_left shift_right sign simple sin sinh skip
|
161
|
+
sorted space sqrt standard strlen substring substring_after
|
162
|
+
substring_before substring_from substring_to sum switch switch-var
|
163
|
+
system_failure table table_line tan tanh template text to_lower
|
164
|
+
to_mixed to_upper transform translate trunc type value variable write
|
165
|
+
xsdbool xsequence xstrlen
|
166
|
+
)
|
167
|
+
end
|
168
|
+
|
169
|
+
def self.types
|
170
|
+
@types = Set.new %w(
|
171
|
+
b c d decfloat16 decfloat34 f i int8 n p s t x
|
172
|
+
clike csequence decfloat string xstring
|
173
|
+
)
|
174
|
+
end
|
175
|
+
|
176
|
+
def self.new_keywords
|
177
|
+
@types = Set.new %w(
|
178
|
+
DATA FIELD-SYMBOL
|
179
|
+
)
|
180
|
+
end
|
181
|
+
|
182
|
+
state :root do
|
183
|
+
rule /\s+/m, Text
|
184
|
+
|
185
|
+
rule /".*/, Comment::Single
|
186
|
+
rule %r(^\*.*), Comment::Multiline
|
187
|
+
rule /\d+/, Num::Integer
|
188
|
+
rule /('|`)/, Str::Single, :single_string
|
189
|
+
rule /[\[\]\(\)\{\}\[\]\.,:\|]/, Punctuation
|
190
|
+
|
191
|
+
# builtins / new ABAP 7.40 keywords (@DATA(), ...)
|
192
|
+
rule /(->|=>)?([A-Za-z][A-Za-z0-9_\-]*)(\()/ do |m|
|
193
|
+
if m[1] != ''
|
194
|
+
token Operator, m[1]
|
195
|
+
end
|
196
|
+
|
197
|
+
if (self.class.new_keywords.include? m[2].upcase) && m[1].nil?
|
198
|
+
token Keyword, m[2]
|
199
|
+
elsif (self.class.builtins.include? m[2].downcase) && m[1].nil?
|
200
|
+
token Name::Builtin, m[2]
|
201
|
+
else
|
202
|
+
token Name, m[2]
|
203
|
+
end
|
204
|
+
token Punctuation, m[3]
|
205
|
+
end
|
206
|
+
|
207
|
+
# keywords, types and normal text
|
208
|
+
rule /\w[\w\d]*/ do |m|
|
209
|
+
if self.class.keywords.include? m[0].upcase
|
210
|
+
token Keyword
|
211
|
+
elsif self.class.types.include? m[0].downcase
|
212
|
+
token Keyword::Type
|
213
|
+
else
|
214
|
+
token Name
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
# operators
|
219
|
+
rule %r((->|->>|=>)), Operator
|
220
|
+
rule %r([-\*\+%/~=&\?<>!#@\^]+), Operator
|
221
|
+
|
222
|
+
end
|
223
|
+
|
224
|
+
state :operators do
|
225
|
+
rule %r((->|->>|=>)), Operator
|
226
|
+
rule %r([-\*\+%/~=&\?<>!#@\^]+), Operator
|
227
|
+
end
|
228
|
+
|
229
|
+
state :single_string do
|
230
|
+
rule /\\./, Str::Escape
|
231
|
+
rule /(''|``)/, Str::Escape
|
232
|
+
rule /['`]/, Str::Single, :pop!
|
233
|
+
rule /[^\\'`]+/, Str::Single
|
234
|
+
end
|
235
|
+
|
236
|
+
end
|
237
|
+
end
|
238
|
+
end
|
data/lib/rouge/lexers/clojure.rb
CHANGED
@@ -9,7 +9,7 @@ module Rouge
|
|
9
9
|
tag 'clojure'
|
10
10
|
aliases 'clj', 'cljs'
|
11
11
|
|
12
|
-
filenames '*.clj', '*.cljs', '*.cljc'
|
12
|
+
filenames '*.clj', '*.cljs', '*.cljc', 'build.boot'
|
13
13
|
|
14
14
|
mimetypes 'text/x-clojure', 'application/x-clojure'
|
15
15
|
|
@@ -73,7 +73,7 @@ module Rouge
|
|
73
73
|
end
|
74
74
|
|
75
75
|
state :root do
|
76
|
-
rule
|
76
|
+
rule /;.*?$/, Comment::Single
|
77
77
|
rule /\s+/m, Text::Whitespace
|
78
78
|
|
79
79
|
rule /-?\d+\.\d+/, Num::Float
|
data/lib/rouge/lexers/coq.rb
CHANGED
@@ -150,6 +150,10 @@ module Rouge
|
|
150
150
|
rule /"/, Str::Double, :pop!
|
151
151
|
end
|
152
152
|
|
153
|
+
state :escape_sequence do
|
154
|
+
rule /\\[\\"'ntbr]/, Str::Escape
|
155
|
+
end
|
156
|
+
|
153
157
|
state :continue_id do
|
154
158
|
# the stream starts with an id (stored in @name) and continues here
|
155
159
|
rule dot_id do |m|
|
data/lib/rouge/lexers/cpp.rb
CHANGED
@@ -15,15 +15,16 @@ module Rouge
|
|
15
15
|
'*.c++', '*.h++',
|
16
16
|
'*.cc', '*.hh',
|
17
17
|
'*.cxx', '*.hxx',
|
18
|
-
'*.pde', '*.ino'
|
18
|
+
'*.pde', '*.ino',
|
19
|
+
'*.tpp'
|
19
20
|
mimetypes 'text/x-c++hdr', 'text/x-c++src'
|
20
21
|
|
21
22
|
def self.keywords
|
22
23
|
@keywords ||= super + Set.new(%w(
|
23
|
-
asm catch const_cast delete dynamic_cast explicit export
|
24
|
+
asm auto catch const_cast delete dynamic_cast explicit export
|
24
25
|
friend mutable namespace new operator private protected public
|
25
|
-
reinterpret_cast restrict static_cast template this throw
|
26
|
-
throws typeid typename using virtual
|
26
|
+
reinterpret_cast restrict size_of static_cast template this throw
|
27
|
+
throws typeid typename using virtual final override
|
27
28
|
|
28
29
|
alignas alignof constexpr decltype noexcept static_assert
|
29
30
|
thread_local try
|
data/lib/rouge/lexers/haml.rb
CHANGED
@@ -45,6 +45,11 @@ module Rouge
|
|
45
45
|
@html ||= HTML.new(options)
|
46
46
|
end
|
47
47
|
|
48
|
+
def ruby!(state)
|
49
|
+
ruby.reset!
|
50
|
+
push state
|
51
|
+
end
|
52
|
+
|
48
53
|
def filters
|
49
54
|
@filters ||= {
|
50
55
|
'javascript' => Javascript.new(options),
|
@@ -104,7 +109,7 @@ module Rouge
|
|
104
109
|
rule /-/ do
|
105
110
|
token Punctuation
|
106
111
|
reset_stack
|
107
|
-
|
112
|
+
ruby! :ruby_line
|
108
113
|
end
|
109
114
|
|
110
115
|
# filters
|
@@ -131,8 +136,9 @@ module Rouge
|
|
131
136
|
|
132
137
|
state :tag do
|
133
138
|
mixin :css
|
134
|
-
rule(
|
139
|
+
rule(/[{]/) { token Punctuation; ruby! :ruby_tag }
|
135
140
|
rule(/\[#{dot}*?\]/) { delegate ruby }
|
141
|
+
|
136
142
|
rule /\(/, Punctuation, :html_attributes
|
137
143
|
rule /\s*\n/, Text, :pop!
|
138
144
|
|
@@ -153,7 +159,7 @@ module Rouge
|
|
153
159
|
rule /[&!]?[=!]/ do
|
154
160
|
token Punctuation
|
155
161
|
reset_stack
|
156
|
-
|
162
|
+
ruby! :ruby_line
|
157
163
|
end
|
158
164
|
|
159
165
|
rule(//) { push :plain }
|
@@ -166,6 +172,10 @@ module Rouge
|
|
166
172
|
rule(/.*?(?=(,$| \|)?[ \t]*$)/) { delegate ruby }
|
167
173
|
end
|
168
174
|
|
175
|
+
state :ruby_tag do
|
176
|
+
mixin :ruby_inner
|
177
|
+
end
|
178
|
+
|
169
179
|
state :html_attributes do
|
170
180
|
rule /\s+/, Text
|
171
181
|
rule /#{identifier}\s*=/, Name::Attribute, :html_attribute_value
|
data/lib/rouge/lexers/html.rb
CHANGED
@@ -160,6 +160,11 @@ module Rouge
|
|
160
160
|
push :expr_start
|
161
161
|
end
|
162
162
|
|
163
|
+
rule /(\@)(\w+)?/ do
|
164
|
+
groups Punctuation, Name::Decorator
|
165
|
+
push :expr_start
|
166
|
+
end
|
167
|
+
|
163
168
|
rule /[{}]/, Punctuation, :statement
|
164
169
|
|
165
170
|
rule id do |m|
|
@@ -241,7 +246,7 @@ module Rouge
|
|
241
246
|
state :template_string do
|
242
247
|
rule /\${/, Punctuation, :template_string_expr
|
243
248
|
rule /`/, Str::Double, :pop!
|
244
|
-
rule /(\\\\|\\[\$`]|[^\$`]|\$
|
249
|
+
rule /(\\\\|\\[\$`]|[^\$`]|\$(?!{))*/, Str::Double
|
245
250
|
end
|
246
251
|
|
247
252
|
state :template_string_expr do
|
@@ -249,45 +254,5 @@ module Rouge
|
|
249
254
|
mixin :root
|
250
255
|
end
|
251
256
|
end
|
252
|
-
|
253
|
-
class JSON < RegexLexer
|
254
|
-
desc "JavaScript Object Notation (json.org)"
|
255
|
-
tag 'json'
|
256
|
-
filenames '*.json'
|
257
|
-
mimetypes 'application/json', 'application/vnd.api+json',
|
258
|
-
'application/hal+json'
|
259
|
-
|
260
|
-
# TODO: is this too much of a performance hit? JSON is quite simple,
|
261
|
-
# so I'd think this wouldn't be too bad, but for large documents this
|
262
|
-
# could mean doing two full lexes.
|
263
|
-
def self.analyze_text(text)
|
264
|
-
return 0.8 if text =~ /\A\s*{/m && text.lexes_cleanly?(self)
|
265
|
-
end
|
266
|
-
|
267
|
-
state :root do
|
268
|
-
rule /\s+/m, Text::Whitespace
|
269
|
-
rule /"/, Str::Double, :string
|
270
|
-
rule /(?:true|false|null)\b/, Keyword::Constant
|
271
|
-
rule /[{},:\[\]]/, Punctuation
|
272
|
-
rule /-?(?:0|[1-9]\d*)\.\d+(?:e[+-]\d+)?/i, Num::Float
|
273
|
-
rule /-?(?:0|[1-9]\d*)(?:e[+-]\d+)?/i, Num::Integer
|
274
|
-
end
|
275
|
-
|
276
|
-
state :string do
|
277
|
-
rule /[^\\"]+/, Str::Double
|
278
|
-
rule /\\./, Str::Escape
|
279
|
-
rule /"/, Str::Double, :pop!
|
280
|
-
end
|
281
|
-
end
|
282
|
-
|
283
|
-
class JSONDOC < JSON
|
284
|
-
desc "JavaScript Object Notation with extenstions for documentation"
|
285
|
-
tag 'json-doc'
|
286
|
-
|
287
|
-
prepend :root do
|
288
|
-
rule %r(//.*?$), Comment::Single
|
289
|
-
rule /(\.\.\.)/, Comment::Single
|
290
|
-
end
|
291
|
-
end
|
292
257
|
end
|
293
258
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
2
|
+
|
3
|
+
module Rouge
|
4
|
+
module Lexers
|
5
|
+
class JSON < RegexLexer
|
6
|
+
desc "JavaScript Object Notation (json.org)"
|
7
|
+
tag 'json'
|
8
|
+
filenames '*.json'
|
9
|
+
mimetypes 'application/json', 'application/vnd.api+json',
|
10
|
+
'application/hal+json'
|
11
|
+
|
12
|
+
state :root do
|
13
|
+
rule /\s+/m, Text::Whitespace
|
14
|
+
rule /"/, Str::Double, :string
|
15
|
+
rule /(?:true|false|null)\b/, Keyword::Constant
|
16
|
+
rule /[{},:\[\]]/, Punctuation
|
17
|
+
rule /-?(?:0|[1-9]\d*)\.\d+(?:e[+-]\d+)?/i, Num::Float
|
18
|
+
rule /-?(?:0|[1-9]\d*)(?:e[+-]\d+)?/i, Num::Integer
|
19
|
+
end
|
20
|
+
|
21
|
+
state :string do
|
22
|
+
rule /[^\\"]+/, Str::Double
|
23
|
+
rule /\\./, Str::Escape
|
24
|
+
rule /"/, Str::Double, :pop!
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
2
|
+
|
3
|
+
module Rouge
|
4
|
+
module Lexers
|
5
|
+
load_lexer 'json.rb'
|
6
|
+
|
7
|
+
class JSONDOC < JSON
|
8
|
+
desc "JavaScript Object Notation with extenstions for documentation"
|
9
|
+
tag 'json-doc'
|
10
|
+
|
11
|
+
prepend :root do
|
12
|
+
rule %r(//.*?$), Comment::Single
|
13
|
+
rule /(\.\.\.)/, Comment::Single
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/rouge/lexers/perl.rb
CHANGED
@@ -66,7 +66,7 @@ module Rouge
|
|
66
66
|
|
67
67
|
state :root do
|
68
68
|
rule /#.*?$/, Comment::Single
|
69
|
-
rule /^=[a-zA-Z0-9]+\s+.*?\n=cut
|
69
|
+
rule /^=[a-zA-Z0-9]+\s+.*?\n=cut/m, Comment::Multiline
|
70
70
|
rule /(?:#{keywords.join('|')})\b/, Keyword
|
71
71
|
|
72
72
|
rule /(format)(\s+)([a-zA-Z0-9_]+)(\s*)(=)(\s*\n)/ do
|
data/lib/rouge/lexers/python.rb
CHANGED
@@ -82,6 +82,7 @@ module Rouge
|
|
82
82
|
Text,
|
83
83
|
Keyword::Namespace
|
84
84
|
end
|
85
|
+
|
85
86
|
rule /(import)(\s+)(#{dotted_identifier})/ do
|
86
87
|
groups Keyword::Namespace, Text, Name::Namespace
|
87
88
|
end
|
@@ -155,24 +156,6 @@ module Rouge
|
|
155
156
|
mixin :raise
|
156
157
|
end
|
157
158
|
|
158
|
-
state :import do
|
159
|
-
# non-line-terminating whitespace
|
160
|
-
rule /(?:[ \t]|\\\n)+/, Text
|
161
|
-
|
162
|
-
rule /as\b/, Keyword::Namespace
|
163
|
-
rule /,/, Operator
|
164
|
-
rule dotted_identifier, Name::Namespace
|
165
|
-
rule(//) { pop! } # anything else -> go back
|
166
|
-
end
|
167
|
-
|
168
|
-
state :fromimport do
|
169
|
-
# non-line-terminating whitespace
|
170
|
-
rule /(?:[ \t]|\\\n)+/, Text
|
171
|
-
|
172
|
-
rule /import\b/, Keyword::Namespace, :pop!
|
173
|
-
rule dotted_identifier, Name::Namespace
|
174
|
-
end
|
175
|
-
|
176
159
|
state :strings do
|
177
160
|
rule /%(\([a-z0-9_]+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?/i, Str::Interpol
|
178
161
|
end
|
data/lib/rouge/lexers/ruby.rb
CHANGED
@@ -79,7 +79,7 @@ module Rouge
|
|
79
79
|
|
80
80
|
state :strings do
|
81
81
|
mixin :symbols
|
82
|
-
rule /\b[a-z_]\w
|
82
|
+
rule /\b[a-z_]\w*?[?!]?:\s+/, Str::Symbol, :expr_start
|
83
83
|
rule /'(\\\\|\\'|[^'])*'/, Str::Single
|
84
84
|
rule /"/, Str::Double, :simple_string
|
85
85
|
rule /(?<!\.)`/, Str::Backtick, :simple_backtick
|
data/lib/rouge/lexers/rust.rb
CHANGED
@@ -86,7 +86,7 @@ module Rouge
|
|
86
86
|
rule %r([=-]>), Keyword
|
87
87
|
rule %r(<->), Keyword
|
88
88
|
rule /[()\[\]{}|,:;]/, Punctuation
|
89
|
-
rule /[
|
89
|
+
rule /[*!@~&+%^<>=-\?]/, Operator
|
90
90
|
|
91
91
|
rule /([.]\s*)?#{id}(?=\s*[(])/m, Name::Function
|
92
92
|
rule /[.]\s*#{id}/, Name::Property
|
data/lib/rouge/lexers/tex.rb
CHANGED
@@ -8,14 +8,11 @@ module Rouge
|
|
8
8
|
tag 'tex'
|
9
9
|
aliases 'TeX', 'LaTeX', 'latex'
|
10
10
|
|
11
|
-
filenames '*.tex', '*.aux', '*.toc'
|
11
|
+
filenames '*.tex', '*.aux', '*.toc', '*.sty', '*.cls'
|
12
12
|
mimetypes 'text/x-tex', 'text/x-latex'
|
13
13
|
|
14
14
|
def self.analyze_text(text)
|
15
|
-
return 1 if text =~ /\A\s*\\documentclass/
|
16
|
-
return 1 if text =~ /\A\s*\\input/
|
17
|
-
return 1 if text =~ /\A\s*\\documentstyle/
|
18
|
-
return 1 if text =~ /\A\s*\\relax/
|
15
|
+
return 1 if text =~ /\A\s*\\(documentclass|input|documentstyle|relax|ProvidesPackage|ProvidesClass)/
|
19
16
|
end
|
20
17
|
|
21
18
|
command = /\\([a-z]+|\s+|.)/i
|
data/lib/rouge/lexers/turtle.rb
CHANGED
@@ -63,8 +63,8 @@ module Rouge
|
|
63
63
|
|
64
64
|
rule /\s+/, Text::Whitespace
|
65
65
|
|
66
|
-
rule /[
|
67
|
-
rule /[
|
66
|
+
rule /[^:;<>#\@"\(\).\[\]\{\} ]+:/, Name::Namespace
|
67
|
+
rule /[^:;<>#\@"\(\).\[\]\{\} ]+/, Name
|
68
68
|
|
69
69
|
end
|
70
70
|
end
|
@@ -10,9 +10,9 @@ module Rouge
|
|
10
10
|
|
11
11
|
tag 'typescript'
|
12
12
|
aliases 'ts'
|
13
|
-
|
13
|
+
|
14
14
|
filenames '*.ts', '*.d.ts'
|
15
|
-
|
15
|
+
|
16
16
|
mimetypes 'text/typescript'
|
17
17
|
|
18
18
|
def self.keywords
|
@@ -22,7 +22,7 @@ module Rouge
|
|
22
22
|
super async await extends implements readonly
|
23
23
|
))
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
def self.declarations
|
27
27
|
@declarations ||= super + Set.new(%w(
|
28
28
|
const type constructor abstract
|
@@ -32,10 +32,10 @@ module Rouge
|
|
32
32
|
def self.reserved
|
33
33
|
@reserved ||= super + Set.new(%w(
|
34
34
|
string any number namespace module
|
35
|
-
declare default interface
|
35
|
+
declare default interface
|
36
36
|
))
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
def self.builtins
|
40
40
|
@builtins ||= super + %w(
|
41
41
|
Promise Set Map WeakSet WeakMap Symbol
|
@@ -0,0 +1,124 @@
|
|
1
|
+
module Rouge
|
2
|
+
module Lexers
|
3
|
+
load_lexer 'html.rb'
|
4
|
+
|
5
|
+
class Vue < HTML
|
6
|
+
desc 'Vue.js single-file components'
|
7
|
+
tag 'vue'
|
8
|
+
aliases 'vuejs'
|
9
|
+
filenames '*.vue'
|
10
|
+
|
11
|
+
mimetypes 'text/x-vue', 'application/x-vue'
|
12
|
+
|
13
|
+
def initialize(*)
|
14
|
+
super
|
15
|
+
@js = Javascript.new(options)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.analyze_text(text)
|
19
|
+
return 0
|
20
|
+
end
|
21
|
+
|
22
|
+
def lookup_lang(lang)
|
23
|
+
case lang
|
24
|
+
when 'html' then HTML
|
25
|
+
when 'css' then CSS
|
26
|
+
when 'javascript' then Javascript
|
27
|
+
when 'sass' then Sass
|
28
|
+
when 'scss' then Scss
|
29
|
+
when 'coffee' then CoffeeScript
|
30
|
+
# TODO: add more when the lexers are done
|
31
|
+
else
|
32
|
+
PlainText
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
start { @js.reset! }
|
37
|
+
|
38
|
+
prepend :root do
|
39
|
+
rule /(<)(\s*)(template)/ do
|
40
|
+
groups Name::Tag, Text, Keyword
|
41
|
+
@lang = HTML
|
42
|
+
push :template
|
43
|
+
push :lang_tag
|
44
|
+
end
|
45
|
+
|
46
|
+
rule /(<)(\s*)(style)/ do
|
47
|
+
groups Name::Tag, Text, Keyword
|
48
|
+
@lang = CSS
|
49
|
+
push :style
|
50
|
+
push :lang_tag
|
51
|
+
end
|
52
|
+
|
53
|
+
rule /(<)(\s*)(script)/ do
|
54
|
+
groups Name::Tag, Text, Keyword
|
55
|
+
@lang = Javascript
|
56
|
+
push :script
|
57
|
+
push :lang_tag
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
state :style do
|
62
|
+
rule /(<\s*\/\s*)(style)(\s*>)/ do
|
63
|
+
groups Name::Tag, Keyword, Name::Tag
|
64
|
+
pop!
|
65
|
+
end
|
66
|
+
|
67
|
+
mixin :style_content
|
68
|
+
mixin :embed
|
69
|
+
end
|
70
|
+
|
71
|
+
state :script do
|
72
|
+
rule /(<\s*\/\s*)(script)(\s*>)/ do
|
73
|
+
groups Name::Tag, Keyword, Name::Tag
|
74
|
+
pop!
|
75
|
+
end
|
76
|
+
|
77
|
+
mixin :script_content
|
78
|
+
mixin :embed
|
79
|
+
end
|
80
|
+
|
81
|
+
state :lang_tag do
|
82
|
+
rule /(lang\s*=)(\s*)("(?:\\.|[^\\])*?"|'(\\.|[^\\])*?'|[^\s>]+)/ do |m|
|
83
|
+
groups Name::Attribute, Text, Str
|
84
|
+
@lang = lookup_lang(m[2])
|
85
|
+
end
|
86
|
+
|
87
|
+
mixin :tag
|
88
|
+
end
|
89
|
+
|
90
|
+
state :template do
|
91
|
+
rule %r((<\s*/\s*)(template)(\s*>)) do
|
92
|
+
groups Name::Tag, Keyword, Name::Tag
|
93
|
+
pop!
|
94
|
+
end
|
95
|
+
|
96
|
+
rule /{{/ do
|
97
|
+
token Str::Interpol
|
98
|
+
push :template_interpol
|
99
|
+
@js.reset!
|
100
|
+
end
|
101
|
+
|
102
|
+
mixin :embed
|
103
|
+
end
|
104
|
+
|
105
|
+
state :template_interpol do
|
106
|
+
rule /}}/, Str::Interpol, :pop!
|
107
|
+
rule /}/, Error
|
108
|
+
mixin :template_interpol_inner
|
109
|
+
end
|
110
|
+
|
111
|
+
state :template_interpol_inner do
|
112
|
+
rule(/{/) { delegate @js; push }
|
113
|
+
rule(/}/) { delegate @js; pop! }
|
114
|
+
rule(/[^{}]+/) { delegate @js }
|
115
|
+
end
|
116
|
+
|
117
|
+
state :embed do
|
118
|
+
rule(/[^{<]+/) { delegate @lang }
|
119
|
+
rule(/[<{][^<{]*/) { delegate @lang }
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
data/lib/rouge/lexers/xml.rb
CHANGED
data/lib/rouge/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rouge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeanine Adkisson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-18 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Rouge aims to a be a simple, easy-to-extend drop-in replacement for pygments.
|
14
14
|
email:
|
@@ -23,6 +23,7 @@ files:
|
|
23
23
|
- bin/rougify
|
24
24
|
- lib/rouge.rb
|
25
25
|
- lib/rouge/cli.rb
|
26
|
+
- lib/rouge/demos/abap
|
26
27
|
- lib/rouge/demos/actionscript
|
27
28
|
- lib/rouge/demos/apache
|
28
29
|
- lib/rouge/demos/apiblueprint
|
@@ -132,6 +133,7 @@ files:
|
|
132
133
|
- lib/rouge/demos/verilog
|
133
134
|
- lib/rouge/demos/vhdl
|
134
135
|
- lib/rouge/demos/viml
|
136
|
+
- lib/rouge/demos/vue
|
135
137
|
- lib/rouge/demos/xml
|
136
138
|
- lib/rouge/demos/yaml
|
137
139
|
- lib/rouge/formatter.rb
|
@@ -150,6 +152,7 @@ files:
|
|
150
152
|
- lib/rouge/guessers/modeline.rb
|
151
153
|
- lib/rouge/guessers/source.rb
|
152
154
|
- lib/rouge/lexer.rb
|
155
|
+
- lib/rouge/lexers/abap.rb
|
153
156
|
- lib/rouge/lexers/actionscript.rb
|
154
157
|
- lib/rouge/lexers/apache.rb
|
155
158
|
- lib/rouge/lexers/apache/keywords.yml
|
@@ -197,6 +200,8 @@ files:
|
|
197
200
|
- lib/rouge/lexers/java.rb
|
198
201
|
- lib/rouge/lexers/javascript.rb
|
199
202
|
- lib/rouge/lexers/jinja.rb
|
203
|
+
- lib/rouge/lexers/json.rb
|
204
|
+
- lib/rouge/lexers/json_doc.rb
|
200
205
|
- lib/rouge/lexers/jsonnet.rb
|
201
206
|
- lib/rouge/lexers/jsx.rb
|
202
207
|
- lib/rouge/lexers/julia.rb
|
@@ -264,6 +269,7 @@ files:
|
|
264
269
|
- lib/rouge/lexers/vhdl.rb
|
265
270
|
- lib/rouge/lexers/viml.rb
|
266
271
|
- lib/rouge/lexers/viml/keywords.rb
|
272
|
+
- lib/rouge/lexers/vue.rb
|
267
273
|
- lib/rouge/lexers/xml.rb
|
268
274
|
- lib/rouge/lexers/yaml.rb
|
269
275
|
- lib/rouge/plugins/redcarpet.rb
|