Coder Social home page Coder Social logo

codacy-stylelint's Introduction

codacy-stylelint

Codacy Badge Codacy Badge CircleCI Docker Version

Docker engine to allow Codacy to have stylelint support.

Usage

You can create the docker by following these steps:

  1. Generate base image:
docker build -t codacy-stylelint-base .
  1. Generate tool image:
sbt docker:publishLocal

The docker is ran with the following command:

docker run -it -v $srcDir:/src  <DOCKER_NAME>:<DOCKER_VERSION>

Docs

Tool Developer Guide

Tool Developer Guide - Using Scala

Test

We use the codacy-plugins-test to test our external tools integration. You can follow the instructions there to make sure your tool is working as expected.

Update tool version

The tool is dependabot friendly, so it is automatically updated.

Generate Docs

sbt "doc-generator/run"

What is Codacy

Codacy is an Automated Code Review Tool that monitors your technical debt, helps you improve your code quality, teaches best practices to your developers, and helps you save time in Code Reviews.

Among Codacy’s features

  • Identify new Static Analysis issues
  • Commit and Pull Request Analysis with GitHub, BitBucket/Stash, GitLab (and also direct git repositories)
  • Auto-comments on Commits and Pull Requests
  • Integrations with Slack, HipChat, Jira, YouTrack
  • Track issues in Code Style, Security, Error Proneness, Performance, Unused Code and other categories

Codacy also helps keep track of Code Coverage, Code Duplication, and Code Complexity.

Codacy supports PHP, Python, Ruby, Java, JavaScript, and Scala, among others.

Free for Open Source

Codacy is free for Open Source projects.

codacy-stylelint's People

Contributors

alerizzo avatar betullkoyuncu avatar bmbferreira avatar caldasdeoliveira avatar codacy-vrhpires avatar dependabot-preview[bot] avatar dependabot[bot] avatar dmarinhocodacy avatar goncalo-codacy avatar h314to avatar heliocodacy avatar hjrocha avatar inesgomas avatar josemiguelmelo avatar ljmf00 avatar lolgab avatar loliveiracodacy avatar machadoit avatar madalenamelo avatar mrdaedra avatar mrfyda avatar nicklem avatar pedrocodacy avatar rtfpessoa avatar stefanvacareanu7 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codacy-stylelint's Issues

Stylelint is missing postCSS plugin

When running stylelint on Wordpress project, it fails:

CSS :

KubernetesDockerRunner: Container for codacy/codacy-stylelint:2.3.0 exited with non-zero code 1
Error executing the tool
java.lang.Exception: Could not parse results json: Unrecognized token 'Error': was expecting ('true', 'false' or 'null')
 at [Source: Error: Cannot find module 'postcss'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
    at Function.Module._load (internal/modules/cjs/loader.js:507:25)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (/usr/lib/node_modules/stylelint/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/usr/lib/node_modules/stylelint-a11y/dist/rules/media-prefers-reduced-motion/index.js:80:16)
    at Module._compile (/usr/lib/node_modules/stylelint/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3); line: 1, column: 6]

Json:
Error: Cannot find module 'postcss'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
    at Function.Module._load (internal/modules/cjs/loader.js:507:25)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (/usr/lib/node_modules/stylelint/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/usr/lib/node_modules/stylelint-a11y/dist/rules/media-prefers-reduced-motion/index.js:80:16)
    at Module._compile (/usr/lib/node_modules/stylelint/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
              
	at codacy.stylelint.Stylelint$$anonfun$$nestedInanonfun$parseJson$1$1.applyOrElse(Stylelint.scala:91)
	at codacy.stylelint.Stylelint$$anonfun$$nestedInanonfun$parseJson$1$1.applyOrElse(Stylelint.scala:86)
	at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:38)
	at scala.util.Failure.recoverWith(Try.scala:236)
	at codacy.stylelint.Stylelint$.$anonfun$parseJson$1(Stylelint.scala:86)
	at scala.util.Success.flatMap(Try.scala:251)
	at codacy.stylelint.Stylelint$.parseJson(Stylelint.scala:84)
	at codacy.stylelint.Stylelint$.apply(Stylelint.scala:32)
	at com.codacy.tools.scala.seed.DockerEngine.$anonfun$main$2(DockerEngine.scala:42)
	at com.codacy.tools.scala.seed.DockerEngine.$anonfun$main$2$adapted(DockerEngine.scala:28)
	at scala.util.Success.$anonfun$map$1(Try.scala:255)
	at scala.util.Success.map(Try.scala:213)
	at com.codacy.tools.scala.seed.DockerEngine.$anonfun$main$1(DockerEngine.scala:28)
	at scala.util.Success.flatMap(Try.scala:251)
	at com.codacy.tools.scala.seed.DockerEngine.main(DockerEngine.scala:27)
	at codacy.Engine.main(Engine.scala)

