Какой плагин нужен для подсветки синтаксиса JavaScript?

В последних версиях VS Code исчезла встроенная подсветка неиспользуемых переменных в JavaScript. Я пробовала настроить это через конфиг — не получилось; предложения от ИИ тоже не помогли. Похоже, нужен плагин. Этот <a href="https://marketplace.visualstudio.com/items?itemName=TypeScriptTeam.native-preview" rel="nofollow">плагин</a> вроде решает проблему, но меня смущает, что он помечен как экспериментальный — непонятно, как будет работать. Странно, что пропала такая базовая функция. <br/> <br/> Вот эти переменные не используются в коде, но продолжают светиться активными.
  • 18 мая 2026 г. 8:01
Ответы на вопрос 1
Коротко — подсветку неиспользуемых переменных в JavaScript даёт не подсветка синтаксиса, а служба языка TypeScript (tsserver). В новых релизах VS Code она может быть отключена/заменена или не выполнять проверку для .js по умолчанию, поэтому переменные не помечаются как неиспользуемые. Плагин, который вы привели (TypeScriptTeam.native-preview), — экспериментальная «native» версия сервиса языка; он может решить проблему, но действительно помечен как экспериментальный.

Что рекомендую сделать (по порядку, коротко):

1) Проверить встроенный плагин
- В Extensions -> введите @builtin и найдите "TypeScript and JavaScript Language Features". Убедитесь, что он включён (Enable).
- В правом нижнем углу VS Code убедитесь, что файл распознан как JavaScript (язык в статус-баре).

2) Включить проверки TypeScript для JS
- В проекте создайте jsconfig.json или tsconfig.json с опциями:
  {
    "compilerOptions": {
      "checkJs": true,
      "noUnusedLocals": true,
      "noUnusedParameters": true
    },
    "exclude": ["node_modules"]
  }
  Либо добавьте в конкретный файл вверху строку // @ts-check для включения проверок в этом файле.
- Можно ещё в настройках workspace установить javascript.implicitProjectConfig.checkJs = true.

3) Альтернатива — ESLint (рекомендую)
- Установите расширение ESLint и настройте правило no-unused-vars — оно надёжно подсвечивает неиспользуемые переменные и даёт больше гибкости (игнорирование переменных, начинающихся с _, и т.д.).
- Пример .eslintrc:
  {
    "env": { "browser": true, "node": true, "es2021": true },
    "parserOptions": { "ecmaVersion": 12, "sourceType": "module" },
    "rules": { "no-unused-vars": ["warn", { "args": "none", "varsIgnorePattern": "^_" }] }
  }

4) Если хотите пробовать экспериментальный плагин
- TypeScriptTeam.native-preview — можно тестировать, но он экспериментальный. Более «официальная» альтернатива для обновлённого TS — расширение "TypeScript Nightly" (ms-vscode.vscode-typescript-next), оно использует nightly-версию TS для language-features.

5) Диагностика, если всё ещё не работает
- Откройте View → Output → выберите "TypeScript" — посмотрите логи tsserver.
- Нажмите на версию TypeScript в строке состояния — убедитесь, используете встроенную или workspace-версию, и переключитесь при необходимости.
- Проверьте конфликтующие расширения (Flow, Babel-type плагин и т.п.) — временно отключите другие JS/TS расширения.

Вывод: не обязательно ставить экспериментальный native-плагин — чаще всего достаточно включить встроенный "TypeScript and JavaScript Language Features" и включить checkJs (jsconfig.json или // @ts-check) либо настроить ESLint с правилом no-unused-vars. Если хотите, могу помочь открыть ваш проект конфиг JSON/ESLint-конфиг или посмотреть, какие расширения у вас включены и почему подсветка не работает.
Похожие вопросы