Repository: decorators-squad/eo-yaml (java)

Issue:
Treat Newline in Platform-agnostic Way
At the moment the newlines are treated with the hardcoded ``\n`` character. They should be treated in a platform-agnostic way, otherwise this library might not work on all OSs.

Pull request:
#204 NewLine is now Platform-agnostic
fixes #204 

Also modified the tests, so they can run on any CI platform or dev setup.

Patch:
diff --git a/src/main/java/com/amihaiemil/eoyaml/AllYamlLines.java b/src/main/java/com/amihaiemil/eoyaml/AllYamlLines.java
index 712808f..81a7fc5 100644
--- a/src/main/java/com/amihaiemil/eoyaml/AllYamlLines.java
+++ b/src/main/java/com/amihaiemil/eoyaml/AllYamlLines.java
@@ -59,7 +59,7 @@ final class AllYamlLines implements YamlLines {
     public String toString() {
         final StringBuilder builder = new StringBuilder();
         for (final YamlLine line : this.lines) {
-            builder.append(line.toString()).append("\n");
+            builder.append(line.toString()).append(System.lineSeparator());
         }
         return builder.toString();
     }
diff --git a/src/main/java/com/amihaiemil/eoyaml/ReadFoldedBlockScalar.java b/src/main/java/com/amihaiemil/eoyaml/ReadFoldedBlockScalar.java
index e05d108..f214521 100644
--- a/src/main/java/com/amihaiemil/eoyaml/ReadFoldedBlockScalar.java
+++ b/src/main/java/com/amihaiemil/eoyaml/ReadFoldedBlockScalar.java
@@ -62,10 +62,11 @@ final class ReadFoldedBlockScalar extends ComparableScalar {
     @Override
     public String indent(final int indentation) {
         StringBuilder builder = new StringBuilder();
+        final String newLine = System.lineSeparator();
         for(final YamlLine line: this.lines) {
             if(line.trimmed().length() == 0 || line.indentation() > 0) {
                 if(this.doNotEndWithNewLine(builder)) {
-                    builder.append('\n');
+                    builder.append(newLine);
                 }
                 int spaces = line.indentation();
                 if(spaces > 0) {
@@ -74,7 +75,7 @@ final class ReadFoldedBlockScalar extends ComparableScalar {
                     }
                 }
                 builder.append(line.trimmed());
-                builder.append('\n');
+                builder.append(newLine);
             } else {
                 if(this.doNotEndWithNewLine(builder)) {
                     builder.append(' ');
@@ -96,7 +97,7 @@ final class ReadFoldedBlockScalar extends ComparableScalar {
      */
     private boolean doNotEndWithNewLine(final StringBuilder builder) {
         return builder.length() > 0
-                && builder.charAt(builder.length()-1) != '\n';
+                && !builder.toString().endsWith(System.lineSeparator());
     }
     /**
      * Value of this scalar.
@@ -104,17 +105,18 @@ final class ReadFoldedBlockScalar extends ComparableScalar {
      */
     public String value() {
         StringBuilder builder = new StringBuilder();
+        final String newLine = System.lineSeparator();
         for(final YamlLine line: this.lines) {
             if(line.trimmed().length() == 0 || line.indentation() > 0) {
                 if(this.doNotEndWithNewLine(builder)) {
-                    builder.append('\n');
+                    builder.append(newLine);
                 }
                 int indentation = line.indentation();
                 for(int i = 0; i < indentation; i++) {
                     builder.append(' ');
                 }
                 builder.append(line.trimmed());
-                builder.append('\n');
+                builder.append(newLine);
             } else {
                 if(this.doNotEndWithNewLine(builder)) {
                     builder.append(' ');
diff --git a/src/main/java/com/amihaiemil/eoyaml/ReadLiteralBlockScalar.java b/src/main/java/com/amihaiemil/eoyaml/ReadLiteralBlockScalar.java
index c22509b..cce6987 100644
--- a/src/main/java/com/amihaiemil/eoyaml/ReadLiteralBlockScalar.java
+++ b/src/main/java/com/amihaiemil/eoyaml/ReadLiteralBlockScalar.java
@@ -67,7 +67,7 @@ final class ReadLiteralBlockScalar extends ComparableScalar {
                 spaces--;
             }
             printed.append(line.trimmed());
-            printed.append('\n');
+            printed.append(System.lineSeparator());
         }
         printed.delete(printed.length()-1, printed.length());
         return printed.toString();
@@ -81,7 +81,7 @@ final class ReadLiteralBlockScalar extends ComparableScalar {
         StringBuilder builder = new StringBuilder();
         for(final YamlLine line: this.lines) {
             builder.append(line.trimmed());
-            builder.append('\n');
+            builder.append(System.lineSeparator());
         }
         builder.delete(builder.length()-1, builder.length());
         return builder.toString();
diff --git a/src/main/java/com/amihaiemil/eoyaml/ReadPlainScalarValue.java b/src/main/java/com/amihaiemil/eoyaml/ReadPlainScalarValue.java
index 67b14be..2cddb49 100644
--- a/src/main/java/com/amihaiemil/eoyaml/ReadPlainScalarValue.java
+++ b/src/main/java/com/amihaiemil/eoyaml/ReadPlainScalarValue.java
@@ -67,28 +67,7 @@ final class ReadPlainScalarValue extends ComparableScalar {
                 + "Instead, the line is: [" + this.line.trimmed() + "]."
             );
         }
-        return this.unescape(value);
+        return value;
     }
 
-    /**
-     * Remove the possible escaping quotes or apostrophes surrounding the
-     * given value.
-     * @param value The value to unescape.
-     * @return The value without quotes or apostrophes.
-     */
-    private String unescape(final String value) {
-        final String unescaped;
-        if(value == null || value.length()<=2) {
-            unescaped = value;
-        } else {
-            if (value.startsWith("\"") && value.endsWith("\"")) {
-                unescaped = value.substring(1, value.length() - 1);
-            } else if (value.startsWith("'") && value.endsWith("'")) {
-                unescaped = value.substring(1, value.length() - 1);
-            } else {
-                unescaped = value;
-            }
-        }
-        return unescaped;
-    }
 }
diff --git a/src/main/java/com/amihaiemil/eoyaml/YamlMapping.java b/src/main/java/com/amihaiemil/eoyaml/YamlMapping.java
index 8e029b8..e54299e 100644
--- a/src/main/java/com/amihaiemil/eoyaml/YamlMapping.java
+++ b/src/main/java/com/amihaiemil/eoyaml/YamlMapping.java
@@ -97,7 +97,7 @@ public interface YamlMapping extends YamlNode {
      * @return The found YamlNode or null if nothing is found.
      */
     YamlNode value(final YamlNode key);
-    
+
     /**
      * Return the keys' set of this mapping.<br><br>
      * <b>Pay attention: </b> the keys are ordered.
@@ -120,6 +120,7 @@ public interface YamlMapping extends YamlNode {
                 "Indentation level has to be >=0"
             );
         }
+        final String newLine = System.lineSeparator();
         final StringBuilder print = new StringBuilder();
         int spaces = indentation;
         final StringBuilder indent = new StringBuilder();
@@ -133,27 +134,27 @@ public interface YamlMapping extends YamlNode {
             if(key instanceof Scalar) {
                 print.append(key.toString()).append(": ");
                 if (value instanceof Scalar) {
-                    print.append(value.toString()).append("\n");
+                    print.append(value.toString()).append(newLine);
                 } else  {
                     print
-                        .append("\n")
+                        .append(newLine)
                         .append(value.indent(indentation + 2))
-                        .append("\n");
+                        .append(newLine);
                 }
             } else {
                 print
-                    .append("?\n")
-                    .append(key.indent(indentation + 2)).append("\n")
+                    .append("?").append(newLine)
+                    .append(key.indent(indentation + 2)).append(newLine)
                     .append(indent).append(":");
                 if(value instanceof Scalar) {
                     print
                         .append(" ").append(value);
                 } else {
                     print
-                        .append("\n")
+                        .append(newLine)
                         .append(value.indent(indentation + 2));
                 }
-                print.append("\n");
+                print.append(newLine);
             }
         }
         String printed = print.toString();
@@ -162,7 +163,7 @@ public interface YamlMapping extends YamlNode {
         }
         return printed;
     }
-    
+
     /**
      * Convenience method to directly read an integer value
      * from this map. It is equivalent to:
@@ -179,7 +180,7 @@ public interface YamlMapping extends YamlNode {
     default int integer(final String key) {
         return this.integer(new BuiltPlainScalar(key));
     }
-    
+
     /**
      * Convenience method to directly read an integer value
      * from this map. It is equivalent to:
@@ -200,7 +201,7 @@ public interface YamlMapping extends YamlNode {
         }
         return -1;
     }
-    
+
     /**
      * Convenience method to directly read a float value
      * from this map. It is equivalent to:
@@ -217,7 +218,7 @@ public interface YamlMapping extends YamlNode {
     default float floatNumber(final String key) {
         return this.floatNumber(new BuiltPlainScalar(key));
     }
-    
+
     /**
      * Convenience method to directly read a float value
      * from this map. It is equivalent to:
@@ -238,7 +239,7 @@ public interface YamlMapping extends YamlNode {
         }
         return -1;
     }
-    
+
     /**
      * Convenience method to directly read a double value
      * from this map. It is equivalent to:
@@ -255,7 +256,7 @@ public interface YamlMapping extends YamlNode {
     default double doubleNumber(final String key) {
         return this.doubleNumber(new BuiltPlainScalar(key));
     }
-    
+
     /**
      * Convenience method to directly read a double value
      * from this map. It is equivalent to:
@@ -276,7 +277,7 @@ public interface YamlMapping extends YamlNode {
         }
         return -1.0;
     }
-    
+
     /**
      * Convenience method to directly read a long value
      * from this map. It is equivalent to:
@@ -293,7 +294,7 @@ public interface YamlMapping extends YamlNode {
     default long longNumber(final String key) {
         return this.longNumber(new BuiltPlainScalar(key));
     }
-    
+
     /**
      * Convenience method to directly read a long value
      * from this map. It is equivalent to:
@@ -330,7 +331,7 @@ public interface YamlMapping extends YamlNode {
     default LocalDate date(final String key) {
         return this.date(new BuiltPlainScalar(key));
     }
-    
+
     /**
      * Convenience method to directly read a LocalDate value
      * from this map. It is equivalent to:
@@ -350,7 +351,7 @@ public interface YamlMapping extends YamlNode {
         }
         return null;
     }
-    
+
     /**
      * Convenience method to directly read a LocalDateTime value
      * from this map. It is equivalent to:
@@ -366,7 +367,7 @@ public interface YamlMapping extends YamlNode {
     default LocalDateTime dateTime(final String key) {
         return this.dateTime(new BuiltPlainScalar(key));
     }
-    
+
     /**
      * Convenience method to directly read a LocalDateTime value
      * from this map. It is equivalent to:
diff --git a/src/main/java/com/amihaiemil/eoyaml/YamlSequence.java b/src/main/java/com/amihaiemil/eoyaml/YamlSequence.java
index 938f4a5..f55362c 100644
--- a/src/main/java/com/amihaiemil/eoyaml/YamlSequence.java
+++ b/src/main/java/com/amihaiemil/eoyaml/YamlSequence.java
@@ -75,7 +75,7 @@ public interface YamlSequence extends YamlNode, Iterable<YamlNode> {
      * @return Iterator of YamlNode.
      */
     Iterator<YamlNode> iterator();
-    
+
     /**
      * Indent this YamlSequence. This is a default method since indentation
      * logic should be identical for any kind of YamlSequence, regardless of
@@ -91,6 +91,7 @@ public interface YamlSequence extends YamlNode, Iterable<YamlNode> {
                 "Indentation level has to be >=0"
             );
         }
+        final String newLine = System.lineSeparator();
         final StringBuilder print = new StringBuilder();
         int spaces = indentation;
         final StringBuilder indent = new StringBuilder();
@@ -102,10 +103,12 @@ public interface YamlSequence extends YamlNode, Iterable<YamlNode> {
             print.append(indent)
                 .append("- ");
             if (node instanceof Scalar) {
-                print.append(node.toString()).append("\n");
+                print.append(node.toString()).append(newLine);
             } else  {
-                print.append("\n").append(node.indent(indentation + 2))
-                    .append("\n");
+                print
+                    .append(newLine)
+                    .append(node.indent(indentation + 2))
+                    .append(newLine);
             }
         }
         String printed = print.toString();
@@ -114,7 +117,7 @@ public interface YamlSequence extends YamlNode, Iterable<YamlNode> {
         }
         return printed;
     }
-    
+
     /**
      * Convenience method to directly read an integer value
      * from this sequence. It is equivalent to:
@@ -134,7 +137,7 @@ public interface YamlSequence extends YamlNode, Iterable<YamlNode> {
         }
         return -1;
     }
-    
+
     /**
      * Convenience method to directly read a float value
      * from this sequence. It is equivalent to:
@@ -154,7 +157,7 @@ public interface YamlSequence extends YamlNode, Iterable<YamlNode> {
         }
         return -1;
     }
-    
+
     /**
      * Convenience method to directly read a double value
      * from this sequence. It is equivalent to:
@@ -174,7 +177,7 @@ public interface YamlSequence extends YamlNode, Iterable<YamlNode> {
         }
         return -1.0;
     }
-    
+
     /**
      * Convenience method to directly read a long value
      * from this sequence. It is equivalent to:
@@ -213,7 +216,7 @@ public interface YamlSequence extends YamlNode, Iterable<YamlNode> {
         }
         return null;
     }
-    
+
     /**
      * Convenience method to directly read a LocalDateTime value
      * from this sequence. It is equivalent to:
diff --git a/src/main/java/com/amihaiemil/eoyaml/YamlStream.java b/src/main/java/com/amihaiemil/eoyaml/YamlStream.java
index c6fb390..d137dfb 100644
--- a/src/main/java/com/amihaiemil/eoyaml/YamlStream.java
+++ b/src/main/java/com/amihaiemil/eoyaml/YamlStream.java
@@ -41,22 +41,22 @@ public interface YamlStream extends YamlNode, Stream<YamlNode> {
     /**
      * Indent this YamlStream. It will take all elements and separate
      * them with "---". It also starts with "---".
-     * If the YamlStream is empty, it will just print: 
+     * If the YamlStream is empty, it will just print:
      * <pre>
      * ---
      * ...
      * </pre>
-     * 
+     *
      * Here is an example of printed YamlStream:
      * <pre>
      * ---
      *   architect: amihaiemil
-     *   developers: 
+     *   developers:
      *     - amihaiemil
      *     - salikjan
      * ---
      *   architect: yegor256
-     *   developers: 
+     *   developers:
      *     - paolo
      *     - mario
      * </pre>
@@ -72,6 +72,7 @@ public interface YamlStream extends YamlNode, Stream<YamlNode> {
             );
         }
         final StringBuilder print = new StringBuilder();
+        final String newLine = System.lineSeparator();
         int spaces = indentation;
         final StringBuilder indent = new StringBuilder();
         while (spaces > 0) {
@@ -82,15 +83,17 @@ public interface YamlStream extends YamlNode, Stream<YamlNode> {
         String printed;
         if(values.size() == 0) {
             print
-                .append(indent).append("---\n")
+                .append(indent).append("---")
+                .append(newLine)
                 .append(indent).append("...");
             printed = print.toString();
         } else {
             for (final YamlNode node : values) {
                 print.append(indent)
-                     .append("---\n");
+                    .append("---")
+                    .append(newLine);
                 print.append(node.indent(indentation + 2));
-                print.append("\n");
+                print.append(newLine);
             }
             printed = print.toString();
             if(printed.length() > 0) {
@@ -99,5 +102,5 @@ public interface YamlStream extends YamlNode, Stream<YamlNode> {
         }
         return printed;
     }
-    
+
 }


Test patch:
diff --git a/src/test/java/com/amihaiemil/eoyaml/BuiltYamlStreamTest.java b/src/test/java/com/amihaiemil/eoyaml/BuiltYamlStreamTest.java
index 4765469..a543854 100644
--- a/src/test/java/com/amihaiemil/eoyaml/BuiltYamlStreamTest.java
+++ b/src/test/java/com/amihaiemil/eoyaml/BuiltYamlStreamTest.java
@@ -100,7 +100,7 @@ public final class BuiltYamlStreamTest {
             Matchers.equalTo(this.readTestResource("streamOfMappings.yml"))
         );
     }
-    
+
     /**
      * BuiltYamlStreams can hold a stream of sequences.
      * @throws Exception If something goes wrong.
@@ -138,7 +138,7 @@ public final class BuiltYamlStreamTest {
             Matchers.equalTo(this.readTestResource("streamOfSequences.yml"))
         );
     }
-    
+
     /**
      * BuiltYamlStreams can hold a stream of mixed nodes.
      * @throws Exception If something goes wrong.
@@ -187,7 +187,7 @@ public final class BuiltYamlStreamTest {
             Matchers.equalTo(this.readTestResource("streamMixed.yml"))
         );
     }
-    
+
     /**
      * According to the comparison rules, any YamlStream is always considered
      * "greater than" a scalar.
@@ -200,7 +200,7 @@ public final class BuiltYamlStreamTest {
             Matchers.greaterThan(0)
         );
     }
-    
+
     /**
      * According to the comparison rules, any YamlStream is always considered
      * "greater than" a mapping.
@@ -213,7 +213,7 @@ public final class BuiltYamlStreamTest {
             Matchers.greaterThan(0)
         );
     }
-    
+
     /**
      * According to the comparison rules, any YamlStream is always considered
      * "greater than" a sequence.
@@ -226,7 +226,7 @@ public final class BuiltYamlStreamTest {
             Matchers.greaterThan(0)
         );
     }
-    
+
     /**
      * Two YamlStreams which are empty should be equal.
      */
@@ -251,7 +251,7 @@ public final class BuiltYamlStreamTest {
             Matchers.is(Boolean.TRUE)
         );
     }
-    
+
     /**
      * Two identical YamlStreams are equal.
      */
@@ -316,7 +316,7 @@ public final class BuiltYamlStreamTest {
             Matchers.is(Boolean.TRUE)
         );
     }
-    
+
     /**
      * Two different YamlStreams are equal.
      */
@@ -363,7 +363,7 @@ public final class BuiltYamlStreamTest {
             Matchers.is(Boolean.FALSE)
         );
     }
-    
+
     /**
      * BuiltYamlStreams can hold an empty stream.
      * @throws Exception If something goes wrong.
@@ -378,10 +378,10 @@ public final class BuiltYamlStreamTest {
         );
         MatcherAssert.assertThat(
             mappings.toString(),
-            Matchers.equalTo("---\n...")
+            Matchers.equalTo("---" + System.lineSeparator() + "...")
         );
     }
-    
+
     /**
      * Read a test resource file's contents.
      * @param fileName File to read.
@@ -399,5 +399,5 @@ public final class BuiltYamlStreamTest {
             )
         );
     }
-    
+
 }
diff --git a/src/test/java/com/amihaiemil/eoyaml/ReadPointedScalarTest.java b/src/test/java/com/amihaiemil/eoyaml/ReadFoldedBlockScalarTest.java
similarity index 93%
rename from src/test/java/com/amihaiemil/eoyaml/ReadPointedScalarTest.java
rename to src/test/java/com/amihaiemil/eoyaml/ReadFoldedBlockScalarTest.java
index 54d0190..940392f 100644
--- a/src/test/java/com/amihaiemil/eoyaml/ReadPointedScalarTest.java
+++ b/src/test/java/com/amihaiemil/eoyaml/ReadFoldedBlockScalarTest.java
@@ -41,7 +41,7 @@ import org.junit.Test;
  * @version $Id$
  * @since 1.0.2
  */
-public final class ReadPointedScalarTest {
+public final class ReadFoldedBlockScalarTest {
 
     /**
      * ReadPointedScalar should not have values.
@@ -172,9 +172,14 @@ public final class ReadPointedScalarTest {
             scalar.value(),
             Matchers.is(
                 "Sammy Sosa completed another "
-                + "fine season with great stats.\n\n"
-                + "  63 Home Runs\n"
-                + "  75 Hits\n\n"
+                + "fine season with great stats."
+                + System.lineSeparator()
+                + System.lineSeparator()
+                + "  63 Home Runs"
+                + System.lineSeparator()
+                + "  75 Hits"
+                + System.lineSeparator()
+                + System.lineSeparator()
                 + "What a year!"
             )
         );
@@ -214,8 +219,11 @@ public final class ReadPointedScalarTest {
             scalar.indent(4),
             Matchers.is(
                 "    Sammy Sosa completed another "
-                + "fine season with great stats.\n\n"
-                + "      63 Home Runs\n"
+                + "fine season with great stats."
+                + System.lineSeparator()
+                + System.lineSeparator()
+                + "      63 Home Runs"
+                + System.lineSeparator()
                 + "    What a year!"
             )
         );
diff --git a/src/test/java/com/amihaiemil/eoyaml/ReadPipeScalarTest.java b/src/test/java/com/amihaiemil/eoyaml/ReadLiteralBlockScalarTest.java
similarity index 93%
rename from src/test/java/com/amihaiemil/eoyaml/ReadPipeScalarTest.java
rename to src/test/java/com/amihaiemil/eoyaml/ReadLiteralBlockScalarTest.java
index c76bc4d..7d23faf 100644
--- a/src/test/java/com/amihaiemil/eoyaml/ReadPipeScalarTest.java
+++ b/src/test/java/com/amihaiemil/eoyaml/ReadLiteralBlockScalarTest.java
@@ -42,7 +42,7 @@ import org.junit.Test;
  * @version $Id$
  * @since 1.0.2
  */
-public final class ReadPipeScalarTest {
+public final class ReadLiteralBlockScalarTest {
 
     /**
      * ReadPipeScalar should not have values.
@@ -73,7 +73,11 @@ public final class ReadPipeScalarTest {
             new ReadLiteralBlockScalar(new AllYamlLines(lines));
         MatcherAssert.assertThat(
             scalar.value(),
-            Matchers.is("First Line.\nSecond Line.\nThird Line.")
+            Matchers.is(
+            "First Line." + System.lineSeparator()
+                + "Second Line."+ System.lineSeparator()
+                + "Third Line."
+            )
         );
     }
 
@@ -149,7 +153,11 @@ public final class ReadPipeScalarTest {
             new ReadLiteralBlockScalar(new AllYamlLines(lines));
         MatcherAssert.assertThat(
             scalar.indent(4),
-            Matchers.is("    First Line.\n    Second Line.\n    Third Line.")
+            Matchers.is(
+            "    First Line." + System.lineSeparator()
+                + "    Second Line." + System.lineSeparator()
+                + "    Third Line."
+            )
         );
     }
 }
diff --git a/src/test/java/com/amihaiemil/eoyaml/RtYamlInputTest.java b/src/test/java/com/amihaiemil/eoyaml/RtYamlInputTest.java
index cbbb058..ae57caf 100644
--- a/src/test/java/com/amihaiemil/eoyaml/RtYamlInputTest.java
+++ b/src/test/java/com/amihaiemil/eoyaml/RtYamlInputTest.java
@@ -194,8 +194,8 @@ public final class RtYamlInputTest {
         MatcherAssert.assertThat(palette.keys().size(), Matchers.is(12));
         MatcherAssert.assertThat(palette.values().size(), Matchers.is(12));
         MatcherAssert.assertThat(
-            palette.string("light_gray"),
-            Matchers.is("#484848")
+            palette.string("gray"),
+            Matchers.is("'#404040'")
         );
         MatcherAssert.assertThat(
             palette.string("magenta"),
@@ -248,7 +248,7 @@ public final class RtYamlInputTest {
         MatcherAssert.assertThat(palette.values().size(), Matchers.is(12));
         MatcherAssert.assertThat(
             palette.string("gray"),
-            Matchers.is("#404040")
+            Matchers.is("'#404040'")
         );
         MatcherAssert.assertThat(
             palette.string("magenta"),
@@ -295,10 +295,15 @@ public final class RtYamlInputTest {
             .add("pears")
             .add("peaches")
             .build();
-
         YamlSequence read = new RtYamlInput(
             new ByteArrayInputStream(
-                "---\n- apples\n- pears\n- peaches".getBytes()
+                new StringBuilder()
+                    .append("---").append(System.lineSeparator())
+                    .append("- apples").append(System.lineSeparator())
+                    .append("- pears").append(System.lineSeparator())
+                    .append("- peaches").append(System.lineSeparator())
+                    .toString()
+                    .getBytes()
             )
         ).readYamlSequence();
 
diff --git a/src/test/resources/mapping_ignore_directives.yml b/src/test/resources/mapping_ignore_directives.yml
index 539d982..e723d35 100644
--- a/src/test/resources/mapping_ignore_directives.yml
+++ b/src/test/resources/mapping_ignore_directives.yml
@@ -14,7 +14,7 @@ palette:
   # - Grayscale -
   black: '#303030'
   gray: '#404040'
-  light_gray: "#484848"
+  light_gray: '#484848'
   white: white
 
   # - Colors -
@@ -30,11 +30,11 @@ palette:
 workspace:
 
   background: gray
-
+  
   guides:
     lines: stroke rgba(255, 255, 255, 0.3)
     grid: stroke rgba(255, 255, 255, 0.3)
-
+  
   elements:
     devices:
       pins:
@@ -46,4 +46,4 @@ workspace:
       wires:
         inactive: 'stroke #808080'
         active: activePin
-        creator: stroke rgba(255, 255, 255, 0.125)
+        creator: stroke rgba(255, 255, 255, 0.125)
\ No newline at end of file