Vscode: Форматирование при сохранении (красивее) перестало работать с последним обновлением

Созданный на 10 окт. 2020  ·  67Комментарии  ·  Источник: microsoft/vscode

Форматировать при сохранении (красивее) перестало работать с последним обновлением

Несколько раз переустанавливал Prettier и проверял настройки, это произошло сразу после обновления VSCode.

https://gyazo.com/f07a3bfd0733edeed2a8d213fc3d21ac

*question formatting

Самый полезный комментарий

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

Все 67 Комментарий

Та же проблема

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

Сработало у меня, спасибо!

Да, он работал как средство форматирования по умолчанию, но, конечно, мне не нужно было устанавливать средство форматирования по умолчанию для vscode. Это должно быть от проекта к проекту.

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

Это сработало и для меня, но есть некоторые сценарии, в которых я просто хочу выглядеть красивее для конкретного проекта, а не глобально 😢

То же самое для меня, выбор prettier качестве средства форматирования по умолчанию для _VSCode_ работает, но это мешает работе с другими языками . Я тоже использую Ruby, и у меня та же проблема с форматировщиком rubocop : он перестал работать с 1.50.0.
И у меня не может быть двух разных форматеров по умолчанию для VSCode во всем мире.

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

Если у кого-то возникли проблемы с поиском опции @ j-francisco, описанной выше:

Файл -> Настройки -> Настройки (для Windows)
Код -> Настройки -> Настройки (для Mac)

Найдите «Форматировщик по умолчанию». В раскрывающемся списке prettier будет отображаться как

image

@AlissonRS Спасибо

Вышеупомянутое решение от @ j-francisco и @AlissonRS исправляет более black и теперь он не работает, потому что я выбрал prettier в качестве средства форматирования по умолчанию. Если я выберу black по умолчанию, то prettier не будет работать с файлами js. Похоже, автоматическое определение языка и форматирование не работает. Есть идеи, как я могу это исправить?

Я понимаю разочарование людей, которые зависят от этого. Я использую другие инструменты, такие как Headwind, который сейчас не работает.

Тоже самое. Это критическое изменение из VS Code или более красивое изменение пространства имен / кодового имени?

Я исправил это, и теперь он снова сломался сам по себе, это не имеет никакого эффекта https://github.com/microsoft/vscode/issues/108447#issuecomment -707236252 Edit Исправлено снова, напрямую выполнив поиск Format при сохранении и активировав его.

Итак, в чем проблема? Это что настроек ( editor.defaultFormatter ) больше нет? Или это параметр для формата при сохранении (который по умолчанию отключен) ( editor.formatOnSave ) не установлен?

@jrieken это не связано с editor.formatOnSave , проблема красивее перестала работать, даже ручное форматирование (SHIFT + ALT + F) не работало, и оно снова editor.defaultFormatter после установки editor.defaultFormatter (обновил его до нуля), или если editor.defaultFormatter всегда был нулевым, но предыдущие версии VS Code смогли правильно его обработать и при этом сделать работу красивее.

Что мне не ясно, так это то, что новый VS Code просто случайно удалил editor.defaultFormatter (обновил его до нуля), или если editor.defaultFormatter всегда был нулевым, но предыдущие версии VS Code могли обрабатывать его правильно и по-прежнему делать более красивую работу.

Да, вот в чем вопрос. По умолчанию editor.defaultFormatter - это null . Также обратите внимание, что параметр можно настроить для каждого языка - что-то, что пользовательский интерфейс не поддерживает, и для этого требуется редактор на основе JSON.

Итак, в чем проблема? Это что настроек ( editor.defaultFormatter ) больше нет? Или это параметр для формата при сохранении (который по умолчанию отключен) ( editor.formatOnSave ) не установлен?

Как в моем случае, сначала editor.defaultFormatte был нулевым, после того, как я исправил его через день, ( editor.formatOnSave ) больше не был активен.

@ivanjeremic Используете ли вы синхронизацию настроек?

@ivanjeremic Используете ли вы синхронизацию настроек?

Да.

У меня нет синхронизации настроек, и да, мой editor.defaultFormatter был null вместо esbenp.prettier-vscode . Может они изменили кодовое имя.

Во всяком случае, здесь, раз уж я установил правильный форматтер, все хорошо. 👍🏻

Я веду себя так же, как @nicolasrouanne . Если в настройках пользователя я установил более красивое средство форматирования, то работает только он. Если я установлю его только в настройках рабочего пространства для моего проекта TS, он не сработает. Это не идеально для людей, работающих над другими языками, кроме TS / JS.

