Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/coffeelint/coffeelint
Lint your CoffeeScript.
https://github.com/coffeelint/coffeelint
Last synced: 26 days ago
JSON representation
Lint your CoffeeScript.
- Host: GitHub
- URL: https://github.com/coffeelint/coffeelint
- Owner: coffeelint
- License: other
- Created: 2020-01-10T04:37:09.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-08T05:42:08.000Z (8 months ago)
- Last Synced: 2024-04-08T06:37:58.352Z (8 months ago)
- Language: CoffeeScript
- Homepage: https://coffeelint.github.io
- Size: 1.55 MB
- Stars: 16
- Watchers: 3
- Forks: 13
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-linters - @coffelint/cli - Configurable (Linters / CoffeeScript)
README
CoffeeLint
==========CoffeeLint is a style checker that helps keep CoffeeScript code
clean and consistent.For guides on installing, using and configuring CoffeeLint, head over
[here](https://coffeelint.github.io/).To suggest a feature, report a bug, or general discussion, head over
[here](https://github.com/coffeelint/coffeelint/issues/).## Team
Current:
- https://github.com/orgs/coffeelint/people
Past:
- [Shuan Wang](https://github.com/swang)
- [Asa Ayers](https://github.com/AsaAyers)
- [Matt Perpick](https://github.com/clutchski)## Contributing
* New rules should be set to a `warn` level. Developers will expect new changes to NOT break their existing workflow, so unless your change is extremely usefull, default to `warn`. Expect discussion if you choose to use `error`.
* Look at existing rules and test structures when deciding how to name your rule. `no_foo.coffee` is used for many tests designed to catch specific errors, whereas `foo.coffee` is used for tests that are designed to enforce formatting and syntax.
### Steps
1. Fork the repo locally.
2. Run `npm install` to get dependencies.
3. Create your rule in a single file as `src/rules/your_rule_here.coffee`, using the existing
rules as a guide. You may examine the AST and tokens using https://asaayers.github.io/clfiddle/.
4. Add your test file `my_test.coffee` to the `test` directory.
5. Register your rule in `src/coffeelint.coffee`.
6. Run your test using `npm run testrule test/your_test_here.coffee`.
7. Run the whole tests suite using `npm test`.
8. Submit a pull request.[![Github Actions](https://github.com/coffeelint/coffeelint/workflows/CI/badge.svg?branch=master)](https://github.com/coffeelint/coffeelint/actions)
### Updating documentation when adding a new rule
When adding a new rule, its documentation is specified by setting a
`description` property within its `rule` property:
```coffeescript
module.exports = class NoCommentrule:
name: 'no_comment'
level: 'ignore'
message: 'No comment'
description: '''
Disallows any comment in the code
'''tokens: ['#', '###']
lintToken : (token, tokenApi) ->
return {context: "Found '#{token[0]}'"}
```The description property is a string that can embed HTML code:
```html
description: '''
Disallows any comment in the code. This code would not pass:
### Some code with comments
foo = ->
# some other comments
bar()
'''
```
[Coffeelint's website](https://coffeelint.github.io/) generates each
rule's documentation based on this `description` property.