SASS :

KubernetesDockerRunner: Container for codacy/codacy-stylelint:2.3.0 exited with non-zero code 1
Error executing the tool
java.lang.Exception: Could not parse results json: Unrecognized token 'Error': was expecting ('true', 'false' or 'null')
 at [Source: Error: Cannot find module 'postcss'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
    at Function.Module._load (internal/modules/cjs/loader.js:507:25)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (/usr/lib/node_modules/stylelint/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/usr/lib/node_modules/stylelint-a11y/dist/rules/media-prefers-reduced-motion/index.js:80:16)
    at Module._compile (/usr/lib/node_modules/stylelint/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3); line: 1, column: 6]

Json:
Error: Cannot find module 'postcss'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
    at Function.Module._load (internal/modules/cjs/loader.js:507:25)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (/usr/lib/node_modules/stylelint/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/usr/lib/node_modules/stylelint-a11y/dist/rules/media-prefers-reduced-motion/index.js:80:16)
    at Module._compile (/usr/lib/node_modules/stylelint/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
              
	at codacy.stylelint.Stylelint$$anonfun$$nestedInanonfun$parseJson$1$1.applyOrElse(Stylelint.scala:91)
	at codacy.stylelint.Stylelint$$anonfun$$nestedInanonfun$parseJson$1$1.applyOrElse(Stylelint.scala:86)
	at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:38)
	at scala.util.Failure.recoverWith(Try.scala:236)
	at codacy.stylelint.Stylelint$.$anonfun$parseJson$1(Stylelint.scala:86)
	at scala.util.Success.flatMap(Try.scala:251)
	at codacy.stylelint.Stylelint$.parseJson(Stylelint.scala:84)
	at codacy.stylelint.Stylelint$.apply(Stylelint.scala:32)
	at com.codacy.tools.scala.seed.DockerEngine.$anonfun$main$2(DockerEngine.scala:42)
	at com.codacy.tools.scala.seed.DockerEngine.$anonfun$main$2$adapted(DockerEngine.scala:28)
	at scala.util.Success.$anonfun$map$1(Try.scala:255)
	at scala.util.Success.map(Try.scala:213)
	at com.codacy.tools.scala.seed.DockerEngine.$anonfun$main$1(DockerEngine.scala:28)
	at scala.util.Success.flatMap(Try.scala:251)
	at com.codacy.tools.scala.seed.DockerEngine.main(DockerEngine.scala:27)
	at codacy.Engine.main(Engine.scala)

[CY-2518] Stylelint crashes on empty folders

The tool is crashing if there are no files to be analyzed.

Reproduction:

cd /tmp
mkdir prova
cd prova
echo '{"tools": [{"name": "stylelint", "patterns": []}],"files": []}' > .codacyrc
docker run -it --rm -v $PWD:/src codacy/codacy-stylelint

return the following error:

Error executing the tool
java.lang.Exception: Could not parse results json: No content to map due to end-of-input
 at [Source: (String)""; line: 1, column: 0]

