n1ro°
RU

Текст и данные · Инструкция

VS Code Inlay Hints: как включить и настроить

VS Code Inlay Hints: как включить и настроить — это настройка подсказок, которые редактор рисует прямо внутри строки.

Редакция N1RO · Проверено

Короткий ответ

Откройте Settings, найдите “Inlay Hints” и настройте `Editor: Inlay Hints: Enabled`. Если подсказки есть не того типа или их слишком много, меняйте языковые параметры расширения — например, TypeScript умеет отдельно показывать имена параметров и выведенные типы.

Почему подсказки появляются не во всех файлах

VS Code предоставляет механизм отображения inlay hints, но не придумывает их для любого текста самостоятельно. Данные должен отдавать встроенный языковой сервис или расширение, например TypeScript/JavaScript tooling или rust-analyzer. Поэтому включённый `editor.inlayHints.enabled` не гарантирует, что подсказки появятся в неизвестном формате файла. Если в одном проекте hints видны, а в другом нет, сначала проверьте активный language mode и работу соответствующего расширения. У TypeScript отдельные настройки управляют параметрами, типами переменных, свойств и возвращаемых значений, поэтому общий toggle может быть включён, а конкретный вид подсказок — выключен.

Совет: Если hints исчезли только в одном языке, сначала ищите настройки этого языка или расширения, а не переустанавливайте VS Code целиком.

Глобальная настройка и настройки на язык

`editor.inlayHints.enabled` управляет отображением подсказок на уровне редактора. Для точной настройки можно использовать language-specific section в `settings.json`, чтобы, например, показывать hints в TypeScript и скрывать в другом языке. В JavaScript/TypeScript доступны отдельные параметры для имён аргументов; официальная документация описывает значения `none`, `literals` и `all` для parameter name hints. Это полезно, когда подсказки нужны только в неоднозначных вызовах, но постоянные подписи у каждого аргумента создают визуальный шум. Сочетайте общий переключатель и настройки language service: первый отвечает «показывать механизм вообще», вторые — «какие именно данные запрашивать и отображать».

Предупреждение: Не копируйте чужой `settings.json` целиком ради одной функции. Лишние параметры могут конфликтовать с профилем или workspace-конфигурацией.

Как настроить Inlay Hints без лишнего шума

  1. Откройте Settings: Нажмите Ctrl+, на Windows/Linux или используйте команду Preferences: Open Settings и найдите “Inlay Hints”.
  2. Проверьте общий toggle: Убедитесь, что Editor: Inlay Hints: Enabled разрешает показ подсказок. Если нужен временный минимум, сначала отключите всё, а затем включайте только полезные категории.
  3. Откройте настройки языка: Для TypeScript найдите параметры `typescript.inlayHints.*`, для JavaScript — `javascript.inlayHints.*`; у других языков названия задаёт их расширение.
  4. Начните с parameter names: Если проблема — непонятные аргументы функций, включите подписи имён параметров для literals или all, не включая одновременно все возможные типовые hints.
  5. Проверьте workspace overrides: Откройте Workspace Settings и `.vscode/settings.json`: проект может переопределять ваши User Settings, поэтому глобальное изменение иногда «не работает» только в одном репозитории.
  6. Перезагрузите языковой сервис при необходимости: Если настройки правильные, а данные не обновились, перезапустите language server или окно редактора штатной командой и проверьте Output расширения на ошибки.

Важно: Inlay hints — визуальные подсказки, а не часть файла. Они не записываются в исходный код и не должны появляться в git diff после обычного включения.

Какой уровень настройки искать

[object Object]

Почему слишком много hints иногда мешает чтению

Подсказки полезны там, где код скрывает важный контекст: логические аргументы `true/false`, неочевидные единицы, сложный generic type или выведенный return type. Но если редактор подписывает очевидные значения на каждой строке, визуальный сигнал превращается в фон. Лучше включить только категории, которые помогают вашему стилю кода и команде, а не максимальный набор функций расширения. Для общих репозиториев не стоит без обсуждения добавлять субъективные display-настройки в workspace-конфигурацию: они навязывают вид всем участникам. User Settings или отдельный Profile подходят лучше, если это личное предпочтение. В результате хорошая настройка hints ускоряет чтение, но не меняет форматирование, типы или поведение программы.

