Run pre-commit hook entry. Allow to run pre-commit hooks for text editor formatting / linting needs.
IMPORTANT: This is highly experimental tool as pre-commit internals does not intend to be used in other scripts. It might be broken after new pre-commit release.
TO USE WITH CAUTION!
- Python 3.7 or later
- pre-commit 2.19.0 or later
pre-commit-run-hook-entry
is licensed under the terms of
BSD-3-Clause license.
pip install pre-commit-run-hook-entry
pre-commit-run-hook-entry HOOK [ARGS]
pre-commit-which-hook-entry HOOK
pre-commit-run-hook-entry
only works in directories, where
pre-commit run --all HOOK
is executable.
Example below illustrates how to configure VS Code to use black, flake8 & mypy pre-commit hooks for formatting & linting,
{
"python.formatting.provider": "black",
"python.formatting.blackPath": "pre-commit-run-hook-entry",
"python.formatting.blackArgs": ["black"],
"python.linting.enabled": true,
"python.linting.flake8Enabled": true,
"python.linting.flake8Path": "pre-commit-run-hook-entry",
"python.linting.flake8Args": ["flake8"],
"python.linting.mypyEnabled": true,
"python.linting.mypyPath": "pre-commit-run-hook-entry",
"python.linting.mypyArgs": ["mypy"]
}
From one point sublack has builtin
pre-commit integration, but it seems do not respect settings from
pyproject.toml
, to fix this use pre-commit-run-black-entry
as
sublack.black_command
,
{
"sublack.black_command": "pre-commit-run-black-entry"
}
{
"SublimeLinter.linters.flake8.executable": "pre-commit-run-hook-entry",
"SublimeLinter.linters.flake8.args": ["--", "flake8"]
}
{
"SublimeLinter.linters.mypy.executable": "pre-commit-run-hook-entry",
"SublimeLinter.linters.mypy.args": ["--", "mypy"]
}
First, you need to find out path to prettier hook entry with,
pre-commit-which-hook-entry prettier
Then, paste command output (<OUTPUT>
) into plugin config,
{
"js_prettier": {
"prettier_cli_path": "<OUTPUT>"
}
}
First, you need to find out path to eslint hook entry with,
pre-commit-which-hook-entry eslint
Then, paste command output (<OUTPUT>
) into plugin config,
{
"SublimeLinter.linters.eslint.executable": "<OUTPUT>",
"SublimeLinter.linters.eslint.env": {
"NODE_PATH": "<OUTPUT>/../../lib/node_modules"
}
}
IMPORTANT: If you're using any additionalDependencies
for eslint hook,
you need to configure NODE_PATH
, so plugin will be able to find out given
dependencies.
Feel free to submit new issue or feature request at GitHub