rugments 1.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +52 -0
  3. data/README.md +195 -0
  4. data/bin/rugmentize +6 -0
  5. data/lib/rugments/cli.rb +357 -0
  6. data/lib/rugments/formatter.rb +29 -0
  7. data/lib/rugments/formatters/html.rb +142 -0
  8. data/lib/rugments/formatters/null.rb +17 -0
  9. data/lib/rugments/formatters/terminal256.rb +174 -0
  10. data/lib/rugments/lexer.rb +431 -0
  11. data/lib/rugments/lexers/apache/keywords.yml +453 -0
  12. data/lib/rugments/lexers/apache.rb +67 -0
  13. data/lib/rugments/lexers/apple_script.rb +366 -0
  14. data/lib/rugments/lexers/c.rb +210 -0
  15. data/lib/rugments/lexers/clojure.rb +109 -0
  16. data/lib/rugments/lexers/coffeescript.rb +172 -0
  17. data/lib/rugments/lexers/common_lisp.rb +343 -0
  18. data/lib/rugments/lexers/conf.rb +22 -0
  19. data/lib/rugments/lexers/cpp.rb +63 -0
  20. data/lib/rugments/lexers/csharp.rb +85 -0
  21. data/lib/rugments/lexers/css.rb +269 -0
  22. data/lib/rugments/lexers/dart.rb +102 -0
  23. data/lib/rugments/lexers/diff.rb +39 -0
  24. data/lib/rugments/lexers/elixir.rb +105 -0
  25. data/lib/rugments/lexers/erb.rb +54 -0
  26. data/lib/rugments/lexers/erlang.rb +116 -0
  27. data/lib/rugments/lexers/factor.rb +300 -0
  28. data/lib/rugments/lexers/gherkin/keywords.rb +13 -0
  29. data/lib/rugments/lexers/gherkin.rb +135 -0
  30. data/lib/rugments/lexers/go.rb +176 -0
  31. data/lib/rugments/lexers/groovy.rb +102 -0
  32. data/lib/rugments/lexers/haml.rb +226 -0
  33. data/lib/rugments/lexers/handlebars.rb +77 -0
  34. data/lib/rugments/lexers/haskell.rb +181 -0
  35. data/lib/rugments/lexers/html.rb +92 -0
  36. data/lib/rugments/lexers/http.rb +78 -0
  37. data/lib/rugments/lexers/ini.rb +55 -0
  38. data/lib/rugments/lexers/io.rb +66 -0
  39. data/lib/rugments/lexers/java.rb +74 -0
  40. data/lib/rugments/lexers/javascript.rb +258 -0
  41. data/lib/rugments/lexers/literate_coffeescript.rb +31 -0
  42. data/lib/rugments/lexers/literate_haskell.rb +34 -0
  43. data/lib/rugments/lexers/llvm.rb +82 -0
  44. data/lib/rugments/lexers/lua/builtins.rb +21 -0
  45. data/lib/rugments/lexers/lua.rb +120 -0
  46. data/lib/rugments/lexers/make.rb +114 -0
  47. data/lib/rugments/lexers/markdown.rb +151 -0
  48. data/lib/rugments/lexers/matlab/builtins.rb +10 -0
  49. data/lib/rugments/lexers/matlab.rb +70 -0
  50. data/lib/rugments/lexers/moonscript.rb +108 -0
  51. data/lib/rugments/lexers/nginx.rb +69 -0
  52. data/lib/rugments/lexers/nim.rb +149 -0
  53. data/lib/rugments/lexers/objective_c.rb +188 -0
  54. data/lib/rugments/lexers/ocaml.rb +109 -0
  55. data/lib/rugments/lexers/perl.rb +195 -0
  56. data/lib/rugments/lexers/php/builtins.rb +192 -0
  57. data/lib/rugments/lexers/php.rb +162 -0
  58. data/lib/rugments/lexers/plain_text.rb +23 -0
  59. data/lib/rugments/lexers/prolog.rb +62 -0
  60. data/lib/rugments/lexers/properties.rb +53 -0
  61. data/lib/rugments/lexers/puppet.rb +126 -0
  62. data/lib/rugments/lexers/python.rb +225 -0
  63. data/lib/rugments/lexers/qml.rb +70 -0
  64. data/lib/rugments/lexers/r.rb +55 -0
  65. data/lib/rugments/lexers/racket.rb +540 -0
  66. data/lib/rugments/lexers/ruby.rb +413 -0
  67. data/lib/rugments/lexers/rust.rb +188 -0
  68. data/lib/rugments/lexers/sass/common.rb +172 -0
  69. data/lib/rugments/lexers/sass.rb +72 -0
  70. data/lib/rugments/lexers/scala.rb +140 -0
  71. data/lib/rugments/lexers/scheme.rb +109 -0
  72. data/lib/rugments/lexers/scss.rb +32 -0
  73. data/lib/rugments/lexers/sed.rb +167 -0
  74. data/lib/rugments/lexers/shell.rb +150 -0
  75. data/lib/rugments/lexers/slim.rb +222 -0
  76. data/lib/rugments/lexers/smalltalk.rb +114 -0
  77. data/lib/rugments/lexers/sml.rb +345 -0
  78. data/lib/rugments/lexers/sql.rb +138 -0
  79. data/lib/rugments/lexers/swift.rb +153 -0
  80. data/lib/rugments/lexers/tcl.rb +189 -0
  81. data/lib/rugments/lexers/tex.rb +70 -0
  82. data/lib/rugments/lexers/toml.rb +68 -0
  83. data/lib/rugments/lexers/vb.rb +162 -0
  84. data/lib/rugments/lexers/viml/keywords.rb +11 -0
  85. data/lib/rugments/lexers/viml.rb +99 -0
  86. data/lib/rugments/lexers/xml.rb +57 -0
  87. data/lib/rugments/lexers/yaml.rb +362 -0
  88. data/lib/rugments/plugins/redcarpet.rb +28 -0
  89. data/lib/rugments/regex_lexer.rb +432 -0
  90. data/lib/rugments/template_lexer.rb +23 -0
  91. data/lib/rugments/text_analyzer.rb +46 -0
  92. data/lib/rugments/theme.rb +202 -0
  93. data/lib/rugments/themes/base16.rb +128 -0
  94. data/lib/rugments/themes/colorful.rb +65 -0
  95. data/lib/rugments/themes/github.rb +69 -0
  96. data/lib/rugments/themes/monokai.rb +88 -0
  97. data/lib/rugments/themes/monokai_sublime.rb +89 -0
  98. data/lib/rugments/themes/thankful_eyes.rb +69 -0
  99. data/lib/rugments/token.rb +180 -0
  100. data/lib/rugments/util.rb +99 -0
  101. data/lib/rugments/version.rb +3 -0
  102. data/lib/rugments.rb +33 -0
  103. metadata +149 -0
