diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..8a21474 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,91 @@ +name: CI +on: + push: + branches: + - master + pull_request: + +jobs: + tests: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@master + + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + + - name: version info + run: rustc --version; cargo --version; + + - name: Run all tests + run: cargo test + + fmt: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@master + + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + + - uses: actions-rs/cargo@v1 + with: + command: fmt + args: --all -- --check + + clippy: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@master + + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + + - uses: actions-rs/cargo@v1 + with: + command: clippy + args: -- -D warnings + + + sass-spec: + continue-on-error: true + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@master + + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + + - name: version info + run: rustc --version; cargo --version; + + - name: Build binary + run: cargo b --release + + - name: Get sass-spec + run: git submodule init && git submodule update + + - name: Install whatever Ruby needs + run: | + sudo apt-get install libncurses5-dev libncursesw5-dev + sudo gem install bundler + cd sass-spec && bundler install + + - name: Run Sass spec + run: ./sass-spec/sass-spec.rb -c './target/release/grass' diff --git a/.gitignore b/.gitignore index c08fa70..2089ed5 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ Cargo.lock coverage pkg +.idea/ +!input.scss \ No newline at end of file diff --git a/input.scss b/input.scss new file mode 100644 index 0000000..80afe79 --- /dev/null +++ b/input.scss @@ -0,0 +1,3 @@ +body { + background: red; +} \ No newline at end of file diff --git a/src/args.rs b/src/args.rs index 0ae0583..7cf5e38 100644 --- a/src/args.rs +++ b/src/args.rs @@ -5,7 +5,6 @@ use codemap::{Span, Spanned}; use peekmore::PeekMoreIterator; -use crate::Cow; use crate::common::Identifier; use crate::error::SassResult; use crate::scope::Scope; @@ -15,6 +14,7 @@ use crate::utils::{ read_until_closing_paren, read_until_closing_quote, read_until_closing_square_brace, }; use crate::value::Value; +use crate::Cow; use crate::Token; #[derive(Debug, Clone, Eq, PartialEq)] diff --git a/src/utils/strings.rs b/src/utils/strings.rs index 4573941..9eda2e5 100644 --- a/src/utils/strings.rs +++ b/src/utils/strings.rs @@ -1,5 +1,5 @@ -use std::iter::Iterator; use std::borrow::Borrow; +use std::iter::Iterator; use codemap::{Span, Spanned}; diff --git a/src/value/ops.rs b/src/value/ops.rs index 6b71dc5..254ab8c 100644 --- a/src/value/ops.rs +++ b/src/value/ops.rs @@ -268,7 +268,9 @@ impl Value { format!("{}{}", self.to_css_string(span)?, s), QuoteKind::Quoted, ), - Self::Null => Value::String(self.to_css_string(span)?.into_owned(), QuoteKind::None), + Self::Null => { + Value::String(self.to_css_string(span)?.into_owned(), QuoteKind::None) + } _ => Value::String( format!( "{}{}",