Json:

              
	at codacy.stylelint.Stylelint$$anonfun$$nestedInanonfun$parseJson$1$1.applyOrElse(Stylelint.scala:92)
	at codacy.stylelint.Stylelint$$anonfun$$nestedInanonfun$parseJson$1$1.applyOrElse(Stylelint.scala:87)
	at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:38)
	at scala.util.Failure.recoverWith(Try.scala:236)
	at codacy.stylelint.Stylelint$.$anonfun$parseJson$1(Stylelint.scala:87)
	at scala.util.Success.flatMap(Try.scala:251)
	at codacy.stylelint.Stylelint$.parseJson(Stylelint.scala:85)
	at codacy.stylelint.Stylelint$.apply(Stylelint.scala:33)
	at com.codacy.tools.scala.seed.DockerEngine.executeTool(DockerEngine.scala:53)
	at com.codacy.tools.scala.seed.DockerEngine.$anonfun$main$2(DockerEngine.scala:35)
	at scala.util.Success.$anonfun$map$1(Try.scala:255)
	at scala.util.Success.map(Try.scala:213)
	at com.codacy.tools.scala.seed.DockerEngine.$anonfun$main$1(DockerEngine.scala:27)
	at scala.util.Success.flatMap(Try.scala:251)
	at com.codacy.tools.scala.seed.DockerEngine.main(DockerEngine.scala:26)
	at codacy.Engine.main(Engine.scala)

Expected result: the tool returns 0 with no output.

NOTE: multiple test is unable to catch this bug:
266488e
https://app.circleci.com/pipelines/github/codacy/codacy-stylelint/287/workflows/e6569720-eb3f-456b-8420-cc269bbcb9a4/jobs/981

stylelint is not reporting any issue

stylelint is not reporting any issue (for any file) when configured using the Codacy UI regardless of the rules configured.

The following example code should atleast find one occurrence of the rule Unexpected empty block (block-no-empty):

// неправильный комментарий

.hEad {

}



/*нет пробелов в комментарии, это ошибка*/

.wrap {

  position: ;

  display: block;

}

.main {color: aliceblue}

.link {
    color: aliceblue;

    background: antiquewhite;
  color: aqua;





      position:relative;
}

Error analyzing with stylelint

Log:

CSS :

Docker exited with code 1
stdout: 
stderr: WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
Error executing the tool
java.lang.Exception: Could not parse results json: Unrecognized token 'Error': was expecting ('true', 'false' or 'null')
 at [Source: Error: Could not find "stylelint-a11y". Do you need a `configBasedir`?
    at module.exports (/usr/lib/node_modules/stylelint/lib/utils/configurationError.js:8:28)
    at getModulePath (/usr/lib/node_modules/stylelint/lib/utils/getModulePath.js:26:11)
    at config.plugins.concat.map.lookup (/usr/lib/node_modules/stylelint/lib/augmentConfig.js:123:14)
    at Array.map (<anonymous>)
    at absolutizePaths (/usr/lib/node_modules/stylelint/lib/augmentConfig.js:122:48)
    at Promise.resolve.then.then.then.augmentedConfig (/usr/lib/node_modules/stylelint/lib/augmentConfig.js:32:14); line: 1, column: 6]

Json:
Error: Could not find "stylelint-a11y". Do you need a `configBasedir`?
    at module.exports (/usr/lib/node_modules/stylelint/lib/utils/configurationError.js:8:28)
    at getModulePath (/usr/lib/node_modules/stylelint/lib/utils/getModulePath.js:26:11)
    at config.plugins.concat.map.lookup (/usr/lib/node_modules/stylelint/lib/augmentConfig.js:123:14)
    at Array.map (<anonymous>)
    at absolutizePaths (/usr/lib/node_modules/stylelint/lib/augmentConfig.js:122:48)
    at Promise.resolve.then.then.then.augmentedConfig (/usr/lib/node_modules/stylelint/lib/augmentConfig.js:32:14)
              
	at codacy.stylelint.Stylelint$$anonfun$$nestedInanonfun$parseJson$1$1.applyOrElse(Stylelint.scala:91)
	at codacy.stylelint.Stylelint$$anonfun$$nestedInanonfun$parseJson$1$1.applyOrElse(Stylelint.scala:86)
	at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:38)
	at scala.util.Failure.recoverWith(Try.scala:236)
	at codacy.stylelint.Stylelint$.$anonfun$parseJson$1(Stylelint.scala:86)
	at scala.util.Success.flatMap(Try.scala:251)
	at codacy.stylelint.Stylelint$.parseJson(Stylelint.scala:84)
	at codacy.stylelint.Stylelint$.apply(Stylelint.scala:32)
	at com.codacy.tools.scala.seed.DockerEngine.$anonfun$main$2(DockerEngine.scala:42)
	at com.codacy.tools.scala.seed.DockerEngine.$anonfun$main$2$adapted(DockerEngine.scala:28)
	at scala.util.Success.$anonfun$map$1(Try.scala:255)
	at scala.util.Success.map(Try.scala:213)
	at com.codacy.tools.scala.seed.DockerEngine.$anonfun$main$1(DockerEngine.scala:28)
	at scala.util.Success.flatMap(Try.scala:251)
	at com.codacy.tools.scala.seed.DockerEngine.main(DockerEngine.scala:27)
	at codacy.Engine.main(Engine.scala)
           
