vscode检查c代码语法和补全_VSCode中使⽤Pylint检查
python代码
为什么使⽤lint
在⽇常开发中,不同开发⼈员会写下不同风格的代码,导致代码可维护性变差,为了解决风格不⼀致问题,我们可以制定代码规范,让开发⼈员都遵守同样的规范编写代码。在开发过程中,部分代码存在质量问题,这个时候需要code review的⽅式,⼈⼯检查⼀些可能的错误。然⽽,在实际开发中,开发规范
仍然严重依赖开发⼈员的⾃觉性,还是会出现⼀些不合规范的现象,在⼈员发⽣变化的时候,代码规范需要再次的普及和培训,也浪费了很多时间。代码质量的检查也是严重依赖开发⼈员review的细致程度,实际上还是有很多bad code引⼊到⼯程中。如何⾃动化的完成上述的⼯作,在更⼤程度上提⾼代码风格⼀致性和代码质量呢?
lint可以在代码编写期,提交代码期,或者打包部署的时候⾃动检查代码,它可以识别并⾃动修改部分错误,⽐如检测没有初始化或者没有定义的变量,检查调⽤未定义的⽅法,⾃动补齐或者删除⾏末的分号等。不同于格式化,格式化仅仅能改变代码⽂本的展⽰,⽽lint可以发现代码中的⼀些错误,提升代码规范和质量。在单⼈开发或者团队开发的情况下,lint都是很有好处的,它帮助我们写出更好的代码。节省了学习代码规范的时间,避免了开发交接产⽣的代码规范变化,提升了代码质量,使得code review可以更加专注于代码逻辑,⽽不是把时间花在检查代码规范或者⼀些明显的错误上。本⽂主要讲解在VSCode中怎样lint python代码。
VSCode⽀持哪些python linter
VSCode⽀持很多linter,默认使⽤的是Pylint,python.linting.pylintEnabled控制开关,python.linting.pylintArgs设置参
数,python.linting.pylintPath⾃定义路径。
配置Pylint
代码VSCode,macOS系统中输⼊cmd+shift+P(windows系统输⼊ctrl+shift+P),打开命令⾯板,输⼊s
elect linter
点击确认后,出现新的⾯板,选择pylint
右下⾓出现弹框,提⽰没有安装pylint,点击install
.vscode⽂件夹下,VSCode⾃动⽣成了settings.json⽂件,⽂件内容为:
{
"python.pythonPath": "/usr/local/bin/python3",
"python.linting.pylintEnabled": true,
"abled": true
}
"python.pythonPath": "/usr/local/bin/python3"是python解释器的路径,可以通过命令⾯板⾥select interpreter来修改
"python.linting.pylintEnabled": true代表pylint已经开启
"abled": true代表lint开启
Pylint配置好了,我们可以试试
Pylint尝试
我们写下两⾏简单的代码,pylint出现红⾊波浪线,这代表代码有错误出现,⿏标悬浮直接可以看到,print后⾯需要跟上括号,pylint给出了修改建议。可以发现,Pylint使⽤是⾮常⽅便的,在代码保存后,它会⾃动检查代码问题,并指出具体的问题点,很多问题都可以迅速地解决。它提⾼了我们的代码规范程度,提前发现了代码问题,并且没有花费额外的开发时间,可以说lint是⾮常有⽤的⼯具了。
Pylint检查规则
Pylint把检查出的问题分为五个级别,E(Error)和F(Fatal)默认开启,C(Convention)和R(Refactor)默认关闭,W(Warning)信息部分开启部分关闭
Enable all Error (E) and Fatal (F) messages. 开启错误和fatal信息
Disable all Convention (C) and Refactor (R) messages. 关闭Convention和Refactor信息
Disable all Warning (W) messages except the following: 关闭warning信息(以下除外)
unreachable (W0101): Unreachable code (不可触达的代码)
duplicate-key (W0109): Duplicate key %r in dictionary (字典⾥⾯重复key)
unnecessary-semicolon (W0301): Unnecessary semicolon (不必要的分号)
global-variable-not-assigned (W0602): Using global for %r but no assignment is done (全局变量没有赋值)
unused-variable (W0612): Unused variable %r (未使⽤的变量)
binary-op-exception (W0711): Exception to catch is the result of a binary "%s" operation (⼆进制操作异常)
bad-format-string (W1302): Invalid format string (不合理的格式化)
anomalous-backslash-in-string (W1401): Anomalous backslash in string (异常的反斜杠)
bad-open-mode (W1501): "%s" is not a valid mode for open (不合理的打开⽅式)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论