@ ap00rv Я пробовал это и не могу воспроизвести. Я установил программу prettier и настроил ее как средство форматирования по умолчанию для файлов машинописного текста, и форматирование при сохранении работает для меня.

{
    "editor.formatOnSave": true,
    "[typescript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    }
}

Можете ли вы (или кто-то) поделиться со мной воспроизводимыми шагами?

Привет, @jrieken , можете ли вы попробовать использовать указанные выше настройки только на уровне рабочей области (форматировщик по умолчанию в пользовательских настройках должен быть нулевым), а затем посмотреть, что произойдет?

Да, вот что у меня есть.

хорошо, мои извинения. В настоящее время она работает для меня после установки следующих в рабочем пространстве настройки только. Извините за неприятности.

"editor.codeActionsOnSave": {
      // For ESLint
      "source.fixAll.eslint": true
    },
    "[typescript]": {
      "editor.defaultFormatter": "esbenp.prettier-vscode"
    },

Все мои коллеги и я использую VS Code 1.50.1 и расширение Prettier 5.7.1 , но некоторые видят проблему, а некоторые нет, поэтому здесь есть кое-что еще.

@dlsso для тех из ваших коллег, которые сталкиваются с проблемами, вы можете проверить, не переопределяется ли параметр форматирования по умолчанию в рабочей области в другом месте. Так и случилось в моем случае. Линтинг ESlint должен быть настроен с использованием другой опции, как указано здесь

Хорошая мысль, но я не использую плагины для линтера, поэтому не думаю, что это может быть. Установка по умолчанию, предложенная AllisionRS, сработала для нас, так что это еще не конец света. Тем не менее, все еще любопытно узнать, чем это вызвано.

Я поднял аналогичную проблему для расширения beautify: https://github.com/microsoft/vscode/issues/108878

Следуя приведенному здесь методу и установив его в качестве исправления по умолчанию для меня на vscode 1.50.1

Я тоже вижу ту же проблему. Однако установка средства форматирования по умолчанию на уровне пользователя или рабочей области не решает проблему. Форматирование при сохранении по-прежнему включено как на уровне пользователя, так и на уровне рабочей области.

У меня была такая же проблема. Периодически (за последнюю неделю или около того) искал туда и сюда, чтобы попытаться понять, почему более красивое перестало работать. Только сегодня обнаружил эту проблему и смог решить, следуя предложениям в этой теме выше.

1) Я открыл настройки и поискал "форматировщик по умолчанию". Я заметил, что для «Editor: Default Formatter» было установлено значение null и что у меня не было возможности для более красивого в раскрывающемся списке.
2) Я открыл настройку Json, щелкнув значок в правом верхнем углу того же экрана настроек:
image

3) Я добавил в свои настройки json следующие строки:

    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "[javascript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },

Я взял эти строки с этой страницы: https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

Если у кого-то возникли проблемы с поиском опции @ j-francisco, описанной выше:

Файл -> Настройки -> Настройки (для Windows)
Код -> Настройки -> Настройки (для Mac)

Найдите «Форматировщик по умолчанию». В раскрывающемся списке prettier будет отображаться как

image

этот сделал это для меня!

Я думаю, что единственное, что здесь требует исследования, это то, правильно ли работают предпочтения VSCode по умолчанию для настроек рабочего пространства по сравнению с пользовательскими настройками, как указано здесь .

Настройки рабочего пространства имеют приоритет над пользовательскими настройками.

cc @jrieken

Я предоставлю дополнительную информацию.
Vetur получил сообщение о том, что автоматическое форматирование не работает. https://github.com/vuejs/vetur/issues/2388
Но если зайти в настройки и выключить и снова включить формат, все заработает.

В vetur мы зарегистрируем DocumentFormattingRequest в LSP при изменении конфигурации.
https://github.com/vuejs/vetur/blob/master/server/src/services/vls.ts#L142
Также есть комментарий, в котором говорится, что сервер LSP срабатывает один раз при запуске.

Оказывается, это из-за исправления https://github.com/microsoft/vscode/issues/106376. До этого изменения VS Code выбирал случайное средство форматирования (во время форматирования при сохранении), если было несколько средств форматирования и не было настроено значение по умолчанию. Я понимаю, насколько это неприятно, но я бы не назвал это регрессом, так как раньше все работало случайно.

