Как вы форматируете код при сохранении в VS-коде


Я хотел бы автоматически форматировать код TypeScript с помощью встроенного модуля форматирования при сохранении файла в Visual Studio Code.

Я знаю о следующих вариантах, но ни один из них не достаточно хорош:

    вручную Shift + Alt + F по типу "editor.formatOnType": true
    • он форматирует строку при нажатии клавиши enter. К сожалению, он оставляет его неформатированным, когда вы щелкаете мышью по другой строке или нажимаете стрелку вверх/вниз.
  • использовать существующее расширение
    • Я пробовал это один, но это, кажется, не работает слишком хорошо.
  • использовать украсит "beautify.onSave": true
    • он не работает с TypeScript
  • написать пользовательское расширение
    • это сложно, если вы хотите обрабатывать автосохранения и строит правильно.
5 75

5 ответов:

по состоянию на сентябрь 2016 года (vscode 1.6), это теперь официально поддерживает.

добавьте к вашему настройки.json file:

"editor.formatOnSave": true

для автоматического форматирования кода при сохранении:

  • пресс Ctrl, открыть настройки пользователя
  • введите следующий код в открывшемся настроек файлом

    {
      "editor.formatOnSave": true
    }

  • "сохранить файл"

источник

Если вы хотите автоматически форматировать при сохранении только с помощью источника Javascript, добавьте его в Users Setting (нажмите клавишу Cmd, или Ctrl,):

"[javascript]": {"редактор.formatOnSave": true }

проблема в машинописи. Если вы видите этот поток https://github.com/Microsoft/vscode/issues/17627, вы увидите, что форматирование typescript еще не хорошо разрешено в VSCode.

на MAC пользователь, добавьте эту строку в настройки по умолчанию

путь к файлу: /Пользователи/Имя_пользователя/библиотеки/application поддержки/код/пользователей/настройки.json

" tslint.автофиксация": true

пример файла будет: { "window.zoomLevel": 0, "workbench.iconTheme": "vscode-icons", "typescript.check.tscVersion": false, "vsicons.projectDetection.disableDetect": true, "typescript.updateImportsOnFileMove.enabled": "always", "eslint.autoFixOnSave": true, "tslint.autoFixOnSave": true }