HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>У Python есть отличный автоформаттер -<a>black</a>. Быстрый, простой и, главное, бескомпромиссный и почти не настраиваемый. Похож на gofmt у Go.</p>
1 <p>У Python есть отличный автоформаттер -<a>black</a>. Быстрый, простой и, главное, бескомпромиссный и почти не настраиваемый. Похож на gofmt у Go.</p>
2 <p>Но black предлагает использование двойных кавычек для строк, в то время как большинство питонистов привыкло к одинарным, т.е. "foo" вместо 'foo'. Этого оказалось достаточно для появления клона-близнеца - автоформаттера<a>blue</a>. Он использует black под капотом, поэтому отличия минимальны (см.<a>документацию</a>).</p>
2 <p>Но black предлагает использование двойных кавычек для строк, в то время как большинство питонистов привыкло к одинарным, т.е. "foo" вместо 'foo'. Этого оказалось достаточно для появления клона-близнеца - автоформаттера<a>blue</a>. Он использует black под капотом, поэтому отличия минимальны (см.<a>документацию</a>).</p>
3 <p>Официальный экстеншн Python в VS Code знает про black, но не знает про blue, документация тоже молчит. Но так как совместимость гарантируется, то достаточно в настройках указать blue как путь для форматтера black.</p>
3 <p>Официальный экстеншн Python в VS Code знает про black, но не знает про blue, документация тоже молчит. Но так как совместимость гарантируется, то достаточно в настройках указать blue как путь для форматтера black.</p>
4 <p>Итого:</p>
4 <p>Итого:</p>
5 <ul><li>Устанавливаем blue: poetry add --dev blue. Если до этого уже был установлен black, то, скорее всего, придется его удалить poetry remove --dev black т.к. может быть конфликт версий.</li>
5 <ul><li>Устанавливаем blue: poetry add --dev blue. Если до этого уже был установлен black, то, скорее всего, придется его удалить poetry remove --dev black т.к. может быть конфликт версий.</li>
6 <li>Открываем<strong>Command Palette</strong>(Ctrl+Shift+P), вводим<strong>settings json</strong>, выбираем<strong>Open Workspace Settings (JSON)</strong>и добавляем:</li>
6 <li>Открываем<strong>Command Palette</strong>(Ctrl+Shift+P), вводим<strong>settings json</strong>, выбираем<strong>Open Workspace Settings (JSON)</strong>и добавляем:</li>
7 </ul><p>{ "python.formatting.provider": "black", "python.formatting.blackPath": "blue", }</p>
7 </ul><p>{ "python.formatting.provider": "black", "python.formatting.blackPath": "blue", }</p>
8 <p>Использование:</p>
8 <p>Использование:</p>
9 <ul><li>Стандартный хоткей для автоформатирования Ctrl+Shift+I</li>
9 <ul><li>Стандартный хоткей для автоформатирования Ctrl+Shift+I</li>
10 <li>Или можно включить "editor.formatOnSave": true, но это не всегда удобный вариант</li>
10 <li>Или можно включить "editor.formatOnSave": true, но это не всегда удобный вариант</li>
11 </ul><p>Настройка:</p>
11 </ul><p>Настройка:</p>
12 <ul><li>Добавляем "python.formatting.blackArgs": ["--line-length", "100"], - все там же, в json файле</li>
12 <ul><li>Добавляем "python.formatting.blackArgs": ["--line-length", "100"], - все там же, в json файле</li>
13 <li>Или в pyproject.toml:</li>
13 <li>Или в pyproject.toml:</li>
14 </ul><p>[tool.blue] line-length = 100</p>
14 </ul><p>[tool.blue] line-length = 100</p>