Как не путать Inlay Hints с автодополнением и диагностикой

Inlay hints добавляют справочную подпись рядом с уже написанным кодом, но не заменяют IntelliSense suggestions, hover, diagnostics или Code Actions. Если список автодополнения пуст, включение hints само по себе проблему не исправит; это другой канал данных language server. Аналогично красные подчёркивания и Quick Fix могут работать, даже когда hints отключены. Такое разделение полезно при диагностике расширения: если hover и completion работают, а inlay hints нет, проверяйте именно capability и настройки hints. Если не работает ничего, вероятнее проблема в запуске language service, выборе интерпретатора или SDK либо состоянии расширения.

Как уменьшить количество подсказок только для TypeScript

Если проблема не в самом механизме Inlay Hints, а в перегруженных TypeScript-файлах, не обязательно отключать функцию целиком. У TypeScript и JavaScript есть отдельные параметры подсказок, в том числе для имён параметров: VS Code позволяет показывать их никогда, только для литеральных аргументов или для всех аргументов. Это полезнее глобального выключения, когда типы и возвращаемые значения помогают читать код, а подписи параметров создают визуальный шум. Настройку стоит менять на уровне языка или рабочего пространства, чтобы не ломать привычки в других проектах. После изменения откройте вызов функции с несколькими аргументами и сравните результат: если подписи исчезли там, где мешали, но остальные полезные hints остались, конфигурация подобрана точнее, чем простое отключение всего механизма.

Как быстро переключать hints, не меняя постоянную конфигурацию

Если inlay hints нужны только время от времени, не обязательно постоянно редактировать settings.json. У общего параметра `editor.inlayHints.enabled` есть режимы, которые позволяют держать подсказки включёнными или выключенными и временно инвертировать отображение при нажатии модификатора. Это удобно для ревью: большую часть времени код остаётся чистым, а при разборе сложного вызова можно на короткое время показать имена параметров и выведенные типы. При этом настройки конкретного языка продолжают определять, какие именно hints вообще доступны. Такой подход лучше, чем хаотично отключать расширение, потому что language service продолжает работать для completion, hover и diagnostics. Если команда использует общий workspace, личный режим показа разумнее хранить в User Settings или Profile, чтобы визуальное предпочтение одного разработчика не меняло интерфейс у всех.

Как диагностировать конфликт User, Workspace и language-specific настроек

VS Code применяет настройки по уровням, поэтому один и тот же ключ может иметь разное значение глобально и внутри конкретного проекта или языка. Если hints видны в JavaScript, но исчезают в TypeScript только в одном репозитории, откройте Settings и проверьте, откуда пришло эффективное значение: User, Remote, Workspace или language-specific section. Затем сравните `.vscode/settings.json` с пользовательским профилем. Не удаляйте все настройки сразу — меняйте один слой и проверяйте конкретный файл с известным вызовом функции. Если общий `editor.inlayHints.enabled` разрешает показ, но отдельный `typescript.inlayHints.*` выключает нужную категорию, это нормальная комбинация, а не сбой интерфейса. Такой порядок диагностики сохраняет остальные настройки редактора и быстрее находит точное переопределение.

Если Inlay Hints не показываются

  • Файл распознан как правильный язык, а не Plain Text.
  • Установлено и активно расширение или language server, которое умеет отдавать hints.
  • Глобальный `editor.inlayHints.enabled` не выключен.
  • Языковые параметры нужного типа подсказок включены.
  • Workspace Settings не переопределяют User Settings.
  • Расширение не находится в ошибочном или отключённом состоянии.

Что учитывать

VS Code предоставляет механизм отображения inlay hints, но не придумывает их для любого текста самостоятельно. Данные должен отдавать встроенный языковой сервис или расширение, например TypeScript/JavaScript tooling или rust-analyzer. Поэтому включённый `editor.inlayHints.enabled` не гарантирует, что подсказки появятся в неизвестном формате файла. Если в одном проекте hints видны, а в другом нет, сначала проверьте активный language mode и работу соответствующего расширения. У TypeScript…

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. Code Navigation: Inlay Hints). Пример и формулировки — редакция N1RO на 2026-09-20.