2017-12-19 7 views
1

Ich schreibe ein paar Python-Skripte, und in den meisten Fällen bin ich vollkommen zufrieden mit der Funktionsweise von Autoformatierern. Aber manchmal möchte ich eine vertikale Konsistenz beibehalten oder Code logisch in Zeilen aufteilen.Gibt es eine Möglichkeit, Autoformatierer in VSC zu verhindern, bestimmte Zeile/Stück Code zu ändern?

# 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 
]) 

Gibt es eine Möglichkeit autoformatter zu sagen (ich verwende Standard-Python-Paket für VSC) diese Zeilen (ähnlich # pylint: disable=C0123 Magie Kommentar) zu ignorieren?

Antwort

2

Die Python-Erweiterung unterstützt zwei Formatierer: autopep8 (Standard) und yapf. Sie können mit der folgenden Konfiguration auf yapf wechseln:

"python.formatting.provider": "yapf" 

Yapf unterstützt Regionen ohne über Kommentare von der Formatierung:

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

ich nicht eine ähnliche Funktion für autopep8 gefunden haben (obwohl Sie global deaktivieren specific fixes mit --ignore).

Verwandte Themen