blob: e003bfb90593453e51154a93a64f6bd2a55a4309 (
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
|
# -*- coding: utf-8 -*- #
# frozen_string_literal: true
module Rouge
module Lexers
load_lexer 'jsx.rb'
load_lexer 'typescript/common.rb'
class TSX < JSX
extend TypescriptCommon
title 'TSX'
desc 'TypeScript-compatible JSX (www.typescriptlang.org/docs/handbook/jsx.html)'
tag 'tsx'
filenames '*.tsx'
prepend :element_name do
rule %r/(\w+)(,)/ do
groups Name::Other, Punctuation
pop! 3
end
rule %r/</, Punctuation, :type
end
state :type do
mixin :object
rule %r/>/, Punctuation, :pop!
end
end
end
end
|