davinci-text 1.0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/.byebug_history +86 -0
  3. data/.circleci/config.yml +57 -0
  4. data/.gitignore +53 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +4 -0
  7. data/Gemfile.lock +50 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +91 -0
  10. data/REFERENCE.md +71 -0
  11. data/Rakefile +4 -0
  12. data/bin/davinci +16 -0
  13. data/controllers/atom_input_controller.rb +146 -0
  14. data/controllers/atom_output_controller.rb +107 -0
  15. data/controllers/cl_args_controller.rb +62 -0
  16. data/controllers/menu_controller.rb +148 -0
  17. data/controllers/sublime_input_controller.rb +97 -0
  18. data/controllers/sublime_output_controller.rb +62 -0
  19. data/davinci-text.gemspec +34 -0
  20. data/example_files/atom/atom-dark-syntax/CONTRIBUTING.md +1 -0
  21. data/example_files/atom/atom-dark-syntax/ISSUE_TEMPLATE.md +40 -0
  22. data/example_files/atom/atom-dark-syntax/LICENSE.md +20 -0
  23. data/example_files/atom/atom-dark-syntax/PULL_REQUEST_TEMPLATE.md +28 -0
  24. data/example_files/atom/atom-dark-syntax/README.md +9 -0
  25. data/example_files/atom/atom-dark-syntax/index.less +7 -0
  26. data/example_files/atom/atom-dark-syntax/output.less +384 -0
  27. data/example_files/atom/atom-dark-syntax/package.json +11 -0
  28. data/example_files/atom/atom-dark-syntax/styles/editor.less +50 -0
  29. data/example_files/atom/atom-dark-syntax/styles/syntax-variables.less +44 -0
  30. data/example_files/atom/atom-dark-syntax/styles/syntax.less +283 -0
  31. data/example_files/atom/loved-syntax/CONTRIBUTING.md +1 -0
  32. data/example_files/atom/loved-syntax/LICENSE.md +20 -0
  33. data/example_files/atom/loved-syntax/README.md +14 -0
  34. data/example_files/atom/loved-syntax/index.less +18 -0
  35. data/example_files/atom/loved-syntax/output.less +648 -0
  36. data/example_files/atom/loved-syntax/package.json +15 -0
  37. data/example_files/atom/loved-syntax/styles/colors.less +44 -0
  38. data/example_files/atom/loved-syntax/styles/editor.less +96 -0
  39. data/example_files/atom/loved-syntax/styles/syntax-variables.less +56 -0
  40. data/example_files/atom/loved-syntax/styles/syntax/_base.less +311 -0
  41. data/example_files/atom/loved-syntax/styles/syntax/c.less +5 -0
  42. data/example_files/atom/loved-syntax/styles/syntax/cpp.less +5 -0
  43. data/example_files/atom/loved-syntax/styles/syntax/cs.less +5 -0
  44. data/example_files/atom/loved-syntax/styles/syntax/css.less +13 -0
  45. data/example_files/atom/loved-syntax/styles/syntax/gfm.less +9 -0
  46. data/example_files/atom/loved-syntax/styles/syntax/go.less +5 -0
  47. data/example_files/atom/loved-syntax/styles/syntax/ini.less +5 -0
  48. data/example_files/atom/loved-syntax/styles/syntax/java.less +24 -0
  49. data/example_files/atom/loved-syntax/styles/syntax/javascript.less +17 -0
  50. data/example_files/atom/loved-syntax/styles/syntax/json.less +21 -0
  51. data/example_files/atom/loved-syntax/styles/syntax/python.less +9 -0
  52. data/example_files/atom/loved-syntax/styles/syntax/ruby.less +5 -0
  53. data/example_files/sublime/material.tmTheme +1011 -0
  54. data/example_files/sublime/monokai.tmTheme +432 -0
  55. data/lib/.byebug_history +3 -0
  56. data/lib/templates/atom/.gitignore +3 -0
  57. data/lib/templates/atom/LICENSE.md +20 -0
  58. data/lib/templates/atom/README.md +5 -0
  59. data/lib/templates/atom/index.less +1 -0
  60. data/lib/templates/atom/package.json +15 -0
  61. data/lib/templates/atom/styles/base.less +307 -0
  62. data/lib/templates/atom/styles/colors.less +15 -0
  63. data/lib/templates/atom/styles/syntax-variables.less +31 -0
  64. data/lib/templates/sublime/newTheme.tmTheme +438 -0
  65. data/lib/utility.rb +21 -0
  66. data/lib/version.rb +3 -0
  67. metadata +209 -0
