Skip to content
| Marketplace
Sign in
Visual Studio Code>Linters>pv-docstringNew to Visual Studio Code? Get it now.
pv-docstring

pv-docstring

pv-tools

| (0) | Free
Python docstring validator for Google style guide (powered by pv-docstring)
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

pv-docstring (VS Code)

VS Code extension для проверки docstring в Python-файлах с помощью CLI-утилиты pv-docstring.

Показывает нарушения как подчёркивания в редакторе и записи в панели Problems.

Установка

Расширение включает собранный бинарник pv-docstring в директории bin/. Дополнительная установка CLI не требуется.

Собери расширение:

npm install
npm run compile

Запусти через Extension Development Host (F5 в VS Code) или упакуй:

npm run package
code --install-extension pv-docstring-0.1.0.vsix

Пересборка бинарника

Если нужно обновить бинарник (из корня pv-tools):

cargo build --release -p pv-docstring
cp target/release/pv-docstring vscode-pv-docstring/bin/pv-docstring

Настройки

Все настройки доступны через settings.json или UI настроек (поиск по pvDocstring).

Настройка Тип По умолчанию Описание
pvDocstring.executablePath string "" (bundled) Путь к бинарнику. Пустая строка — использовать встроенный.
pvDocstring.enabled boolean true Включить/выключить линтер.
pvDocstring.severity enum "warning" Уровень серьёзности: error, warning, information, hint.
pvDocstring.mode enum "full" Режим: full, staged, unstaged, untracked, all-uncommitted, base-branch.
pvDocstring.baseBranch string "master" Ветка для сравнения в режиме base-branch.
pvDocstring.args string[] [] Дополнительные аргументы CLI (вставляются перед подкомандой).
pvDocstring.projectPath string "" Путь к корню проекта. Используется как рабочая директория. Пустая строка — использовать workspace folder.
pvDocstring.lintTriggers string[] ["open", "save"] Когда запускать проверку: open — при открытии файла, save — при сохранении.

Примеры .vscode/settings.json

Полное сканирование (по умолчанию) — проверяет каждый файл целиком при открытии и сохранении:

{
  "pvDocstring.mode": "full"
}

Только staged-изменения — проверяет только то, что добавлено через git add. Удобно перед коммитом, чтобы видеть проблемы только в новом коде:

{
  "pvDocstring.mode": "staged"
}

Только unstaged-изменения — проверяет изменения в tracked файлах, которые ещё не git add:

{
  "pvDocstring.mode": "unstaged"
}

Только untracked-файлы — проверяет новые .py файлы, которые ещё не добавлены в git:

{
  "pvDocstring.mode": "untracked"
}

Сравнение с веткой — показывает нарушения только в коде, который отличается от указанной ветки. Удобно для code review:

{
  "pvDocstring.mode": "base-branch",
  "pvDocstring.baseBranch": "master"
}

Сравнение с main:

{
  "pvDocstring.mode": "base-branch",
  "pvDocstring.baseBranch": "main"
}

Всё незакоммиченное — staged + unstaged + untracked. Самый полный режим для разработки — видит вообще всё, что отличается от последнего коммита:

{
  "pvDocstring.mode": "all-uncommitted"
}

Использование внешнего бинарника

Если pv-docstring установлен глобально или нужна конкретная версия:

{
  "pvDocstring.executablePath": "/usr/local/bin/pv-docstring"
}

Использование CLI напрямую

Расширение использует pv-docstring CLI. Те же команды можно запускать из терминала.

Полное сканирование

# Весь проект
pv-docstring full /path/to/project

# Один файл
pv-docstring full /path/to/file.py

# JSON-вывод
pv-docstring --format json full .

# GitHub Actions annotations
pv-docstring --format github full .

Diff-режимы

# Только staged-изменения (для pre-commit хуков)
pv-docstring diff --staged

# Только unstaged-изменения (во время разработки)
pv-docstring diff --unstaged

# Сравнение с веткой (для CI)
pv-docstring diff --base-branch main

# Сравнение с веткой + фильтр по пути
pv-docstring diff --base-branch main --path src/

# JSON-вывод для diff
pv-docstring --format json diff --staged

Дополнительные аргументы (args)

Через pvDocstring.args можно передавать любые флаги CLI. Аргументы вставляются между --format json и подкомандой:

pv-docstring --format json <args...> full <file>
pv-docstring --format json <args...> diff --staged

Коды ошибок

Наличие docstring (D1xx)

Код Что проверяет
D100 Отсутствует docstring у модуля
D101 Отсутствует docstring у класса
D102 Отсутствует docstring у метода
D103 Отсутствует docstring у функции
D104 Отсутствует docstring у константы

Формат summary (D2xx)

Код Что проверяет
D200 Нет строки-описания (summary)
D201 Summary должен быть на первой строке docstring
D202 Summary должен заканчиваться точкой
D203 После summary должна быть пустая строка

Секции Args / Returns / Raises (D3xx)

Код Что проверяет
D300 Отсутствует секция Args (есть параметры, но не документированы)
D301 Отсутствует секция Returns (функция возвращает значение)
D302 Отсутствует секция Raises (функция бросает исключение)
D310 Параметр не описан в docstring
D311 Тип параметра в docstring не совпадает с аннотацией
D312 В docstring описан параметр, которого нет в сигнатуре
D313 У параметра в docstring отсутствует описание

Структура docstring (D4xx)

Код Что проверяет
D400 Некорректный формат docstring (не удалось распарсить)
D401 Неправильные отступы внутри docstring

Что пропускается по умолчанию

  • Dunder-методы (__init__, __str__, ...)
  • Тестовые методы (test_*, setUp, tearDown)

Управление триггерами

// По умолчанию — проверка при открытии и при сохранении:
{ "pvDocstring.lintTriggers": ["open", "save"] }

// Только при сохранении:
{ "pvDocstring.lintTriggers": ["save"] }

// Только при открытии (+ все уже открытые файлы при старте):
{ "pvDocstring.lintTriggers": ["open"] }

Как работает

  • Триггеры настраиваются через pvDocstring.lintTriggers: open (открытие файла + уже открытые при старте) и save (сохранение).
  • В режиме full — вызывается pv-docstring --format json full <file> на каждый файл.
  • В diff-режимах (staged, unstaged, base-branch) — вызывается pv-docstring --format json diff ... на весь репозиторий, нарушения распределяются по файлам.
  • В режиме untracked — находятся новые .py файлы через git ls-files --others и проверяются через full.
  • all-uncommitted — параллельно запускает staged + unstaged + untracked и мёржит с дедупликацией.
  • Если бинарник не найден, показывается предупреждение (один раз за сессию).
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft