├── .github
├── issue_template.md
└── pull_request_template.md
├── INSTALL.md
├── LICENSE
├── README.md
├── dracula-pro.png
├── examples
├── sample.html
├── sample.js
├── sample.json
└── sample.rb
├── index.less
├── package.json
├── screenshot.png
└── styles
├── base.less
├── colors.less
└── syntax-variables.less
/.github/issue_template.md:
--------------------------------------------------------------------------------
1 | > If you're reporting an UI issue, make sure you take a screenshot that shows the actual bug.
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 | > If you're fixing a UI issue, make sure you take two screenshots. One that shows the actual bug and another that shows how you fixed it.
--------------------------------------------------------------------------------
/INSTALL.md:
--------------------------------------------------------------------------------
1 | ### [Atom](https://atom.io/)
2 |
3 | #### Install using Atom
4 |
5 | 1. Go to `Atom -> Preferences...`
6 | 2. Then select the `Install` tab
7 | 3. Click the `Themes` button to the right of the search box
8 | 4. Enter `dracula-syntax` in the search box
9 |
10 | #### Install using Atom Package Manager
11 |
12 | ```bash
13 | apm install dracula-syntax
14 | ```
15 |
16 | #### Install using Git
17 |
18 | Alternatively, if you are a git user, you can install the theme and keep up to date by cloning the repo directly into your `~/.atom/packages` directory.
19 |
20 | ```bash
21 | git clone https://github.com/dracula/atom.git ~/.atom/packages/dracula-syntax
22 | ```
23 |
24 | #### Install manually
25 |
26 | 1. Download using the [GitHub .zip download](https://github.com/dracula/atom/archive/master.zip) option and unzip them
27 | 2. Move the `dracula-syntax` folder to `~/.atom/packages`
28 |
29 | #### Activating theme
30 |
31 | Go to `Atom -> Preferences...`, click in the `Themes` tab, and select `Dracula` in the `Syntax Theme` dropdown.
32 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014-present Dracula Theme
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Dracula for [Atom](https://atom.io)
2 |
3 | > A dark theme for [Atom](https://atom.io).
4 |
5 | 
6 |
7 | ## Install
8 |
9 | All instructions can be found at [draculatheme.com/atom](https://draculatheme.com/atom).
10 |
11 | ## Issues
12 |
13 | If you are running into an issue where Atom is constantly asking you to update the package, it may have to do with the rename from `dracula-theme` to `dracula-syntax`. Uninstalling `dracula-theme` and `dracula-syntax` and reinstalling `dracula-syntax` should fix this problem.
14 |
15 | ## Related
16 |
17 | - [UI theme](https://github.com/dracula/atom-ui)
18 |
19 | ## Team
20 |
21 | This theme is maintained by the following person(s) and a bunch of [awesome contributors](https://github.com/dracula/atom/graphs/contributors).
22 |
23 | | [](https://github.com/JimmyMultani) |
24 | | -------------------------------------------------------------------------------------------------------------- |
25 | | [Jimmy Multani](https://github.com/JimmyMultani) |
26 |
27 | ## Community
28 |
29 | - [Twitter](https://twitter.com/draculatheme) - Best for getting updates about themes and new stuff.
30 | - [GitHub](https://github.com/dracula/dracula-theme/discussions) - Best for asking questions and discussing issues.
31 | - [Discord](https://draculatheme.com/discord-invite) - Best for hanging out with the community.
32 |
33 | ## Dracula PRO
34 |
35 | [](https://draculatheme.com/pro)
36 |
37 | ## License
38 |
39 | [MIT License](./LICENSE)
40 |
--------------------------------------------------------------------------------
/dracula-pro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dracula/atom/95f1147da953b05383a82f2055905c4be9929e14/dracula-pro.png
--------------------------------------------------------------------------------
/examples/sample.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Sample
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/examples/sample.js:
--------------------------------------------------------------------------------
1 | import sampleJson from './sample.json';
2 |
3 | /*
4 | * Once upon a time...
5 | */
6 |
7 | class Vampire {
8 | constructor(props) {
9 | this.location = props.location;
10 | this.birthDate = props.birthDate;
11 | this.deathDate = props.deathDate;
12 | this.weaknesses = props.weaknesses;
13 | }
14 |
15 | get age() {
16 | return this.calcAge();
17 | }
18 |
19 | calcAge() {
20 | return this.deathDate - this.birthDate;
21 | }
22 | }
23 |
24 | // ...there was a guy named Vlad
25 |
26 | const Dracula = new Vampire({
27 | location: 'Transylvania',
28 | birthDate: 1428,
29 | deathDate: 1476,
30 | weaknesses: ['Sunlight', 'Garlic']
31 | bool: [true, false],
32 | embedded: `${true}`
33 | });
34 |
--------------------------------------------------------------------------------
/examples/sample.json:
--------------------------------------------------------------------------------
1 | {
2 | "singleValues": {
3 | "number": 0,
4 | "string": "test",
5 | "boolean": true,
6 | },
7 | "multipleValues": {
8 | "array": [1 ,2 ,3, 4, 5],
9 | "stringArray": ["string", "string", "string"],
10 | "booleanArray": [true, false, true, true, false],
11 | "objectArray": [
12 | {
13 | "number": 0,
14 | "string": "test",
15 | "boolean": true,
16 | },
17 | {
18 | "number": 0,
19 | "string": "test",
20 | "boolean": true,
21 | },
22 | {
23 | "number": 0,
24 | "string": "test",
25 | "boolean": true,
26 | }
27 | ]
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/examples/sample.rb:
--------------------------------------------------------------------------------
1 |
2 | # frozen_string_literal: true
3 |
4 | module ActiveRecord
5 | # = Active Record \RecordInvalid
6 | #
7 | # Raised by {ActiveRecord::Base#save!}[rdoc-ref:Persistence#save!] and
8 | # {ActiveRecord::Base#create!}[rdoc-ref:Persistence::ClassMethods#create!] when the record is invalid.
9 | # Use the #record method to retrieve the record which did not validate.
10 | #
11 | # begin
12 | # complex_operation_that_internally_calls_save!
13 | # rescue ActiveRecord::RecordInvalid => invalid
14 | # puts invalid.record.errors
15 | # end
16 | class RecordInvalid < ActiveRecordError
17 | include ConstantVariable
18 |
19 | attr_reader :record
20 |
21 | def initialize(record = nil)
22 | if record
23 | @record = record
24 | errors = @record.errors.full_messages.join(", ")
25 | message = I18n.t(:"#{@record.class.i18n_scope}.errors.messages.record_invalid", errors: errors, default: :"errors.messages.record_invalid")
26 | else
27 | message = "Record invalid"
28 | end
29 |
30 | super(message)
31 | end
32 | end
33 |
34 | # = Active Record \Validations
35 | #
36 | # Active Record includes the majority of its validations from ActiveModel::Validations
37 | # all of which accept the :on argument to define the context where the
38 | # validations are active. Active Record will always supply either the context of
39 | # :create or :update dependent on whether the model is a
40 | # {new_record?}[rdoc-ref:Persistence#new_record?].
41 | module Validations
42 | extend ActiveSupport::Concern
43 | include ActiveModel::Validations
44 |
45 | # The validation process on save can be skipped by passing validate: false.
46 | # The validation context can be changed by passing context: context.
47 | # The regular {ActiveRecord::Base#save}[rdoc-ref:Persistence#save] method is replaced
48 | # with this when the validations module is mixed in, which it is by default.
49 | def save(**options)
50 | perform_validations(options) ? super : false
51 | end
52 |
53 | # Attempts to save the record just like {ActiveRecord::Base#save}[rdoc-ref:Base#save] but
54 | # will raise an ActiveRecord::RecordInvalid exception instead of returning +false+ if the record is not valid.
55 | def save!(**options)
56 | perform_validations(options) ? super : raise_validation_error
57 | end
58 |
59 | # Runs all the validations within the specified context. Returns +true+ if
60 | # no errors are found, +false+ otherwise.
61 | #
62 | # Aliased as #validate.
63 | #
64 | # If the argument is +false+ (default is +nil+), the context is set to :create if
65 | # {new_record?}[rdoc-ref:Persistence#new_record?] is +true+, and to :update if it is not.
66 | #
67 | # \Validations with no :on option will run no matter the context. \Validations with
68 | # some :on option will only run in the specified context.
69 | def valid?(context = nil)
70 | context ||= default_validation_context
71 | output = super(context)
72 | errors.empty? && output
73 | end
74 |
75 | alias_method :validate, :valid?
76 |
77 | private
78 | def default_validation_context
79 | new_record? ? :create : :update
80 | end
81 |
82 | def raise_validation_error
83 | raise(RecordInvalid.new(self))
84 | end
85 |
86 | def perform_validations(options = {})
87 | options[:validate] == false || valid?(options[:context])
88 | end
89 | end
90 | end
91 |
92 | require "active_record/validations/associated"
93 | require "active_record/validations/uniqueness"
94 | require "active_record/validations/presence"
95 | require "active_record/validations/absence"
96 | require "active_record/validations/length"
97 | require "active_record/validations/numericality"
98 |
--------------------------------------------------------------------------------
/index.less:
--------------------------------------------------------------------------------
1 | /* Dracula Theme
2 | *
3 | * https://github.com/dracula/atom
4 | *
5 | * Copyright 2014 - present, All rights reserved
6 | *
7 | * Code licensed under the MIT license
8 | * https://github.com/dracula/atom/blob/master/LICENSE
9 | *
10 | * @author Zeno Rocha
11 | */
12 |
13 | @import "./styles/base.less";
14 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "dracula-syntax",
3 | "theme": "syntax",
4 | "version": "3.0.2",
5 | "description": "A dark syntax theme for Atom",
6 | "repository": "https://github.com/dracula/atom",
7 | "license": "MIT",
8 | "engines": {
9 | "atom": ">=1.13.0 <2.0.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dracula/atom/95f1147da953b05383a82f2055905c4be9929e14/screenshot.png
--------------------------------------------------------------------------------
/styles/base.less:
--------------------------------------------------------------------------------
1 | @import "syntax-variables";
2 |
3 | atom-text-editor {
4 | background-color: @syntax-background-color;
5 | color: @syntax-text-color;
6 |
7 | .wrap-guide {
8 | background-color: @syntax-wrap-guide-color;
9 | }
10 |
11 | .indent-guide {
12 | color: @syntax-indent-guide-color;
13 | }
14 |
15 | .invisible-character {
16 | color: @syntax-invisible-character-color;
17 | }
18 |
19 | .gutter {
20 | background-color: @syntax-gutter-background-color;
21 | color: @syntax-gutter-text-color;
22 |
23 | .line-number {
24 | &.cursor-line {
25 | background-color: @syntax-gutter-background-color-selected;
26 | color: @syntax-gutter-text-color-selected;
27 | }
28 |
29 | &.cursor-line-no-selection {
30 | color: @syntax-gutter-text-color-selected;
31 | }
32 | }
33 | }
34 |
35 | .gutter .line-number.folded,
36 | .gutter .line-number:after,
37 | .fold-marker:after {
38 | color: @light-gray;
39 | }
40 |
41 | .invisible {
42 | color: @syntax-text-color;
43 | }
44 |
45 | .cursor {
46 | color: @syntax-cursor-color;
47 | }
48 |
49 | .selection .region {
50 | background-color: @syntax-selection-color;
51 | }
52 | }
53 |
54 |
55 | // Syntax styles
56 |
57 | .syntax--comment {
58 | color: @comment;
59 |
60 | .syntax--keyword.syntax--control {
61 | color: @pink;
62 | }
63 |
64 | .syntax--support.syntax--type {
65 | color: @cyan;
66 | font-style: italic;
67 | }
68 |
69 | .syntax--variable {
70 | color: @orange;
71 | font-style: italic;
72 | }
73 | }
74 |
75 | .syntax--keyword {
76 | color: @pink;
77 |
78 | &.syntax--control {
79 | color: @pink;
80 | }
81 |
82 | &.syntax--operator {
83 | color: @pink;
84 | }
85 |
86 | &.syntax--setter {
87 | color: @cyan;
88 | font-style: italic;
89 | }
90 |
91 | &.syntax--other.syntax--special-method {
92 | color: @blue;
93 |
94 | .syntax--ruby &,
95 | &.syntax--ruby {
96 | color: @pink;
97 | }
98 | }
99 |
100 | &.syntax--other.syntax--unit {
101 | color: @orange;
102 | }
103 | }
104 |
105 | .syntax--storage {
106 | color: @pink;
107 |
108 | // &.syntax--type {
109 | // color: @cyan;
110 | // font-style: italic;
111 | // }
112 | }
113 |
114 | .syntax--constant {
115 | color: @purple;
116 |
117 | &.syntax--character.syntax--escape {
118 | color: @pink;
119 | }
120 |
121 | &.syntax--numeric {
122 | color: @purple;
123 | }
124 |
125 | &.syntax--other.syntax--color {
126 | color: @cyan;
127 | }
128 |
129 | &.syntax--other.syntax--symbol {
130 | color: @purple;
131 | }
132 | }
133 |
134 | .syntax--variable {
135 | color: @foreground;
136 |
137 | &.syntax--interpolation {
138 | color: @pink;
139 | }
140 |
141 | &.syntax--parameter.syntax--function {
142 | color: @orange;
143 | font-style: italic;
144 | }
145 |
146 | &.syntax--list {
147 | color: @cyan;
148 | }
149 |
150 | &.syntax--constant {
151 | color: @purple;
152 | }
153 |
154 | &.syntax--instance {
155 | color: @purple;
156 | font-style: italic;
157 | }
158 | }
159 |
160 | .syntax--invalid.syntax--illegal {
161 | background-color: @red;
162 | color: @syntax-background-color;
163 | }
164 |
165 | // StringRegExp
166 | .syntax--regexp {
167 | .syntax--keyword.syntax--operator,
168 | .syntax--storage.syntax--modifier {
169 | color: @red;
170 | }
171 | }
172 |
173 | // String
174 | .syntax--string {
175 | color: @yellow;
176 |
177 | &.syntax--regexp {
178 | color: @red;
179 |
180 | .syntax--source.syntax--ruby.syntax--embedded {
181 | color: @orange;
182 | }
183 | }
184 |
185 | &.syntax--other.syntax--link {
186 | color: @red;
187 | }
188 | }
189 |
190 | .syntax--punctuation {
191 | color: @pink;
192 |
193 | &.syntax--bracket {
194 | color: @foreground;
195 | }
196 |
197 | &.syntax--definition {
198 | &.syntax--bracket,
199 | &.syntax--curly {
200 | color: @foreground;
201 | }
202 |
203 | &.syntax--comment {
204 | color: @comment;
205 | }
206 |
207 | &.syntax--string,
208 | &.syntax--variable,
209 | &.syntax--parameters,
210 | &.syntax--array {
211 | color: @syntax-text-color;
212 |
213 | .syntax--ruby & {
214 | color: @yellow;
215 | }
216 | }
217 |
218 | &.syntax--heading,
219 | &.syntax--identity {
220 | color: @blue;
221 | }
222 |
223 | &.syntax--bold {
224 | color: @orange;
225 | font-weight: bold;
226 | }
227 |
228 | &.syntax--italic {
229 | color: @purple;
230 | font-style: italic;
231 | }
232 | }
233 |
234 | &.syntax--separator {
235 | &.syntax--inheritance {
236 | color: @pink;
237 | }
238 | }
239 |
240 | &.syntax--section.syntax--embedded {
241 | color: @pink;
242 | }
243 |
244 | }
245 |
246 | .syntax--support {
247 | color: @cyan;
248 | font-style: italic;
249 | width: calc(1px);
250 |
251 | &.syntax--class {
252 | color: @cyan;
253 | }
254 |
255 | &.syntax--constant {
256 | color: @purple;
257 | }
258 |
259 | &.syntax--function {
260 | color: @cyan;
261 |
262 | &.syntax--any-method {
263 | color: @cyan;
264 | }
265 |
266 | .syntax--ruby & {
267 | color: @pink;
268 | font-style: normal;
269 | }
270 | }
271 |
272 | // MarkupBlockquote
273 | &.syntax--quote&.syntax--gfm {
274 | color: @yellow;
275 | font-style: italic;
276 | }
277 | }
278 |
279 | .syntax--entity {
280 | color: @pink;
281 |
282 | &.syntax--name.syntax--function {
283 | color: @green;
284 | }
285 |
286 | &.syntax--name.syntax--type {
287 | color: @orange;
288 | font-style: italic;
289 | }
290 |
291 | &.syntax--other.syntax--inherited-class {
292 | color: @cyan;
293 | font-style: italic;
294 | }
295 |
296 | &.syntax--name.syntax--class, &.syntax--name.syntax--type.syntax--class {
297 | color: @cyan;
298 | }
299 |
300 | &.syntax--name.syntax--section {
301 | color: @blue;
302 | }
303 |
304 | &.syntax--name.syntax--tag {
305 | color: @pink;
306 | }
307 |
308 | &.syntax--other.syntax--attribute-name {
309 | color: @green;
310 |
311 | &.syntax--id {
312 | color: @blue;
313 | }
314 | }
315 | }
316 |
317 | .syntax--meta {
318 | &.syntax--class {
319 | color: @cyan;
320 | }
321 |
322 | &.syntax--link {
323 | color: @orange;
324 | }
325 |
326 | &.syntax--require {
327 | color: @blue;
328 | }
329 |
330 | &.syntax--selector {
331 | color: @purple;
332 | }
333 |
334 | &.syntax--delimiter {
335 | color: @pink;
336 |
337 | &.syntax--comma {
338 | color: @syntax-text-color;
339 | }
340 | }
341 |
342 | &.syntax--separator {
343 | color: @pink;
344 | }
345 | }
346 |
347 | .syntax--none {
348 | color: @syntax-text-color;
349 | }
350 |
351 | .syntax--markup {
352 | &.syntax--bold {
353 | color: @orange;
354 | font-weight: bold;
355 | }
356 |
357 | &.syntax--changed {
358 | color: @purple;
359 | }
360 |
361 | &.syntax--deleted {
362 | color: @red;
363 | }
364 |
365 | &.syntax--italic {
366 | color: @yellow;
367 | font-style: italic;
368 | }
369 |
370 | &.syntax--heading .syntax--punctuation.syntax--definition.syntax--heading {
371 | color: @blue;
372 | }
373 |
374 | &.syntax--inserted {
375 | color: @green;
376 | }
377 |
378 | &.syntax--list {
379 | color: @red;
380 | }
381 |
382 | &.syntax--quote {
383 | color: @orange;
384 | }
385 |
386 | &.syntax--raw.syntax--inline {
387 | color: @green;
388 | }
389 | }
390 |
391 | // Markdown/RST
392 | .syntax--source.syntax--gfm {
393 | .syntax--markup {
394 | -webkit-font-smoothing: auto;
395 |
396 | &.syntax--heading {
397 | color: @purple;
398 | font-weight: bold;
399 | }
400 |
401 | &.syntax--link {
402 | &.syntax--underline {
403 | color: @cyan;
404 | }
405 | }
406 |
407 | &.syntax--raw {
408 | color: @green;
409 | }
410 | }
411 |
412 | .syntax--link {
413 | .syntax--punctuation {
414 | color: @orange;
415 | }
416 | }
417 |
418 | .syntax--raw.syntax--inline {
419 | color: @green;
420 | }
421 |
422 | &.syntax--quote,
423 | .syntax--comment.syntax--quote {
424 | color: @yellow;
425 | font-style: italic;
426 | }
427 |
428 | // MarkupCodeBlockWithoutSyntax
429 | .syntax--raw {
430 | .syntax--support.syntax--gfm {
431 | color: @orange;
432 | }
433 | }
434 |
435 | // MarkupCodeBlockWithSyntax
436 | .syntax--code {
437 | .syntax--support.syntax--gfm {
438 | color: @green;
439 | }
440 |
441 | .syntax--embedded {
442 | color: @green;
443 | }
444 | }
445 | }
446 |
447 | // Mini editor
448 |
449 | atom-text-editor[mini] .scroll-view {
450 | padding-left: 1px;
451 | }
452 |
--------------------------------------------------------------------------------
/styles/colors.less:
--------------------------------------------------------------------------------
1 | // These colors are specific to the theme. Do not use in a package!
2 |
3 | // dracula colors
4 | @background: #282A36;
5 | @foreground: #F8F8F2;
6 | @selection: #44475A;
7 | @comment: #6272A4;
8 | @red: #FF5555;
9 | @orange: #FFB86C;
10 | @yellow: #F1FA8C;
11 | @green: #50FA7B;
12 | @purple: #BD93F9;
13 | @cyan: #8BE9FD;
14 | @pink: #FF79C6;
15 |
16 | // not dracula colors
17 | @lace: #f8f8f0;
18 | @white: #ffffff;
19 | @black: #000000;
20 | @blue: @comment;
21 |
22 | // default syntax set colors
23 | @very-dark-gray: @background;
24 | @dark-gray: hsla(220, 100%, 80%, .08); // Current Line & Selection
25 | @gray: #666666;
26 | @light-gray: #999999;
27 | @very-light-gray: @foreground; // Foreground
28 |
29 | // @cyan: #8abeb7;
30 | // @blue: #81a2be;
31 | // @purple: #b294bb;
32 | // @green: #b5bd68;
33 | // @red: #cc6666;
34 | // @orange: #de935f;
35 | // @light-orange: #f0c674;
36 |
--------------------------------------------------------------------------------
/styles/syntax-variables.less:
--------------------------------------------------------------------------------
1 | @import "colors";
2 |
3 | // This defines all syntax variables that syntax themes must implement when they
4 | // include a syntax-variables.less file.
5 |
6 | // General colors
7 | @syntax-text-color: @very-light-gray;
8 | @syntax-cursor-color: white;
9 | @syntax-selection-color: lighten(@dark-gray, 10%);
10 | @syntax-background-color: @very-dark-gray;
11 |
12 | // Guide colors
13 | @syntax-wrap-guide-color: @dark-gray;
14 | @syntax-indent-guide-color: @gray;
15 | @syntax-invisible-character-color: @gray;
16 |
17 | // For find and replace markers
18 | @syntax-result-marker-color: @light-gray;
19 | @syntax-result-marker-color-selected: white;
20 |
21 | // Gutter colors
22 | @syntax-gutter-text-color: @very-light-gray;
23 | @syntax-gutter-text-color-selected: @syntax-gutter-text-color;
24 | @syntax-gutter-background-color: @dark-gray;
25 | @syntax-gutter-background-color-selected: @gray;
26 |
27 | // For git diff info. i.e. in the gutter
28 | @syntax-color-renamed: @blue;
29 | @syntax-color-added: @green;
30 | @syntax-color-modified: @orange;
31 | @syntax-color-removed: @red;
32 |
--------------------------------------------------------------------------------