Настроить средство форматирования по умолчанию

Как уже было предложено, правильнее всего настроить средство форматирования по умолчанию, лучше всего для каждого языка. Приведенный ниже фрагмент настраивает prettier ( esbenp.prettier-vscode ) как средство форматирования по умолчанию для javascript

"[javascript]": {
     "editor.defaultFormatter": "esbenp.prettier-vscode"
}
Почему не показывать уведомление?

На самом деле мы показываем уведомление, но только когда сохранение было инициировано явным образом, например, с помощью действий «Форматировать документ / выбор». Формат при сохранении отличается, поскольку сохранение не всегда должно происходить по жесту пользователя - например, можно использовать «сохранить после задержки» или «сохранить при выходе из фокуса». Уведомления в таких случаях неприятны, потому что плохо объясняют себя.

Смена форматера по умолчанию у меня не сработала, но я нашел решение.

Откройте любой файл, щелкните правой кнопкой мыши и выберите «Форматировать документ». Скорее всего, появится всплывающее окно с сообщением о том, что средство форматирования не было установлено или что средство форматирования не может быть найдено. Щелкните всплывающее окно и выберите в качестве средства форматирования красивее.

После выполнения вышеизложенного форматирование при сохранении теперь работает для меня во всех файлах.

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

Это сработало для меня, большое спасибо!

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

Если у кого-то возникли проблемы с поиском опции @ j-francisco, описанной выше:

Файл -> Настройки -> Настройки (для Windows)
Код -> Настройки -> Настройки (для Mac)

Найдите «Форматировщик по умолчанию». В раскрывающемся списке prettier будет отображаться как

image

исправить для меня, спасибо!

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

То же самое и для меня, брат, в любом случае спасибо за идею

Вышеупомянутое решение от @ j-francisco и @AlissonRS исправляет более black и теперь он не работает, потому что я выбрал prettier в качестве средства форматирования по умолчанию. Если я выберу black по умолчанию, то prettier не будет работать с файлами js. Похоже, автоматическое определение языка и форматирование не работает. Есть идеи, как я могу это исправить?

@iNishant вы должны установить только

Screen Shot 2020-10-24 at 10 40 26 AM

Screen Shot 2020-10-24 at 10 43 37 AM

для тех, у кого возникли проблемы с форматированием после настройки более красивого по умолчанию, вы можете изменить способ более красивого форматирования
ваша кодовая база на языке. У меня сейчас JS, но если я работаю в режиме реакции, я могу переключить его, и это не проблема. Ура!

Я играл с той же проблемой. Прежде чем пытаться установить prettier как средство форматирования по умолчанию глобально или поиграться с настройкой конфигурации, я подумал, что попробую удалить расширение prettier и переустановить его (старый добрый выключил и снова включил). Это сработало для меня. Я бы посоветовал сначала попробовать это, поскольку это может сбросить какую-то конфигурацию или что-то в этом роде 🤷‍♂️

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

Большое спасибо <3

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

у меня тоже работает, спасибо

Я столкнулся с той же проблемой, я попытался установить форматировщик по умолчанию в настройках, но безрезультатно, вам нужно отредактировать файл настроек как JSON.

Я просто добавил то, что некоторые упоминали ранее:

"[typescript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },

Спасибо всем за вашу помощь!

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

Работал на меня

Средство форматирования по умолчанию

Установите значение null ? У меня не работает. Другие решения, пожалуйста!

Средство форматирования по умолчанию

Установите значение null ? У меня не работает. Другие решения, пожалуйста!

Привет, krittiyaclark, попробуйте отредактировать настройки напрямую как JSON

Оказывается, это от исправления №106376. До этого изменения VS Code выбирал случайное средство форматирования (во время форматирования при сохранении), если было несколько средств форматирования и не было настроено значение по умолчанию. Я понимаю, насколько это неприятно, но я бы не назвал это регрессом, так как раньше все работало случайно.

Настроить средство форматирования по умолчанию

Как уже было предложено, правильнее всего настроить средство форматирования по умолчанию, лучше всего для каждого языка. Приведенный ниже фрагмент настраивает prettier ( esbenp.prettier-vscode ) как средство форматирования по умолчанию для javascript

"[javascript]": {
     "editor.defaultFormatter": "esbenp.prettier-vscode"
}
Почему не показывать уведомление?

