有没有办法阻止VSC中的autoformatter更改某些行/代码?

时间:2017-12-19 14:55:02

标签: python visual-studio-code autoformatting

我写了一些python脚本,并且在大多数情况下,我对autoformatter的工作原理完全没问题。但有时我想保持垂直一致性或将代码逻辑分割成行。

# autoformatter removes all leading spaces here
array = numpy.array([[
        [       0,     1589, 25825225,     1589,        0],
        [    1589, 26265625, 26265625, 26265625,     1589],
        [25825225, 26265625, 26265625, 26265625, 25825225],
        [    1589, 26265625, 26265625, 26265625,     1589],
        [       0,     1589, 25825225,     1589,        0],
]])
# autoformatter splits line at '-' sign in the first brackets
links[point.degree - 1].append([
    neighbor.index for neighbor in point.neighbors
])

有没有办法告诉autoformatter(我使用VSC的默认Python包)忽略这些行(类似于# pylint: disable=C0123魔术评论)?

1 个答案:

答案 0 :(得分:2)

Python扩展支持两种格式化程序:autopep8(默认)和yapf。您可以使用以下配置切换到yapf:

"python.formatting.provider": "yapf"

Yapf支持通过评论排除区域格式:

# yapf: disable
links[point.degree - 1].append([
   neighbor.index for neighbor in point.neighbors
])
# yapf: enable

我还没有找到autopep8的类似功能(尽管您可以使用--ignore全局停用specific fixes。)