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.
- checksums.yaml +7 -0
- data/.byebug_history +86 -0
- data/.circleci/config.yml +57 -0
- data/.gitignore +53 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +50 -0
- data/LICENSE.txt +21 -0
- data/README.md +91 -0
- data/REFERENCE.md +71 -0
- data/Rakefile +4 -0
- data/bin/davinci +16 -0
- data/controllers/atom_input_controller.rb +146 -0
- data/controllers/atom_output_controller.rb +107 -0
- data/controllers/cl_args_controller.rb +62 -0
- data/controllers/menu_controller.rb +148 -0
- data/controllers/sublime_input_controller.rb +97 -0
- data/controllers/sublime_output_controller.rb +62 -0
- data/davinci-text.gemspec +34 -0
- data/example_files/atom/atom-dark-syntax/CONTRIBUTING.md +1 -0
- data/example_files/atom/atom-dark-syntax/ISSUE_TEMPLATE.md +40 -0
- data/example_files/atom/atom-dark-syntax/LICENSE.md +20 -0
- data/example_files/atom/atom-dark-syntax/PULL_REQUEST_TEMPLATE.md +28 -0
- data/example_files/atom/atom-dark-syntax/README.md +9 -0
- data/example_files/atom/atom-dark-syntax/index.less +7 -0
- data/example_files/atom/atom-dark-syntax/output.less +384 -0
- data/example_files/atom/atom-dark-syntax/package.json +11 -0
- data/example_files/atom/atom-dark-syntax/styles/editor.less +50 -0
- data/example_files/atom/atom-dark-syntax/styles/syntax-variables.less +44 -0
- data/example_files/atom/atom-dark-syntax/styles/syntax.less +283 -0
- data/example_files/atom/loved-syntax/CONTRIBUTING.md +1 -0
- data/example_files/atom/loved-syntax/LICENSE.md +20 -0
- data/example_files/atom/loved-syntax/README.md +14 -0
- data/example_files/atom/loved-syntax/index.less +18 -0
- data/example_files/atom/loved-syntax/output.less +648 -0
- data/example_files/atom/loved-syntax/package.json +15 -0
- data/example_files/atom/loved-syntax/styles/colors.less +44 -0
- data/example_files/atom/loved-syntax/styles/editor.less +96 -0
- data/example_files/atom/loved-syntax/styles/syntax-variables.less +56 -0
- data/example_files/atom/loved-syntax/styles/syntax/_base.less +311 -0
- data/example_files/atom/loved-syntax/styles/syntax/c.less +5 -0
- data/example_files/atom/loved-syntax/styles/syntax/cpp.less +5 -0
- data/example_files/atom/loved-syntax/styles/syntax/cs.less +5 -0
- data/example_files/atom/loved-syntax/styles/syntax/css.less +13 -0
- data/example_files/atom/loved-syntax/styles/syntax/gfm.less +9 -0
- data/example_files/atom/loved-syntax/styles/syntax/go.less +5 -0
- data/example_files/atom/loved-syntax/styles/syntax/ini.less +5 -0
- data/example_files/atom/loved-syntax/styles/syntax/java.less +24 -0
- data/example_files/atom/loved-syntax/styles/syntax/javascript.less +17 -0
- data/example_files/atom/loved-syntax/styles/syntax/json.less +21 -0
- data/example_files/atom/loved-syntax/styles/syntax/python.less +9 -0
- data/example_files/atom/loved-syntax/styles/syntax/ruby.less +5 -0
- data/example_files/sublime/material.tmTheme +1011 -0
- data/example_files/sublime/monokai.tmTheme +432 -0
- data/lib/.byebug_history +3 -0
- data/lib/templates/atom/.gitignore +3 -0
- data/lib/templates/atom/LICENSE.md +20 -0
- data/lib/templates/atom/README.md +5 -0
- data/lib/templates/atom/index.less +1 -0
- data/lib/templates/atom/package.json +15 -0
- data/lib/templates/atom/styles/base.less +307 -0
- data/lib/templates/atom/styles/colors.less +15 -0
- data/lib/templates/atom/styles/syntax-variables.less +31 -0
- data/lib/templates/sublime/newTheme.tmTheme +438 -0
- data/lib/utility.rb +21 -0
- data/lib/version.rb +3 -0
- 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
|
+

|
@@ -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";
|