Module: Rouge::Lexers::TypescriptCommon

Included in:
TSX, Typescript
Defined in:
lib/rouge/lexers/typescript/common.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/rouge/lexers/typescript/common.rb', line 36

def self.extended(base)
  base.prepend :root do
    rule %r/[?][.]/, base::Punctuation
    rule %r/[?]{2}/, base::Operator

    # Positive Examples:
    # const cat = { name: "Garfield" } satisfies Person;
    # import {something as thingy} from 'module'
    # export { foo as default }
    # ...spreadOperator as const;
    # Negative Example:
    # cy.get('kitten').as('friend')
    rule %r{(?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))(?:(as)|(satisfies))\s+}, base::Keyword::Declaration
  end

  base.prepend :statement do
    rule %r/(#{Javascript.id_regex})(\??)(\s*)(:)/ do
      groups base::Name::Label, base::Punctuation, base::Text, base::Punctuation
      push :expr_start
    end
  end
end

Instance Method Details

#builtinsObject



27
28
29
30
31
32
33
34
# File 'lib/rouge/lexers/typescript/common.rb', line 27

def builtins
  @builtins ||= super + %w(
    Capitalize ConstructorParameters Exclude Extract InstanceType
    Lowercase NonNullable Omit OmitThisParameter Parameters
    Partial Pick Readonly Record Required
    ReturnType ThisParameterType ThisType Uncapitalize Uppercase
  )
end

#declarationsObject



14
15
16
17
18
# File 'lib/rouge/lexers/typescript/common.rb', line 14

def declarations
  @declarations ||= super + Set.new(%w(
    type abstract
  ))
end

#keywordsObject



7
8
9
10
11
12
# File 'lib/rouge/lexers/typescript/common.rb', line 7

def keywords
  @keywords ||= super + Set.new(%w(
    is namespace static private protected public
    implements readonly
  ))
end

#reservedObject



20
21
22
23
24
25
# File 'lib/rouge/lexers/typescript/common.rb', line 20

def reserved
  @reserved ||= super + Set.new(%w(
    string any void number namespace module
    declare default interface keyof
  ))
end