На самом деле мы показываем уведомление, но только когда сохранение было инициировано явным образом, например, с помощью действий «Форматировать документ / выбор». Формат при сохранении отличается, поскольку сохранение не всегда должно происходить по жесту пользователя - например, можно использовать «сохранить после задержки» или «сохранить при выходе из фокуса». Уведомления в таких случаях неприятны, потому что плохо объясняют себя.

Это решение работает для меня. Спасибо!

https://github.com/microsoft/vscode/issues/108447#issuecomment -707236252

В среду, 28 октября 2020 г., в 21:23 Карлос Вильярроэль [email protected]
написал:

Средство форматирования по умолчанию

Установить значение null? У меня не работает. Другие решения, пожалуйста!

Привет, krittiyaclark, попробуйте отредактировать настройки напрямую как JSON

-
Вы получили это, потому что оставили комментарий.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/microsoft/vscode/issues/108447#issuecomment-718028524 ,
или отписаться
https://github.com/notifications/unsubscribe-auth/ALRSB3I7TAV33P2JBZDLNK3SNA475ANCNFSM4SLAZZCQ
.

-
С Уважением,
Свати Шрейя

Я попробовал все указанные выше настройки в пользовательской и рабочей области, но все еще не форматировал при сохранении. Придется вручную выбрать красивее для форматирования.

Попробуйте поискать в настройках «форматировать при сохранении». Для этого есть флажок.
Если этот флажок не установлен, форматирование при сохранении не выполняется.

В среду, 28 октября 2020 г., в 13:16 Гопинатх Прасанна [email protected]
написал:

Я попробовал все указанные выше настройки в пользовательской и рабочей области, но все еще не
форматирование при сохранении. Придется вручную выбрать красивее для форматирования.

-
Вы получили это, потому что оставили комментарий.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/microsoft/vscode/issues/108447#issuecomment-718152465 ,
или отписаться
https://github.com/notifications/unsubscribe-auth/ANYV5RK6Z3SVWNXBBUI7DWLSNBUZZANCNFSM4SLAZZCQ
.

Потратил довольно много времени, чтобы копаться, и для меня проблема в том, что у меня editor.formatOnSaveMode установлено на modifications (недавно выпущенная новая функция), в конечном итоге пришлось сбросить до file снова

  "editor.formatOnSave": true,
  "editor.formatOnSaveMode": "file"

Потратил довольно много времени, чтобы копаться, и для меня проблема в том, что у меня editor.formatOnSaveMode установлено на modifications (недавно выпущенная новая функция), в конечном итоге пришлось сбросить до file снова

  "editor.formatOnSave": true,
  "editor.formatOnSaveMode": "file"

Я думаю это лучший ответ

Потратил довольно много времени, чтобы копаться, и для меня проблема в том, что у меня editor.formatOnSaveMode установлено на modifications (недавно выпущенная новая функция), в конечном итоге пришлось сбросить до file снова

  "editor.formatOnSave": true,
  "editor.formatOnSaveMode": "file"

Это сработало для меня. Спасибо огромное! 🎉

Привет! Убедитесь, что ваш код не содержит синтаксических ошибок!

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

Это сработало! Спасибо огромное!

Как это исправить?

это расширение поддерживает режим modifications ?

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

Если у кого-то возникли проблемы с поиском опции @ j-francisco, описанной выше:

Файл -> Настройки -> Настройки (для Windows)
Код -> Настройки -> Настройки (для Mac)

Найдите «Форматировщик по умолчанию». В раскрывающемся списке prettier будет отображаться как

image

Спасатель жизни !!!

Закрытие этого как вопроса - на который сообщество ответило быстро и правильно 👏 Суть в том, что при наличии нескольких доступных форматеров необходимо выбрать средство форматирования по умолчанию.

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

Потрясающе! Сработало у меня!

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

Спасибо, работал у меня!

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

Спасибо!! Когда красотка снова начала работать, мне показалось, что я снова могу дышать 😂

Спасибо за настройку, у меня сработало.

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

@ j-francisco Пришел в клатч, спасибо

То же самое случилось со мной только что. Я установил красивее как средство форматирования по умолчанию в настройках, и он снова начал работать. Мой модуль форматирования по умолчанию был нулевым.

работал перчаткой, спасибо

Поместите эти поля в settings.json

"editor.defaultFormatter": "esbenp.prettier-vscode","[javascript]": {"editor.defaultFormatter": "esbenp.prettier-vscode"}

Была ли эта страница полезной?
0 / 5 - 0 рейтинги