/* @variables-insert */

@import "styles/syntax-variables.less";

atom-text-editor {
  background-color: @syntax-background-color;
  color: @syntax-text-color;

  .wrap-guide {
    background-color: @syntax-wrap-guide-color;
  }

  .indent-guide {
    color: @syntax-indent-guide-color;
  }

  .invisible-character {
    color: @syntax-invisible-character-color;
  }

  .gutter {
    background-color: @syntax-gutter-background-color;
    color: @syntax-gutter-text-color;

    .line-number {
      &.cursor-line {
        background-color: @foreground-1;
        color: @background-1;
      }

      &.cursor-line-no-selection {
        color: @background-1;
      }
    }
  }

  .gutter .line-number.folded,
  .gutter .line-number::after,
  .fold-marker::after {
    color: @foreground-2;
  }

  .invisible {
    color: @syntax-text-color;
  }

  .cursor {
    color: @syntax-cursor-color;
  }

  .selection .region {
    background-color: @syntax-selection-color;
  }
}

// Syntax styles

.syntax--comment {
  color: fade(@foreground-1, 40%);
}

.syntax--keyword {
  color: @accent-10;

  &.syntax--control {
    color: @accent-5;
  }

  &.syntax--operator {
    color: @accent-9;
  }

  &.syntax--other.syntax--unit {
    color: @accent-3;
  }
}

.syntax--storage {
  color: @accent-10;
}

.syntax--constant {
  color: @accent-3;

  &.syntax--character.syntax--escape {
    color: @accent-5;
  }

  &.syntax--numeric {
    color: @accent-3;
  }
}

.syntax--variable {
  color: @foreground-1;

  &.syntax--interpolation {
    color: @accent-5;
  }

  &.syntax--parameter.syntax--function {
    color: @accent-2;
  }
}

.syntax--invalid.syntax--illegal {
  background-color: @accent-1;
  color: @background-1;
}

.syntax--string {
  color: @accent-4;
}

.syntax--punctuation {
  &.syntax--definition {
    &.syntax--comment {
      color: fade(@foreground-1, 40%);
    }

    &.syntax--string,
    &.syntax--variable,
    &.syntax--parameters,
    &.syntax--array {
      color: @foreground-1;
    }
  }
}

.syntax--support {
  &.syntax--function {
    color: @foreground-1;
  }
}

.syntax--entity {
  &.syntax--name.syntax--function {
    color: @accent-6;
  }

  &.syntax--name.syntax--tag {
    color: @accent-2;
    text-decoration: underline;
  }

  &.syntax--other.syntax--attribute-name {
    color: @accent-9;
  }
}

.syntax--meta {
  &.syntax--class {
    color: @foreground-1;
  }

  &.syntax--link {
    color: @foreground-1;
  }

  &.syntax--require {
    color: @foreground-1;
  }
}

.syntax--none {
  color: @foreground-1;
}

.syntax--markup {
  &.syntax--bold {
    color: @accent-2;
    font-weight: bold;
  }

  &.syntax--changed {
    color: @accent-7;
  }

  &.syntax--deleted {
    color: @accent-1;
  }

  &.syntax--italic {
    color: @accent-2;
    font-style: italic;
  }

  &.syntax--heading .syntax--punctuation.syntax--definition.syntax--heading {
    color: @accent-7;
  }

  &.syntax--inserted {
    color: @accent-5;
  }

  &.syntax--list {
    color: @accent-1;
  }

  &.syntax--quote {
    color: @accent-2;
  }

  &.syntax--raw.syntax--inline {
    color: @accent-5;
  }
}

.syntax--source.syntax--gfm .syntax--markup {
  -webkit-font-smoothing: auto;

  &.syntax--heading {
    color: @accent-5;
  }
}
