Thanks to visit codestin.com
Credit goes to github.com

Skip to content

linters sometimes run before formatter #17366

Closed
@DetachHead

Description

@DetachHead

Environment data

  • VS Code version: 1.60
  • Extension version (available under the Extensions sidebar): v2021.9.1218897484
  • OS and version: windows 10
  • Python version (& distribution if applicable, e.g. Anaconda): 3.9
  • Type of virtual environment used: venv
  • Relevant/affected Python packages and their versions: black 21.8b0, flake8 3.9.2
  • Relevant/affected Python-related VS Code extensions and their versions: XXX
  • Value of the python.languageServer setting: default

[NOTE: If you suspect that your issue is related to the Microsoft Python Language Server (python.languageServer: 'Microsoft'), please download our new language server Pylance from the VS Code marketplace to see if that fixes your issue]

Expected behaviour

black formats the file, then flake8 runs on the formatted code, so no formatting errors appear

Actual behaviour

formatter runs, then formatting errors from flake8 appears on the newly formatted code where the errors are no longer there
linting and formatting

Steps to reproduce:

note that i can't reliably reproduce this, but if you change autosave to afterDelay it seems to happen much more often

  1. change some code to formatting that black won't like (but still valid syntax)
  2. ctrl+s
  3. wait for the formatter and linter(s) to run

Logs

Output for Python in the Output panel (ViewOutput, change the drop-down the upper-right of the Output panel to Python)

> c:\Users\user\project\.venv\Scripts\python.exe -m flake8 --format=%(row)d,%(col)d,%(code).1s,%(code)s:%(text)s c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
> c:\Users\user\project\.venv\Scripts\python.exe -m flake8 --format=%(row)d,%(col)d,%(code).1s,%(code)s:%(text)s c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
> c:\Users\user\project\.venv\Scripts\python.exe -m mypy --show-column-numbers c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
> c:\Users\user\project\.venv\Scripts\python.exe -m mypy --show-column-numbers c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
> c:\Users\user\project\.venv\Scripts\python.exe -m pylint --msg-template='{line},{column},{category},{symbol}:{msg}' --reports=n --output-format=text c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
> c:\Users\user\project\.venv\Scripts\python.exe -m pylint --msg-template='{line},{column},{category},{symbol}:{msg}' --reports=n --output-format=text c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
##########Linting Output - mypy##########
Sandpit\foo.py:1:17: error: Incompatible types in assignment (expression has type "int", variable has type "str")  [assignment]
Found 1 error in 1 file (checked 1 source file)
> c:\Users\user\project\.venv\Scripts\python.exe -m flake8 --format=%(row)d,%(col)d,%(code).1s,%(code)s:%(text)s c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
> c:\Users\user\project\.venv\Scripts\python.exe -m flake8 --format=%(row)d,%(col)d,%(code).1s,%(code)s:%(text)s c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
> c:\Users\user\project\.venv\Scripts\python.exe -m mypy --show-column-numbers c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
> c:\Users\user\project\.venv\Scripts\python.exe -m mypy --show-column-numbers c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
##########Linting Output - pylint##########
##########Linting Output - flake8##########
> c:\Users\user\project\.venv\Scripts\python.exe -m pylint --msg-template='{line},{column},{category},{symbol}:{msg}' --reports=n --output-format=text c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
> c:\Users\user\project\.venv\Scripts\python.exe -m pylint --msg-template='{line},{column},{category},{symbol}:{msg}' --reports=n --output-format=text c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
> c:\Users\user\project\.venv\Scripts\python.exe -m black --diff --quiet c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
> c:\Users\user\project\.venv\Scripts\python.exe -m black --diff --quiet c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
##########Linting Output - flake8##########
1,5,E,E241:multiple spaces after ':'
1,23,W,W292:no newline at end of file
1     E241 multiple spaces after ':'
1     W292 no newline at end of file
> c:\Users\user\project\.venv\Scripts\python.exe -m flake8 --format=%(row)d,%(col)d,%(code).1s,%(code)s:%(text)s c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
> c:\Users\user\project\.venv\Scripts\python.exe -m flake8 --format=%(row)d,%(col)d,%(code).1s,%(code)s:%(text)s c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
##########Linting Output - mypy##########
##########Linting Output - pylint##########
> c:\Users\user\project\.venv\Scripts\python.exe -m mypy --show-column-numbers c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
> c:\Users\user\project\.venv\Scripts\python.exe -m mypy --show-column-numbers c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
> c:\Users\user\project\.venv\Scripts\python.exe -m pylint --msg-template='{line},{column},{category},{symbol}:{msg}' --reports=n --output-format=text c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
> c:\Users\user\project\.venv\Scripts\python.exe -m pylint --msg-template='{line},{column},{category},{symbol}:{msg}' --reports=n --output-format=text c:\Users\user\project\Sandpit\foo.py
cwd: c:\Users\user\project
##########Linting Output - mypy##########
Success: no issues found in 1 source file
##########Linting Output - flake8##########
##########Linting Output - pylint##########

--------------------------------------------------------------------

Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions