asottile / Add Trailing Comma
Licence: mit
A tool (and pre-commit hook) to automatically add trailing commas to calls and literals.
Stars: ✭ 168
Programming Languages
python
139335 projects - #7 most used programming language
Labels
Projects that are alternatives of or similar to Add Trailing Comma
Sublimelinter
The code linting framework for Sublime Text 3
Stars: ✭ 1,920 (+1042.86%)
Mutual labels: linter
Protolint
A pluggable linter and fixer to enforce Protocol Buffer style and conventions.
Stars: ✭ 142 (-15.48%)
Mutual labels: linter
Misspell Fixer
Simple tool for fixing common misspellings, typos in source code
Stars: ✭ 154 (-8.33%)
Mutual labels: linter
Deal
Design by contract for Python with static checker and tests' generation.
Stars: ✭ 164 (-2.38%)
Mutual labels: linter
Gulp Stylelint
Gulp plugin for running Stylelint results through various reporters.
Stars: ✭ 149 (-11.31%)
Mutual labels: linter
Rubocop
A Ruby static code analyzer and formatter, based on the community Ruby style guide.
Stars: ✭ 11,593 (+6800.6%)
Mutual labels: linter
Ale
Check syntax in Vim asynchronously and fix files, with Language Server Protocol (LSP) support
Stars: ✭ 11,380 (+6673.81%)
Mutual labels: linter
Textlint
The pluggable natural language linter for text and markdown.
Stars: ✭ 2,158 (+1184.52%)
Mutual labels: linter
Nitpick
Enforce the same settings across multiple language-independent projects
Stars: ✭ 134 (-20.24%)
Mutual labels: linter
Kube Lint
A linter for Kubernetes resources with a customizable rule set
Stars: ✭ 152 (-9.52%)
Mutual labels: linter
Pythonvscode
This extension is now maintained in the Microsoft fork.
Stars: ✭ 2,013 (+1098.21%)
Mutual labels: linter
Poetic
Automatically install and maintain ESLint, Prettier, EditorConfig and Airbnb rules for JavaScript, TypeScript and React.
Stars: ✭ 165 (-1.79%)
Mutual labels: linter
Clippy Check
📎 GitHub Action for PR annotations with clippy warnings
Stars: ✭ 159 (-5.36%)
Mutual labels: linter
add-trailing-comma
A tool (and pre-commit hook) to automatically add trailing commas to calls and literals.
Installation
pip install add-trailing-comma
As a pre-commit hook
See pre-commit for instructions
Sample .pre-commit-config.yaml
:
- repo: https://github.com/asottile/add-trailing-comma
rev: v2.1.0
hooks:
- id: add-trailing-comma
multi-line method invocation style -- why?
# Sample of *ideal* syntax
function_call(
argument,
5 ** 5,
kwarg=foo,
)
- the initial paren is at the end of the line
- each argument is indented one level further than the function name
- the last parameter (unless the call contains an unpacking
(
*args
/**kwargs
)) has a trailing comma
This has the following benefits:
-
arbitrary indentation is avoided:
# I hear you like 15 space indents # oh your function name changed? guess you get to reindent :) very_long_call(arg, arg, arg)
-
adding / removing a parameter preserves
git blame
and is a minimal diff:# with no trailing commas x( - arg + arg, + arg2 )
# with trailing commas x( arg, + arg2, )
Implemented features
trailing commas for function calls
x(
arg,
- arg
+ arg,
)
trailing commas for function calls with unpackings
If --py35-plus
is passed, add-trailing-comma
will also perform the
following change:
x(
- *args
+ *args,
)
y(
- **kwargs
+ **kwargs,
)
Note that this would cause a SyntaxError
in earlier python versions.
trailing commas for tuple / list / dict / set literals
x = [
- 1, 2, 3
+ 1, 2, 3,
]
trailing commas for function definitions
def func(
arg1,
- arg2
+ arg2,
):
async def func(
arg1,
- arg2
+ arg2,
):
trailing commas for function definitions with unpacking arguments
If --py36-plus
is passed, add-trailing-comma
will also perform the
following change:
def f(
- *args
+ *args,
): pass
def g(
- **kwargs
+ **kwargs,
): pass
def h(
- *, kw=1
+ *, kw=1,
): pass
Note that this would cause a SyntaxError
in earlier python versions.
from
imports
trailing commas for from os import (
path,
- makedirs
+ makedirs,
)
trailing comma for class definitions
class C(
Base1,
- Base2
+ Base2,
):
pass
unhug trailing paren
x(
arg1,
- arg2)
+ arg2,
+)
unhug leading paren
-function_name(arg1,
- arg2)
+function_name(
+ arg1,
+ arg2,
+)
match closing brace indentation
x = [
1,
2,
3,
- ]
+]
remove unnecessary commas
yes yes, I realize the tool is called add-trailing-comma
😆
-[1, 2, 3,]
-[1, 2, 3, ]
+[1, 2, 3]
+[1, 2, 3]
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].