SASS :

Docker exited with code 1
stdout: 
stderr: WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
Error executing the tool
java.lang.Exception: Could not parse results json: Unrecognized token 'Error': was expecting ('true', 'false' or 'null')
 at [Source: Error: Could not find "stylelint-a11y". Do you need a `configBasedir`?
    at module.exports (/usr/lib/node_modules/stylelint/lib/utils/configurationError.js:8:28)
    at getModulePath (/usr/lib/node_modules/stylelint/lib/utils/getModulePath.js:26:11)
    at config.plugins.concat.map.lookup (/usr/lib/node_modules/stylelint/lib/augmentConfig.js:123:14)
    at Array.map (<anonymous>)
    at absolutizePaths (/usr/lib/node_modules/stylelint/lib/augmentConfig.js:122:48)
    at Promise.resolve.then.then.then.augmentedConfig (/usr/lib/node_modules/stylelint/lib/augmentConfig.js:32:14); line: 1, column: 6]

Json:
Error: Could not find "stylelint-a11y". Do you need a `configBasedir`?
    at module.exports (/usr/lib/node_modules/stylelint/lib/utils/configurationError.js:8:28)
    at getModulePath (/usr/lib/node_modules/stylelint/lib/utils/getModulePath.js:26:11)
    at config.plugins.concat.map.lookup (/usr/lib/node_modules/stylelint/lib/augmentConfig.js:123:14)
    at Array.map (<anonymous>)
    at absolutizePaths (/usr/lib/node_modules/stylelint/lib/augmentConfig.js:122:48)
    at Promise.resolve.then.then.then.augmentedConfig (/usr/lib/node_modules/stylelint/lib/augmentConfig.js:32:14)
              
	at codacy.stylelint.Stylelint$$anonfun$$nestedInanonfun$parseJson$1$1.applyOrElse(Stylelint.scala:91)
	at codacy.stylelint.Stylelint$$anonfun$$nestedInanonfun$parseJson$1$1.applyOrElse(Stylelint.scala:86)
	at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:38)
	at scala.util.Failure.recoverWith(Try.scala:236)
	at codacy.stylelint.Stylelint$.$anonfun$parseJson$1(Stylelint.scala:86)
	at scala.util.Success.flatMap(Try.scala:251)
	at codacy.stylelint.Stylelint$.parseJson(Stylelint.scala:84)
	at codacy.stylelint.Stylelint$.apply(Stylelint.scala:32)
	at com.codacy.tools.scala.seed.DockerEngine.$anonfun$main$2(DockerEngine.scala:42)
	at com.codacy.tools.scala.seed.DockerEngine.$anonfun$main$2$adapted(DockerEngine.scala:28)
	at scala.util.Success.$anonfun$map$1(Try.scala:255)
	at scala.util.Success.map(Try.scala:213)
	at com.codacy.tools.scala.seed.DockerEngine.$anonfun$main$1(DockerEngine.scala:28)
	at scala.util.Success.flatMap(Try.scala:251)
	at com.codacy.tools.scala.seed.DockerEngine.main(DockerEngine.scala:27)
	at codacy.Engine.main(Engine.scala)

[TCE-816] Please merge update PRs

Hello,

Your dependency update PRs have been stuck for months and stylelint is now months out of date. Please merge these update PRs so that we can use up to date stylelint.

Thank you

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.