@@ -0,0 +1,128 @@
1
+ module Rugments
2
+ module Themes
3
+ # default base16 theme
4
+ # by Chris Kempson (http://chriskempson.com)
5
+ class Base16 < CSSTheme
6
+ name 'base16'
7
+
8
+ palette base00: '#151515'
9
+ palette base01: '#202020'
10
+ palette base02: '#303030'
11
+ palette base03: '#505050'
12
+ palette base04: '#b0b0b0'
13
+ palette base05: '#d0d0d0'
14
+ palette base06: '#e0e0e0'
15
+ palette base07: '#f5f5f5'
16
+ palette base08: '#ac4142'
17
+ palette base09: '#d28445'
18
+ palette base0A: '#f4bf75'
19
+ palette base0B: '#90a959'
20
+ palette base0C: '#75b5aa'
21
+ palette base0D: '#6a9fb5'
22
+ palette base0E: '#aa759f'
23
+ palette base0F: '#8f5536'
24
+
25
+ extend HasModes
26
+
27
+ def self.light!
28
+ mode :dark # indicate that there is a dark variant
29
+ mode! :light
30
+ end
31
+
32
+ def self.dark!
33
+ mode :light # indicate that there is a light variant
34
+ mode! :dark
35
+ end
36
+
37
+ def self.make_dark!
38
+ style Text, fg: :base05, bg: :base00
39
+ end
40
+
41
+ def self.make_light!
42
+ style Text, fg: :base02
43
+ end
44
+
45
+ light!
46
+
47
+ style Error, fg: :base00, bg: :base08
48
+ style Comment, fg: :base03
49
+
50
+ style Comment::Preproc,
51
+ Name::Tag, fg: :base0A
52
+
53
+ style Operator,
54
+ Punctuation, fg: :base05
55
+
56
+ style Generic::Inserted, fg: :base0B
57
+ style Generic::Deleted, fg: :base08
58
+ style Generic::Heading, fg: :base0D, bg: :base00, bold: true
59
+
60
+ style Keyword, fg: :base0E
61
+ style Keyword::Constant,
62
+ Keyword::Type, fg: :base09
63
+
64
+ style Keyword::Declaration, fg: :base09
65
+
66
+ style Literal::String, fg: :base0B
67
+ style Literal::String::Regex, fg: :base0C
68
+
69
+ style Literal::String::Interpol,
70
+ Literal::String::Escape, fg: :base0F
71
+
72
+ style Name::Namespace,
73
+ Name::Class,
74
+ Name::Constant, fg: :base0A
75
+
76
+ style Name::Attribute, fg: :base0D
77
+
78
+ style Literal::Number,
79
+ Literal::String::Symbol, fg: :base0B
80
+
81
+ class Solarized < Base16
82
+ name 'base16.solarized'
83
+ light!
84
+ # author "Ethan Schoonover (http://ethanschoonover.com/solarized)"
85
+
86
+ palette base00: '#002b36'
87
+ palette base01: '#073642'
88
+ palette base02: '#586e75'
89
+ palette base03: '#657b83'
90
+ palette base04: '#839496'
91
+ palette base05: '#93a1a1'
92
+ palette base06: '#eee8d5'
93
+ palette base07: '#fdf6e3'
94
+ palette base08: '#dc322f'
95
+ palette base09: '#cb4b16'
96
+ palette base0A: '#b58900'
97
+ palette base0B: '#859900'
98
+ palette base0C: '#2aa198'
99
+ palette base0D: '#268bd2'
100
+ palette base0E: '#6c71c4'
101
+ palette base0F: '#d33682'
102
+ end
103
+
104
+ class Monokai < Base16
105
+ name 'base16.monokai'
106
+ dark!
107
+
108
+ # author "Wimer Hazenberg (http://www.monokai.nl)"
109
+ palette base00: '#272822'
110
+ palette base01: '#383830'
111
+ palette base02: '#49483e'
112
+ palette base03: '#75715e'
113
+ palette base04: '#a59f85'
114
+ palette base05: '#f8f8f2'
115
+ palette base06: '#f5f4f1'
116
+ palette base07: '#f9f8f5'
117
+ palette base08: '#f92672'
118
+ palette base09: '#fd971f'
119
+ palette base0A: '#f4bf75'
120
+ palette base0B: '#a6e22e'
121
+ palette base0C: '#a1efe4'
122
+ palette base0D: '#66d9ef'
123
+ palette base0E: '#ae81ff'
124
+ palette base0F: '#cc6633'
125
+ end
126
+ end
127
+ end
128
+ end
@@ -0,0 +1,65 @@
1
+ module Rugments
2
+ module Themes
3
+ # stolen from pygments
4
+ class Colorful < CSSTheme
5
+ name 'colorful'
6
+
7
+ style Text, fg: '#bbbbbb', bg: '#000'
8
+
9
+ style Comment, fg: '#888'
10
+ style Comment::Preproc, fg: '#579'
11
+ style Comment::Special, fg: '#cc0000', bold: true
12
+
13
+ style Keyword, fg: '#080', bold: true
14
+ style Keyword::Pseudo, fg: '#038'
15
+ style Keyword::Type, fg: '#339'
16
+
17
+ style Operator, fg: '#333'
18
+ style Operator::Word, fg: '#000', bold: true
19
+
20
+ style Name::Builtin, fg: '#007020'
21
+ style Name::Function, fg: '#06B', bold: true
22
+ style Name::Class, fg: '#B06', bold: true
23
+ style Name::Namespace, fg: '#0e84b5', bold: true
24
+ style Name::Exception, fg: '#F00', bold: true
25
+ style Name::Variable, fg: '#963'
26
+ style Name::Variable::Instance, fg: '#33B'
27
+ style Name::Variable::Class, fg: '#369'
28
+ style Name::Variable::Global, fg: '#d70', bold: true
29
+ style Name::Constant, fg: '#036', bold: true
30
+ style Name::Label, fg: '#970', bold: true
31
+ style Name::Entity, fg: '#800', bold: true
32
+ style Name::Attribute, fg: '#00C'
33
+ style Name::Tag, fg: '#070'
34
+ style Name::Decorator, fg: '#555', bold: true
35
+
36
+ style Literal::String, bg: '#fff0f0'
37
+ style Literal::String::Char, fg: '#04D'
38
+ style Literal::String::Doc, fg: '#D42'
39
+ style Literal::String::Interpol, bg: '#eee'
40
+ style Literal::String::Escape, fg: '#666', bold: true
41
+ style Literal::String::Regex, fg: '#000', bg: '#fff0ff'
42
+ style Literal::String::Symbol, fg: '#A60'
43
+ style Literal::String::Other, fg: '#D20'
44
+
45
+ style Literal::Number, fg: '#60E', bold: true
46
+ style Literal::Number::Integer, fg: '#00D', bold: true
47
+ style Literal::Number::Float, fg: '#60E', bold: true
48
+ style Literal::Number::Hex, fg: '#058', bold: true
49
+ style Literal::Number::Oct, fg: '#40E', bold: true
50
+
51
+ style Generic::Heading, fg: '#000080', bold: true
52
+ style Generic::Subheading, fg: '#800080', bold: true
53
+ style Generic::Deleted, fg: '#A00000'
54
+ style Generic::Inserted, fg: '#00A000'
55
+ style Generic::Error, fg: '#FF0000'
56
+ style Generic::Emph, italic: true
57
+ style Generic::Strong, bold: true
58
+ style Generic::Prompt, fg: '#c65d09', bold: true
59
+ style Generic::Output, fg: '#888'
60
+ style Generic::Traceback, fg: '#04D'
61
+
62
+ style Error, fg: '#F00', bg: '#FAA'
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,69 @@
1
+ module Rugments
2
+ module Themes
3
+ class Github < CSSTheme
4
+ name 'github'
5
+
6
+ style Comment::Multiline, fg: '#999988', italic: true
7
+ style Comment::Preproc, fg: '#999999', bold: true
8
+ style Comment::Single, fg: '#999988', italic: true
9
+ style Comment::Special, fg: '#999999', italic: true, bold: true
10
+ style Comment, fg: '#999988', italic: true
11
+ style Error, fg: '#a61717', bg: '#e3d2d2'
12
+ style Generic::Deleted, fg: '#000000', bg: '#ffdddd'
13
+ style Generic::Emph, fg: '#000000', italic: true
14
+ style Generic::Error, fg: '#aa0000'
15
+ style Generic::Heading, fg: '#999999'
16
+ style Generic::Inserted, fg: '#000000', bg: '#ddffdd'
17
+ style Generic::Output, fg: '#888888'
18
+ style Generic::Prompt, fg: '#555555'
19
+ style Generic::Strong, bold: true
20
+ style Generic::Subheading, fg: '#aaaaaa'
21
+ style Generic::Traceback, fg: '#aa0000'
22
+ style Keyword::Constant, fg: '#000000', bold: true
23
+ style Keyword::Declaration, fg: '#000000', bold: true
24
+ style Keyword::Namespace, fg: '#000000', bold: true
25
+ style Keyword::Pseudo, fg: '#000000', bold: true
26
+ style Keyword::Reserved, fg: '#000000', bold: true
27
+ style Keyword::Type, fg: '#445588', bold: true
28
+ style Keyword, fg: '#000000', bold: true
29
+ style Literal::Number::Float, fg: '#009999'
30
+ style Literal::Number::Hex, fg: '#009999'
31
+ style Literal::Number::Integer::Long, fg: '#009999'
32
+ style Literal::Number::Integer, fg: '#009999'
33
+ style Literal::Number::Oct, fg: '#009999'
34
+ style Literal::Number, fg: '#009999'
35
+ style Literal::String::Backtick, fg: '#d14'
36
+ style Literal::String::Char, fg: '#d14'
37
+ style Literal::String::Doc, fg: '#d14'
38
+ style Literal::String::Double, fg: '#d14'
39
+ style Literal::String::Escape, fg: '#d14'
40
+ style Literal::String::Heredoc, fg: '#d14'
41
+ style Literal::String::Interpol, fg: '#d14'
42
+ style Literal::String::Other, fg: '#d14'
43
+ style Literal::String::Regex, fg: '#009926'
44
+ style Literal::String::Single, fg: '#d14'
45
+ style Literal::String::Symbol, fg: '#990073'
46
+ style Literal::String, fg: '#d14'
47
+ style Name::Attribute, fg: '#008080'
48
+ style Name::Builtin::Pseudo, fg: '#999999'
49
+ style Name::Builtin, fg: '#0086B3'
50
+ style Name::Class, fg: '#445588', bold: true
51
+ style Name::Constant, fg: '#008080'
52
+ style Name::Decorator, fg: '#3c5d5d', bold: true
53
+ style Name::Entity, fg: '#800080'
54
+ style Name::Exception, fg: '#990000', bold: true
55
+ style Name::Function, fg: '#990000', bold: true
56
+ style Name::Label, fg: '#990000', bold: true
57
+ style Name::Namespace, fg: '#555555'
58
+ style Name::Tag, fg: '#000080'
59
+ style Name::Variable::Class, fg: '#008080'
60
+ style Name::Variable::Global, fg: '#008080'
61
+ style Name::Variable::Instance, fg: '#008080'
62
+ style Name::Variable, fg: '#008080'
63
+ style Operator::Word, fg: '#000000', bold: true
64
+ style Operator, fg: '#000000', bold: true
65
+ style Text::Whitespace, fg: '#bbbbbb'
66
+ style Text, bg: '#f8f8f8'
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,88 @@
1
+ module Rugments
2
+ module Themes
3
+ class Monokai < CSSTheme
4
+ name 'monokai'
5
+
6
+ palette black: '#000000'
7
+ palette bright_green: '#a6e22e'
8
+ palette bright_pink: '#f92672'
9
+ palette carmine: '#960050'
10
+ palette dark: '#49483e'
11
+ palette dark_grey: '#888888'
12
+ palette dark_red: '#aa0000'
13
+ palette dimgrey: '#75715e'
14
+ palette emperor: '#555555'
15
+ palette grey: '#999999'
16
+ palette light_grey: '#aaaaaa'
17
+ palette light_violet: '#ae81ff'
18
+ palette soft_cyan: '#66d9ef'
19
+ palette soft_yellow: '#e6db74'
20
+ palette very_dark: '#1e0010'
21
+ palette whitish: '#f8f8f2'
22
+ palette orange: '#f6aa11'
23
+ palette white: '#ffffff'
24
+
25
+ style Comment,
26
+ Comment::Multiline,
27
+ Comment::Single, fg: :dimgrey, italic: true
28
+ style Comment::Preproc, fg: :dimgrey, bold: true
29
+ style Comment::Special, fg: :dimgrey, italic: true, bold: true
30
+ style Error, fg: :carmine, bg: :very_dark
31
+ style Generic::Deleted,
32
+ Generic::Inserted, fg: :black
33
+ style Generic::Emph, fg: :black, italic: true
34
+ style Generic::Error,
35
+ Generic::Traceback, fg: :dark_red
36
+ style Generic::Heading, fg: :grey
37
+ style Generic::Output, fg: :dark_grey
38
+ style Generic::Prompt, fg: :emperor
39
+ style Generic::Strong, bold: true
40
+ style Generic::Subheading, fg: :light_grey
41
+ style Keyword,
42
+ Keyword::Constant,
43
+ Keyword::Declaration,
44
+ Keyword::Pseudo,
45
+ Keyword::Reserved,
46
+ Keyword::Type, fg: :soft_cyan, bold: true
47
+ style Keyword::Namespace,
48
+ Operator::Word,
49
+ Operator, fg: :bright_pink, bold: true
50
+ style Literal::Number::Float,
51
+ Literal::Number::Hex,
52
+ Literal::Number::Integer::Long,
53
+ Literal::Number::Integer,
54
+ Literal::Number::Oct,
55
+ Literal::Number,
56
+ Literal::String::Escape, fg: :light_violet
57
+ style Literal::String::Backtick,
58
+ Literal::String::Char,
59
+ Literal::String::Doc,
60
+ Literal::String::Double,
61
+ Literal::String::Heredoc,
62
+ Literal::String::Interpol,
63
+ Literal::String::Other,
64
+ Literal::String::Regex,
65
+ Literal::String::Single,
66
+ Literal::String::Symbol,
67
+ Literal::String, fg: :soft_yellow
68
+ style Name::Attribute, fg: :bright_green
69
+ style Name::Class,
70
+ Name::Decorator,
71
+ Name::Exception,
72
+ Name::Function, fg: :bright_green, bold: true
73
+ style Name::Constant, fg: :soft_cyan
74
+ style Name::Builtin::Pseudo,
75
+ Name::Builtin,
76
+ Name::Entity,
77
+ Name::Namespace,
78
+ Name::Variable::Class,
79
+ Name::Variable::Global,
80
+ Name::Variable::Instance,
81
+ Name::Variable,
82
+ Text::Whitespace, fg: :whitish
83
+ style Name::Label, fg: :whitish, bold: true
84
+ style Name::Tag, fg: :bright_pink
85
+ style Text, fg: :whitish, bg: :dark
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,89 @@
1
+ module Rugments
2
+ module Themes
3
+ class MonokaiSublime < CSSTheme
4
+ name 'monokai.sublime'
5
+
6
+ palette black: '#000000'
7
+ palette bright_green: '#a6e22e'
8
+ palette bright_pink: '#f92672'
9
+ palette carmine: '#960050'
10
+ palette dark: '#49483e'
11
+ palette dark_grey: '#888888'
12
+ palette dark_red: '#aa0000'
13
+ palette dimgrey: '#75715e'
14
+ palette emperor: '#555555'
15
+ palette grey: '#999999'
16
+ palette light_grey: '#aaaaaa'
17
+ palette light_violet: '#ae81ff'
18
+ palette soft_cyan: '#66d9ef'
19
+ palette soft_yellow: '#e6db74'
20
+ palette very_dark: '#1e0010'
21
+ palette whitish: '#f8f8f2'
22
+ palette orange: '#f6aa11'
23
+ palette white: '#ffffff'
24
+
25
+ style Generic::Heading, fg: :grey
26
+ style Literal::String::Regex, fg: :orange
27
+ style Generic::Output, fg: :dark_grey
28
+ style Generic::Prompt, fg: :emperor
29
+ style Generic::Strong, bold: false
30
+ style Generic::Subheading, fg: :light_grey
31
+ style Name::Builtin, fg: :orange
32
+ style Comment::Multiline,
33
+ Comment::Preproc,
34
+ Comment::Single,
35
+ Comment::Special,
36
+ Comment, fg: :dimgrey
37
+ style Error,
38
+ Generic::Error,
39
+ Generic::Traceback, fg: :carmine
40
+ style Generic::Deleted,
41
+ Generic::Inserted,
42
+ Generic::Emph, fg: :dark
43
+ style Keyword::Constant,
44
+ Keyword::Declaration,
45
+ Keyword::Reserved,
46
+ Name::Constant,
47
+ Keyword::Type, fg: :soft_cyan
48
+ style Literal::Number::Float,
49
+ Literal::Number::Hex,
50
+ Literal::Number::Integer::Long,
51
+ Literal::Number::Integer,
52
+ Literal::Number::Oct,
53
+ Literal::Number,
54
+ Literal::String::Char,
55
+ Literal::String::Escape,
56
+ Literal::String::Symbol, fg: :light_violet
57
+ style Literal::String::Doc,
58
+ Literal::String::Double,
59
+ Literal::String::Backtick,
60
+ Literal::String::Heredoc,
61
+ Literal::String::Interpol,
62
+ Literal::String::Other,
63
+ Literal::String::Single,
64
+ Literal::String, fg: :soft_yellow
65
+ style Name::Attribute,
66
+ Name::Class,
67
+ Name::Decorator,
68
+ Name::Exception,
69
+ Name::Function, fg: :bright_green
70
+ style Name::Variable::Class,
71
+ Name::Namespace,
72
+ Name::Label,
73
+ Name::Entity,
74
+ Name::Builtin::Pseudo,
75
+ Name::Variable::Global,
76
+ Name::Variable::Instance,
77
+ Name::Variable,
78
+ Text::Whitespace,
79
+ Text,
80
+ Name, fg: :white
81
+ style Operator::Word,
82
+ Name::Tag,
83
+ Keyword,
84
+ Keyword::Namespace,
85
+ Keyword::Pseudo,
86
+ Operator, fg: :bright_pink
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,69 @@
1
+ module Rugments
2
+ module Themes
3
+ class ThankfulEyes < CSSTheme
4
+ name 'thankful_eyes'
5
+
6
+ # pallette, from GTKSourceView's ThankfulEyes
7
+ palette cool_as_ice: '#6c8b9f'
8
+ palette slate_blue: '#4e5d62'
9
+ palette eggshell_cloud: '#dee5e7'
10
+ palette krasna: '#122b3b'
11
+ palette aluminum1: '#fefeec'
12
+ palette scarletred2: '#cc0000'
13
+ palette butter3: '#c4a000'
14
+ palette go_get_it: '#b2fd6d'
15
+ palette chilly: '#a8e1fe'
16
+ palette unicorn: '#faf6e4'
17
+ palette sandy: '#f6dd62'
18
+ palette pink_merengue: '#f696db'
19
+ palette dune: '#fff0a6'
20
+ palette backlit: '#4df4ff'
21
+ palette schrill: '#ffb000'
22
+
23
+ style Text, fg: :unicorn, bg: :krasna
24
+ style Generic::Lineno, fg: :eggshell_cloud, bg: :slate_blue
25
+
26
+ style Comment, fg: :cool_as_ice, italic: true
27
+ style Comment::Preproc, fg: :go_get_it, bold: true, italic: true
28
+ style Error,
29
+ Generic::Error, fg: :aluminum1, bg: :scarletred2
30
+ style Keyword, fg: :sandy, bold: true
31
+ style Operator,
32
+ Punctuation, fg: :backlit
33
+ style Generic::Deleted, fg: :scarletred2
34
+ style Generic::Inserted, fg: :go_get_it
35
+ style Generic::Emph, italic: true
36
+ style Generic::Strong, bold: true
37
+ style Generic::Traceback, fg: :eggshell_cloud, bg: :slate_blue
38
+ style Keyword::Constant, fg: :pink_merengue, bold: true
39
+ style Keyword::Namespace,
40
+ Keyword::Pseudo,
41
+ Keyword::Reserved,
42
+ Generic::Heading,
43
+ Generic::Subheading, fg: :schrill, bold: true
44
+ style Keyword::Type,
45
+ Name::Constant,
46
+ Name::Class,
47
+ Name::Decorator,
48
+ Name::Namespace,
49
+ Name::Builtin::Pseudo,
50
+ Name::Exception, fg: :go_get_it, bold: true
51
+ style Name::Label,
52
+ Name::Tag, fg: :schrill, bold: true
53
+ style Literal::Number,
54
+ Literal::Date,
55
+ Literal::String::Symbol, fg: :pink_merengue, bold: true
56
+ style Literal::String, fg: :dune, bold: true
57
+ style Literal::String::Escape,
58
+ Literal::String::Char,
59
+ Literal::String::Interpol, fg: :backlit, bold: true
60
+ style Name::Builtin, bold: true
61
+ style Name::Entity, fg: '#999999', bold: true
62
+ style Text::Whitespace, fg: '#BBBBBB'
63
+ style Name::Function,
64
+ Name::Property,
65
+ Name::Attribute, fg: :chilly
66
+ style Name::Variable, fg: :chilly, bold: true
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,180 @@
1
+ module Rugments
2
+ class Token
3
+ class << self
4
+ attr_reader :name
5
+ attr_reader :parent
6
+ attr_reader :shortname
7
+
8
+ def cache
9
+ @cache ||= {}
10
+ end
11
+
12
+ def sub_tokens
13
+ @sub_tokens ||= {}
14
+ end
15
+
16
+ def [](qualname)
17
+ return qualname unless qualname.is_a?(::String)
18
+
19
+ Token.cache[qualname]
20
+ end
21
+
22
+ def inspect
23
+ "<Token #{qualname}>"
24
+ end
25
+
26
+ def matches?(other)
27
+ other.token_chain.include? self
28
+ end
29
+
30
+ def token_chain
31
+ @token_chain ||= ancestors.take_while { |x| x != Token }.reverse
32
+ end
33
+
34
+ def qualname
35
+ @qualname ||= token_chain.map(&:name).join('.')
36
+ end
37
+
38
+ def register!
39
+ Token.cache[qualname] = self
40
+ parent.sub_tokens[name] = self
41
+ end
42
+
43
+ def make_token(name, shortname, &b)
44
+ parent = self
45
+ Class.new(parent) do
46
+ @parent = parent
47
+ @name = name
48
+ @shortname = shortname
49
+ register!
50
+ class_eval(&b) if b
51
+ end
52
+ end
53
+
54
+ def token(name, shortname, &b)
55
+ tok = make_token(name, shortname, &b)
56
+ const_set(name, tok)
57
+ end
58
+
59
+ def each_token(&b)
60
+ Token.cache.each do |(_, t)|
61
+ b.call(t)
62
+ end
63
+ end
64
+ end
65
+
66
+ module Tokens
67
+ def self.token(name, shortname, &b)
68
+ tok = Token.make_token(name, shortname, &b)
69
+ const_set(name, tok)
70
+ end
71
+
72
+ # IMPORTANT:
73
+ # For compatibility, this list must be kept in sync with
74
+ # pygments.token.STANDARD_TYPES
75
+ # please see https://github.com/jayferd/rouge/wiki/List-of-tokens
76
+ token :Text, '' do
77
+ token :Whitespace, 'w'
78
+ end
79
+
80
+ token :Error, 'err'
81
+ token :Other, 'x'
82
+
83
+ token :Keyword, 'k' do
84
+ token :Constant, 'kc'
85
+ token :Declaration, 'kd'
86
+ token :Namespace, 'kn'
87
+ token :Pseudo, 'kp'
88
+ token :Reserved, 'kr'
89
+ token :Type, 'kt'
90
+ token :Variable, 'kv'
91
+ end
92
+
93
+ token :Name, 'n' do
94
+ token :Attribute, 'na'
95
+ token :Builtin, 'nb' do
96
+ token :Pseudo, 'bp'
97
+ end
98
+ token :Class, 'nc'
99
+ token :Constant, 'no'
100
+ token :Decorator, 'nd'
101
+ token :Entity, 'ni'
102
+ token :Exception, 'ne'
103
+ token :Function, 'nf'
104
+ token :Property, 'py'
105
+ token :Label, 'nl'
106
+ token :Namespace, 'nn'
107
+ token :Other, 'nx'
108
+ token :Tag, 'nt'
109
+ token :Variable, 'nv' do
110
+ token :Class, 'vc'
111
+ token :Global, 'vg'
112
+ token :Instance, 'vi'
113
+ end
114
+ end
115
+
116
+ token :Literal, 'l' do
117
+ token :Date, 'ld'
118
+
119
+ token :String, 's' do
120
+ token :Backtick, 'sb'
121
+ token :Char, 'sc'
122
+ token :Doc, 'sd'
123
+ token :Double, 's2'
124
+ token :Escape, 'se'
125
+ token :Heredoc, 'sh'
126
+ token :Interpol, 'si'
127
+ token :Other, 'sx'
128
+ token :Regex, 'sr'
129
+ token :Single, 's1'
130
+ token :Symbol, 'ss'
131
+ end
132
+
133
+ token :Number, 'm' do
134
+ token :Float, 'mf'
135
+ token :Hex, 'mh'
136
+ token :Integer, 'mi' do
137
+ token :Long, 'il'
138
+ end
139
+ token :Oct, 'mo'
140
+ token :Bin, 'mb'
141
+ token :Other, 'mx'
142
+ end
143
+ end
144
+
145
+ token :Operator, 'o' do
146
+ token :Word, 'ow'
147
+ end
148
+
149
+ token :Punctuation, 'p' do
150
+ token :Indicator, 'pi'
151
+ end
152
+
153
+ token :Comment, 'c' do
154
+ token :Doc, 'cd'
155
+ token :Multiline, 'cm'
156
+ token :Preproc, 'cp'
157
+ token :Single, 'c1'
158
+ token :Special, 'cs'
159
+ end
160
+
161
+ token :Generic, 'g' do
162
+ token :Deleted, 'gd'
163
+ token :Emph, 'ge'
164
+ token :Error, 'gr'
165
+ token :Heading, 'gh'
166
+ token :Inserted, 'gi'
167
+ token :Output, 'go'
168
+ token :Prompt, 'gp'
169
+ token :Strong, 'gs'
170
+ token :Subheading, 'gu'
171
+ token :Traceback, 'gt'
172
+ token :Lineno, 'gl'
173
+ end
174
+
175
+ # convenience
176
+ Num = Literal::Number
177
+ Str = Literal::String
178
+ end
179
+ end
180
+ end