Ste*_*ank 13 python ide code-formatting visual-studio-code
虽然我似乎已经正确配置了 linitng 和格式,但 linting 运行但黑色格式没有。
"python.linting.flake8Enabled": true,
"python.linting.flake8Args": [
"--max-line-length=110"
],
"python.linting.lintOnSave": true,
"python.formatting.provider": "black",
"python.formatting.blackPath": "/usr/local/bin/black",
"python.formatting.blackArgs": [
"--line-length",
"110"
],
"editor.formatOnSave": true,
Run Code Online (Sandbox Code Playgroud)
我已经检查过,黑色配置正确,我可以毫无问题地从命令行运行格式化。
但是在IDE中保存时,black不会格式化文件。它也没有抱怨,没有弹出错误消息,日志中也没有任何显示。它根本不运行格式。
我正在使用远程编辑在 docker-container 中运行它:不确定,如果这有区别。
黑色版本是:
black>=19.3b0
Run Code Online (Sandbox Code Playgroud)
vscode 版本是1.36.1
.
感谢您的帮助,因为现在我很无能为力,为什么黑色格式不运行......
迟到的答案,以防它对任何人有帮助。我遇到了同样的问题并如下解决
我需要在用户 settings.json 中有这一行
"editor.defaultFormatter": "ms-python.python"
否则,我想,格式会被我的默认格式选项覆盖
"editor.defaultFormatter": "esbenp.prettier-vscode",
所以我格式化相关内容的整体设置如下
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"[python]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "ms-python.python"
},
"[javascript]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"python.formatting.provider": "black",
"python.formatting.blackPath": "/home/<user>/anaconda3/bin/black",
Run Code Online (Sandbox Code Playgroud)
该行"editor.defaultFormatter": "ms-python.python"
也可以从 VS-Code 命令面板 (Ctrl + shift + P) 中激活,如下所示。
使用 > 配置默认格式化程序设置文档格式 > 选择 Python
但这里有一个疯狂的猜测:我使用 sudo 从命令行手动启动 dockerd:这给了我各种奇怪的问题(从容器内部创建的文件,例如迁移或缓存文件最终由 root 拥有。我最近将 dockerd 移至服务中,现在突然在保存时运行黑色。万恶之源可能是权限问题,这是由于 dockerd 作为 sudo 而不是作为服务运行这一事实。