Sha256: 7b8157a2df97115ad30440b5c56c3e48b1bc905befc77574ba97c66192a30686

Contents?: true

Size: 639 Bytes

Versions: 12

Compression:

Stored size: 639 Bytes

Contents

# -*- 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

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
rouge-4.5.1 lib/rouge/lexers/tsx.rb
rouge-4.5.0 lib/rouge/lexers/tsx.rb
rouge-4.4.0 lib/rouge/lexers/tsx.rb
rouge-4.3.0 lib/rouge/lexers/tsx.rb
rouge-4.2.1 lib/rouge/lexers/tsx.rb
rouge-4.2.0 lib/rouge/lexers/tsx.rb
rouge-4.1.3 lib/rouge/lexers/tsx.rb
rouge-4.1.2 lib/rouge/lexers/tsx.rb
rouge-4.1.1 lib/rouge/lexers/tsx.rb
rouge-4.1.0 lib/rouge/lexers/tsx.rb
rouge-4.0.1 lib/rouge/lexers/tsx.rb
rouge-4.0.0 lib/rouge/lexers/tsx.rb