@@ -0,0 +1,97 @@
1
+ require 'nokogiri'
2
+ require 'open-uri'
3
+ require 'byebug'
4
+
5
+ class SublimeInputController
6
+ attr_reader :options
7
+
8
+ def initialize(filepath)
9
+
10
+ if File.exists?(filepath)
11
+ file = File.read(filepath)
12
+ else
13
+ raise "Error: Sublime File does not exist at path: #{filepath}"
14
+ end
15
+ @xml = Nokogiri::XML(file)
16
+ @options = {}
17
+ # @from_editor_specific_information = {}
18
+ end
19
+
20
+ def parse_input_files
21
+
22
+ all_settings = @xml.xpath('//dict/array/dict')
23
+
24
+ get_primary_settings(all_settings.shift)
25
+ get_secondary_settings(all_settings)
26
+
27
+ cleanup_stragglers
28
+
29
+ puts "done!"
30
+ puts ""
31
+ # pp @options
32
+
33
+ end
34
+
35
+
36
+
37
+ private
38
+
39
+
40
+
41
+ def get_primary_settings(first_setting)
42
+ @options[:theme_name] = @xml.xpath("//plist/dict/key[text()='name']/following-sibling::string[1]/text()").text
43
+
44
+ settings_keys = first_setting.xpath('./dict/key/text()')
45
+ settings_values = first_setting.xpath('./dict/string/text()')
46
+
47
+ settings_keys.each do |key|
48
+ print "."
49
+ @options[key.text.underscore.to_sym] = settings_values.shift.text
50
+ end
51
+ end
52
+
53
+ def get_secondary_settings(all_settings)
54
+
55
+ all_settings.each do |setting|
56
+ print "."
57
+ foreground_value = setting.xpath('./dict/key[text()="foreground"]/following-sibling::string[1]/text()').text
58
+ background_value = setting.xpath('./dict/key[text()="background"]/following-sibling::string[1]/text()').text
59
+ font_style_value = setting.xpath('./dict/key[text()="fontStyle"]/following-sibling::string[1]/text()').text
60
+
61
+ key = setting.xpath('./string[position()=1]/text()').text
62
+
63
+ if key.index(",")
64
+ key.gsub!(/\s/, "")
65
+ key = key.split(",")
66
+ key.each do |sub_key|
67
+ sub_key = sub_key.underscore
68
+ @options["#{sub_key}_foreground".to_sym] = foreground_value if foreground_value != ""
69
+ @options["#{sub_key}_background".to_sym] = background_value if background_value != ""
70
+ @options["#{sub_key}_font_style".to_sym] = font_style_value if font_style_value != ""
71
+ end
72
+ else
73
+ @options["#{key.underscore}_foreground".to_sym] = foreground_value if foreground_value != ""
74
+ @options["#{key.underscore}_background".to_sym] = background_value if background_value != ""
75
+ @options["#{key.underscore}_font_style".to_sym] = font_style_value if font_style_value != ""
76
+ end
77
+ end
78
+ end
79
+
80
+ def cleanup_stragglers
81
+ #Some funky situations make this douche of a method to be necessary for renaming options that are enacted using scope that doesn't match the name, etc.
82
+
83
+ #rename options hash:
84
+ rename = {
85
+ :comments_foreground => :comment_foreground,
86
+ }
87
+
88
+ rename.each do |key, value|
89
+
90
+ if @options.has_key?(key)
91
+ @options[value] = @options[key]
92
+ end
93
+ end
94
+
95
+ end
96
+
97
+ end
@@ -0,0 +1,62 @@
1
+ require 'fileutils'
2
+ require 'date'
3
+
4
+ class SublimeOutputController
5
+
6
+ attr_reader :options
7
+
8
+ def initialize(options, filepath)
9
+ @options = options
10
+ @directory = filepath
11
+ @filename = "#{@options[:theme_name]}.tmTheme"
12
+ end
13
+
14
+ def duplicate_template_files
15
+
16
+ current_dir = File.expand_path(__FILE__)
17
+ root_dir = current_dir.split("/")[0..-3].join("/")
18
+ @new_dir = "#{@directory}/#{@options[:theme_name]}/"
19
+ @filepath = "#{@new_dir}#{@filename}"
20
+
21
+ if File.directory?(@new_dir)
22
+ FileUtils.rm_rf(@new_dir, secure: true)
23
+ end
24
+
25
+ FileUtils.chmod(0755, "#{root_dir}/lib/templates/sublime/.")
26
+ FileUtils.cp_r("#{root_dir}/lib/templates/sublime/", @new_dir)
27
+
28
+ File.rename("#{@new_dir}newTheme.tmTheme", @filepath)
29
+
30
+ end
31
+
32
+ def insert_styles
33
+
34
+ @base = File.read(@filepath)
35
+ byebug
36
+ replace_options
37
+ clean_up_leftovers
38
+ File.open(@filepath, 'w') { |f| f.write(@base) }
39
+
40
+ puts "done!"
41
+ puts "Sublime theme file created at #{@filepath}"
42
+ end
43
+
44
+ private
45
+
46
+ def replace_options
47
+ @options.each do |key, value|
48
+ print "."
49
+ @base.gsub!(/":::#{key.to_s}:::"/, value)
50
+ end
51
+
52
+ end
53
+
54
+ def clean_up_leftovers
55
+ @base.gsub!(/":::.*?_font_style:::"/, "")
56
+ @base.gsub!(/":::.*?_background:::"/, "")
57
+ @base.gsub!(/":::.*?_foreground:::"/, @options[:foreground])
58
+ @base.gsub!(/":::.*?:::"/, @options[:foreground])
59
+ end
60
+
61
+
62
+ end
@@ -0,0 +1,34 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "version.rb"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "davinci-text"
8
+ spec.version = Davinci::VERSION
9
+ spec.authors = ["Matt Cheah"]
10
+ spec.email = ["matt.cheah@gmail.com"]
11
+
12
+ spec.summary = "Ruby gem that transfers your text-editor color scheme between the Sublime and Atom text editors."
13
+ # spec.description = %q{TODO: Write a longer description or delete this line.}
14
+ spec.homepage = "https://github.com/mattcheah/davinci"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
+ f.match(%r{^(test|spec|features)/})
19
+ end
20
+
21
+ spec.bindir = "bin"
22
+ spec.executables = "davinci"
23
+ spec.require_paths = ["lib"]
24
+
25
+ spec.add_development_dependency "bundler", "~> 1.15"
26
+ spec.add_development_dependency "rake", "~> 10.0"
27
+ spec.add_development_dependency "rspec", "~> 3.2"
28
+ spec.add_development_dependency "byebug", "~> 9.0"
29
+ spec.add_development_dependency "rspec_junit_formatter", "~> 0.3"
30
+
31
+ spec.add_dependency "coyote", "~> 1.2"
32
+ spec.add_dependency "nokogiri", "~> 1.8"
33
+
34
+ end
@@ -0,0 +1 @@
1
+ See the [Atom contributing guide](https://github.com/atom/atom/blob/master/CONTRIBUTING.md)
@@ -0,0 +1,40 @@
1
+ <!--
2
+
3
+ Have you read Atom's Code of Conduct? By filing an Issue, you are expected to comply with it, including treating everyone with respect: https://github.com/atom/atom/blob/master/CODE_OF_CONDUCT.md
4
+
5
+ Do you want to ask a question? Are you looking for support? The Atom message board is the best place for getting support: https://discuss.atom.io
6
+
7
+ -->
8
+
9
+ ### Prerequisites
10
+
11
+ * [ ] Put an X between the brackets on this line if you have done all of the following:
12
+ * Reproduced the problem in Safe Mode: http://flight-manual.atom.io/hacking-atom/sections/debugging/#using-safe-mode
13
+ * Followed all applicable steps in the debugging guide: http://flight-manual.atom.io/hacking-atom/sections/debugging/
14
+ * Checked the FAQs on the message board for common solutions: https://discuss.atom.io/c/faq
15
+ * Checked that your issue isn't already filed: https://github.com/issues?utf8=✓&q=is%3Aissue+user%3Aatom
16
+ * Checked that there is not already an Atom package that provides the described functionality: https://atom.io/packages
17
+
18
+ ### Description
19
+
20
+ [Description of the issue]
21
+
22
+ ### Steps to Reproduce
23
+
24
+ 1. [First Step]
25
+ 2. [Second Step]
26
+ 3. [and so on...]
27
+
28
+ **Expected behavior:** [What you expect to happen]
29
+
30
+ **Actual behavior:** [What actually happens]
31
+
32
+ **Reproduces how often:** [What percentage of the time does it reproduce?]
33
+
34
+ ### Versions
35
+
36
+ You can get this information from copy and pasting the output of `atom --version` and `apm --version` from the command line. Also, please include the OS and what version of the OS you're running.
37
+
38
+ ### Additional Information
39
+
40
+ Any additional information, configuration or data that might be necessary to reproduce the issue.
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2014 GitHub Inc.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,28 @@
1
+ ### Requirements
2
+
3
+ * Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
4
+ * All new code requires tests to ensure against regressions
5
+
6
+ ### Description of the Change
7
+
8
+ <!--
9
+
10
+ We must be able to understand the design of your change from this description. If we can't get a good idea of what the code will be doing from the description here, the pull request may be closed at the maintainers' discretion. Keep in mind that the maintainer reviewing this PR may not be familiar with or have worked with the code here recently, so please walk us through the concepts.
11
+
12
+ -->
13
+
14
+ ### Alternate Designs
15
+
16
+ <!-- Explain what other alternates were considered and why the proposed version was selected -->
17
+
18
+ ### Benefits
19
+
20
+ <!-- What benefits will be realized by the code change? -->
21
+
22
+ ### Possible Drawbacks
23
+
24
+ <!-- What are the possible side-effects or negative impacts of the code change? -->
25
+
26
+ ### Applicable Issues
27
+
28
+ <!-- Enter any applicable Issues here -->
@@ -0,0 +1,9 @@
1
+ # Atom Dark Syntax theme
2
+
3
+ A dark syntax theme for Atom.
4
+
5
+ This theme is installed by default with Atom and can be activated by going to
6
+ the _Themes_ section in the Settings view (`cmd-,`) and selecting it from the
7
+ _Syntax Themes_ dropdown menu.
8
+
9
+ ![](https://f.cloud.github.com/assets/671378/2264549/f49e9bf2-9e73-11e3-9329-e2d59dd1b119.png)
@@ -0,0 +1,7 @@
1
+
2
+ // Atom Dark Syntax theme
3
+
4
+ @import "styles/syntax-variables.less";
5
+
6
+ @import "styles/editor.less";
7
+ @import "styles/syntax.less";
@@ -0,0 +1,384 @@
1
+ // This defines all syntax variables that syntax themes must implement when they
2
+ // include a syntax-variables.less file.
3
+
4
+ // General colors
5
+ @syntax-text-color: #c5c8c6;
6
+ @syntax-cursor-color: white;
7
+ @syntax-selection-color: #444;
8
+ @syntax-selection-flash-color: #eee;
9
+ @syntax-background-color: #1d1f21;
10
+
11
+ // Guide colors
12
+ @syntax-wrap-guide-color: rgba(197, 200, 198, .1);
13
+ @syntax-indent-guide-color: rgba(197, 200, 198, .2);
14
+ @syntax-invisible-character-color: rgba(197, 200, 198, .2);
15
+
16
+ // For find and replace markers
17
+ @syntax-result-marker-color: #888;
18
+ @syntax-result-marker-color-selected: white;
19
+
20
+ // Gutter colors
21
+ @syntax-gutter-text-color: @syntax-text-color;
22
+ @syntax-gutter-text-color-selected: @syntax-gutter-text-color;
23
+ @syntax-gutter-background-color: lighten(@syntax-background-color, 5%);
24
+ @syntax-gutter-background-color-selected: rgba(255, 255, 255, 0.14);
25
+
26
+ // For git diff info. i.e. in the gutter
27
+ @syntax-color-renamed: #96CBFE;
28
+ @syntax-color-added: #A8FF60;
29
+ @syntax-color-modified: #E9C062;
30
+ @syntax-color-removed: #CC6666;
31
+
32
+ // For language entity colors
33
+ @syntax-color-variable: #C6C5FE;
34
+ @syntax-color-constant: #99CC99;
35
+ @syntax-color-property: #EDEDED;
36
+ @syntax-color-value: #F9EE98;
37
+ @syntax-color-function: #DAD085;
38
+ @syntax-color-method: @syntax-color-function;
39
+ @syntax-color-class: #62B1FE;
40
+ @syntax-color-keyword: #96CBFE;
41
+ @syntax-color-tag: #96CBFE;
42
+ @syntax-color-attribute: #C6C5FE;
43
+ @syntax-color-import: @syntax-color-keyword;
44
+ @syntax-color-snippet: @syntax-color-constant;
45
+ atom-text-editor {
46
+ background-color: @syntax-background-color;
47
+ color: @syntax-text-color;
48
+
49
+ .invisible-character {
50
+ color: @syntax-invisible-character-color;
51
+ }
52
+
53
+ .indent-guide {
54
+ color: @syntax-indent-guide-color;
55
+ }
56
+
57
+ .wrap-guide {
58
+ background-color: @syntax-wrap-guide-color;
59
+ }
60
+
61
+ .gutter {
62
+ background-color: @syntax-gutter-background-color;
63
+ }
64
+ .gutter .cursor-line {
65
+ background-color: @syntax-gutter-background-color-selected;
66
+ }
67
+ .line-number.cursor-line-no-selection {
68
+ background-color: @syntax-gutter-background-color-selected;
69
+ }
70
+
71
+ .gutter .line-number.folded,
72
+ .gutter .line-number:after,
73
+ .fold-marker:after {
74
+ color: #fba0e3;
75
+ }
76
+
77
+ .invisible {
78
+ color: @syntax-text-color;
79
+ }
80
+
81
+ .cursor {
82
+ border-color: @syntax-cursor-color;
83
+ }
84
+
85
+ .selection .region {
86
+ background-color: @syntax-selection-color;
87
+ }
88
+
89
+ .bracket-matcher .region {
90
+ border-bottom: 1px solid #f8de7e;
91
+ margin-top: -1px;
92
+ opacity: .7;
93
+ }
94
+ }
95
+ .syntax--comment {
96
+ color: #7C7C7C;
97
+ }
98
+
99
+ .syntax--entity {
100
+ color: #FFD2A7;
101
+
102
+ &.syntax--name.syntax--type {
103
+ text-decoration: underline;
104
+ color: #FFFFB6;
105
+ }
106
+
107
+ &.syntax--other.syntax--inherited-class {
108
+ color: #9B5C2E;
109
+ }
110
+ }
111
+
112
+ .syntax--keyword {
113
+ color: #96CBFE;
114
+
115
+ &.syntax--control {
116
+ color: #96CBFE;
117
+ }
118
+
119
+ &.syntax--operator {
120
+ color: #EDEDED;
121
+ }
122
+ }
123
+
124
+ .syntax--storage {
125
+ color: #CFCB90;
126
+
127
+ &.syntax--modifier {
128
+ color: #96CBFE;
129
+ }
130
+ }
131
+
132
+ .syntax--constant {
133
+ color: #99CC99;
134
+
135
+ &.syntax--numeric {
136
+ color: #FF73FD;
137
+ }
138
+ }
139
+
140
+ .syntax--variable {
141
+ color: #C6C5FE;
142
+ }
143
+
144
+ .syntax--invalid.syntax--deprecated {
145
+ text-decoration: underline;
146
+ color: #FD5FF1;
147
+ }
148
+
149
+ .syntax--invalid.syntax--illegal {
150
+ color: #FD5FF1;
151
+ background-color: rgba(86, 45, 86, 0.75);
152
+ }
153
+
154
+ // String interpolation in Ruby, CoffeeScript, and others
155
+ .syntax--string {
156
+ .syntax--source,
157
+ .syntax--meta.syntax--embedded.syntax--line {
158
+ color: #EDEDED;
159
+ }
160
+
161
+ .syntax--punctuation.syntax--section.syntax--embedded {
162
+ color: #00A0A0;
163
+
164
+ .syntax--source {
165
+ color: #00A0A0; // Required for the end of embedded strings in Ruby #716
166
+ }
167
+ }
168
+ }
169
+
170
+ .syntax--string {
171
+ color: #A8FF60;
172
+
173
+ .syntax--constant {
174
+ color: #00A0A0;
175
+ }
176
+
177
+ &.syntax--regexp {
178
+ color: #E9C062;
179
+
180
+ .syntax--constant.syntax--character.syntax--escape,
181
+ .syntax--source.syntax--ruby.syntax--embedded,
182
+ .syntax--string.syntax--regexp.syntax--arbitrary-repetition {
183
+ color: #FF8000;
184
+ }
185
+
186
+ &.syntax--group {
187
+ color: #C6A24F;
188
+ background-color: rgba(255, 255, 255, 0.06);
189
+ }
190
+
191
+ &.syntax--character-class {
192
+ color: #B18A3D;
193
+ }
194
+ }
195
+
196
+ .syntax--variable {
197
+ color: #8A9A95;
198
+ }
199
+ }
200
+
201
+ .syntax--support {
202
+ color: #FFFFB6;
203
+
204
+ &.syntax--function {
205
+ color: #DAD085;
206
+ }
207
+
208
+ &.syntax--constant {
209
+ color: #FFD2A7;
210
+ }
211
+
212
+ &.syntax--type.syntax--property-name.syntax--css {
213
+ color: #EDEDED;
214
+ }
215
+ }
216
+
217
+ .syntax--source .syntax--entity.syntax--name.syntax--tag,
218
+ .syntax--source .syntax--punctuation.syntax--tag {
219
+ color: #96CBFE;
220
+ }
221
+ .syntax--source .syntax--entity.syntax--other.syntax--attribute-name {
222
+ color: #C6C5FE;
223
+ }
224
+
225
+ .syntax--entity {
226
+ &.syntax--other.syntax--attribute-name {
227
+ color: #C6C5FE;
228
+ }
229
+
230
+ &.syntax--name.syntax--tag.syntax--namespace,
231
+ &.syntax--other.syntax--attribute-name.syntax--namespace {
232
+ color: #E18964;
233
+ }
234
+ }
235
+
236
+ .syntax--meta {
237
+ &.syntax--preprocessor.syntax--c {
238
+ color: #8996A8;
239
+ }
240
+
241
+ &.syntax--preprocessor.syntax--c .syntax--keyword {
242
+ color: #AFC4DB;
243
+ }
244
+
245
+ &.syntax--cast {
246
+ color: #676767;
247
+ }
248
+
249
+ &.syntax--sgml.syntax--html .syntax--meta.syntax--doctype,
250
+ &.syntax--sgml.syntax--html .syntax--meta.syntax--doctype .syntax--entity,
251
+ &.syntax--sgml.syntax--html .syntax--meta.syntax--doctype .syntax--string,
252
+ &.syntax--xml-processing,
253
+ &.syntax--xml-processing .syntax--entity,
254
+ &.syntax--xml-processing .syntax--string {
255
+ color: #494949;
256
+ }
257
+
258
+ &.syntax--tag .syntax--entity,
259
+ &.syntax--tag > .syntax--punctuation,
260
+ &.syntax--tag.syntax--inline .syntax--entity {
261
+ color: #C6C5FE;
262
+ }
263
+ &.syntax--tag .syntax--name,
264
+ &.syntax--tag.syntax--inline .syntax--name,
265
+ &.syntax--tag > .syntax--punctuation {
266
+ color: #96CBFE;
267
+ }
268
+
269
+ &.syntax--selector.syntax--css .syntax--entity.syntax--name.syntax--tag {
270
+ text-decoration: underline;
271
+ color: #96CBFE;
272
+ }
273
+
274
+ &.syntax--selector.syntax--css .syntax--entity.syntax--other.syntax--attribute-name.syntax--tag.syntax--pseudo-class {
275
+ color: #8F9D6A;
276
+ }
277
+
278
+ &.syntax--selector.syntax--css .syntax--entity.syntax--other.syntax--attribute-name.syntax--id {
279
+ color: #8B98AB;
280
+ }
281
+
282
+ &.syntax--selector.syntax--css .syntax--entity.syntax--other.syntax--attribute-name.syntax--class {
283
+ color: #62B1FE;
284
+ }
285
+
286
+ &.syntax--property-group .syntax--support.syntax--constant.syntax--property-value.syntax--css,
287
+ &.syntax--property-value .syntax--support.syntax--constant.syntax--property-value.syntax--css {
288
+ color: #F9EE98;
289
+ }
290
+
291
+ &.syntax--preprocessor.syntax--at-rule .syntax--keyword.syntax--control.syntax--at-rule {
292
+ color: #8693A5;
293
+ }
294
+
295
+ &.syntax--property-value .syntax--support.syntax--constant.syntax--named-color.syntax--css,
296
+ &.syntax--property-value .syntax--constant {
297
+ color: #87C38A;
298
+ }
299
+
300
+ &.syntax--constructor.syntax--argument.syntax--css {
301
+ color: #8F9D6A;
302
+ }
303
+
304
+ &.syntax--diff,
305
+ &.syntax--diff.syntax--header {
306
+ color: #F8F8F8;
307
+ background-color: #0E2231;
308
+ }
309
+
310
+ &.syntax--separator {
311
+ color: #60A633;
312
+ background-color: #242424;
313
+ }
314
+
315
+ &.syntax--line.syntax--entry.syntax--logfile,
316
+ &.syntax--line.syntax--exit.syntax--logfile {
317
+ background-color: rgba(238, 238, 238, 0.16);
318
+ }
319
+
320
+ &.syntax--line.syntax--error.syntax--logfile {
321
+ background-color: #751012;
322
+ }
323
+ }
324
+
325
+ // Markdown Styles
326
+ .syntax--source.syntax--gfm {
327
+ color: #999;
328
+ }
329
+
330
+ .syntax--gfm {
331
+ .syntax--markup.syntax--heading {
332
+ color: #eee;
333
+ }
334
+
335
+ .syntax--link {
336
+ color: #555;
337
+ }
338
+
339
+ .syntax--variable.syntax--list,
340
+ .syntax--support.syntax--quote {
341
+ color: #555;
342
+ }
343
+
344
+ .syntax--link .syntax--entity {
345
+ color: #ddd;
346
+ }
347
+
348
+ .syntax--raw {
349
+ color: #aaa;
350
+ }
351
+ }
352
+
353
+ .syntax--markdown {
354
+ .syntax--paragraph {
355
+ color: #999;
356
+ }
357
+
358
+ .syntax--heading {
359
+ color: #eee;
360
+ }
361
+
362
+ .syntax--raw {
363
+ color: #aaa;
364
+ }
365
+
366
+ .syntax--link {
367
+ color: #555;
368
+
369
+ .syntax--string {
370
+ color: #555;
371
+
372
+ &.syntax--title {
373
+ color: #ddd;
374
+ }
375
+ }
376
+ }
377
+ }
378
+
379
+ // Atom Dark Syntax theme
380
+
381
+ @import "styles/syntax-variables.less";
382
+
383
+ @import "styles/editor.less";
384
+ @import "styles/syntax.less";