Как изменить параметры форматирования в Visual Studio Code?

90

Я знаю, что вы можете форматировать код, используя Ctrl+ F/ Cmd+ Fв Visual Studio Code, но как изменить параметры форматирования для каждого языка?

Например, в Visual Studio 2013 я могу выбрать компактный режим для CSS.

Есть ли еще один скрытый файл JSON для этого?

Мэтт МакКейб
источник
1
Возможно нет. Если вы читали онлайн-документ , вы можете заметить, что Microsoft упомянула только функцию форматирования для TypeScript.
yushulx 06
Он работает для C # и JavaScript, я не могу найти официального списка, но это больше, чем просто TypeScript.
Мэтт МакКейб
1
это 2017 год, а он еще не поддерживается?
Asqan

Ответы:

87

В коде VS

нажмите Ctrl+ Shift+P

затем введите Format Document With...

В конце списка нажмите на Configure Default Formatter...

Теперь вы можете выбрать понравившееся украшение из списка.

Обновление 2021

если "Format Document With..."больше не существует, перейдите к => => затем перейдите к => прокрутите немного, и вы увидите , теперь вы можете выбрать любой форматировщик документов, который вы установили bofer для различных расширений типов файлов.file preferences settingsExtensions Veturformat > defaultFormatter:css

Саджад Садери
источник
3
Форматировать документ с ... больше нет
Aero Wang
Vetur тоже не существует!
Martijn Hiemstra
@MartijnHiemstra К вашему сведению, Vetur - это расширение VS Code, доступное на
торговой площадке
20

Я только что нашел это расширение под названием beautify в Market Place, и да, это еще один файл config \ settings. :)

Украсить javascript, JSON, CSS, Sass и HTML в Visual Studio Code.

VS Code внутренне использует js-beautify, но ему не хватает возможности изменить стиль, который вы хотите использовать. Это расширение позволяет запускать js-beautify в VS Code И учитывать любой файл .jsbeautifyrc в дереве путей открытого файла для загрузки стиля вашего кода. Запустите с F1 Beautify (чтобы украсить выбор) или F1 Beautify file.

Для получения справки по настройкам в .jsbeautifyrc см. Settings.md

Вот репозиторий GitHub: https://github.com/HookyQR/VSCodeBeautify

Лениэль Маккаферри
источник
Спасибо, это выглядит неплохо, мне не хватает этого в моем CSS, javascript / typescript и html, похоже, работают из коробки нормально. Похоже, вы могли бы поместить часть этого в свой .editorconfig
Мэтт МакКейб
Одно из лучших решений, поскольку он использует .jsbeautifyrcфайл конфигурации, который, в свою очередь, будет полезен другим членам команды, которые могут использовать другие IDE для написания кода. Для Sublime Text лучше всего подходит плагин HTML-CSS-JS-Prettify . К сожалению для Eclipse, реализации на рынке содержат ошибки. Мне все еще нужно использовать то, editorconfigчто делает приличную работу.
Шияз
Beautify - это хорошо, но у меня всегда возникают проблемы. Я считаю, что лучше быть лучше и более настраиваемым.
Trevor Jex
18

Редактировать:

Это будет теперь поддерживается (по состоянию на 2019 г. ) . Инструкции см. В ответе Саджада Садери ниже .

Нет, в настоящее время это не поддерживается (в 2015 году) .

Исидор Николич
источник
11
Обидно, проголосую и посмотрю. Я подозреваю, что это будет еще один файл настроек json, похоже, в том направлении, в котором они движутся.
Мэтт МакКейб
9
Больше не правильно? Тогда как? По крайней мере, укажите для этого URL.
Damn Vegetables
2
Извините за расплывчатость. Ссылка на голосовой голос пользователя visualStudio не работает. Вероятно, это проблема с github, и мне удалось найти github.com/Microsoft/vscode/issues/1533 . Вы также можете выполнить поиск в настройках по запросу «формат», и вы найдете параметры javascript.format.
SgtPooki
13

Если в настоящее время мы говорим о Visual Studio Code, вы устанавливаете средство форматирования по умолчанию в settings.json:

  // Defines a default formatter which takes precedence over all other formatter settings. 
  // Must be the identifier of an extension contributing a formatter.
  "editor.defaultFormatter": null,

Укажите идентификатор любого установленного расширения, т.е.

"editor.defaultFormatter": "esbenp.prettier-vscode"

Вы также можете сделать это для конкретного формата :

"[html]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[scss]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[sass]": {
    "editor.defaultFormatter": "michelemelluso.code-beautifier"
},

Также смотрите здесь .


Вы также можете назначить другие клавиши для разных форматеров с помощью сочетаний клавиш ( keybindings.json). По умолчанию он гласит:

{
  "key": "shift+alt+f",
  "command": "editor.action.formatDocument",
  "when": "editorHasDocumentFormattingProvider && editorHasDocumentFormattingProvider && editorTextFocus && !editorReadonly"
}

Наконец, если вы решите использовать плагин Prettier иprettier.rc , например, вам нужен другой отступ для html, scss, json ...

{
    "semi": true,
    "singleQuote": false,
    "trailingComma": "none",
    "useTabs": false,

    "overrides": [
        {
            "files": "*.component.html",
            "options": {
                "parser": "angular",
                "tabWidth": 4
            }
        },
        {
            "files": "*.scss",
            "options": {
                "parser": "scss",
                "tabWidth": 2
            }
        },
        {
            "files": ["*.json", ".prettierrc"],
            "options": {
                "parser": "json",
                "tabWidth": 4
            }
        }
    ]
}
Фрэнк Нок
источник
7

Вы можете внести некоторые изменения в «Настройках». Например, правила javascript начинаются с "javascript.format". Но для расширенного управления форматированием все же нужно использовать некоторые расширения.

Настройки правил для команды кода формата

Айк
источник
6

Решение, которое мне подходит (июль 2017 г.), - использовать ESLint . Как всем известно, линтер можно использовать по-разному, глобально или локально. Я использую его локально и с руководством по стилю Google. Я настроил это следующим образом ...

  • cd to your working directory
  • npm init
  • npm install --save-dev eslint
  • node_modules/.bin/eslint --init
  • I use google style and json config file

Теперь у вас будет .eslintrc.jsonфайл в корне вашего рабочего каталога. Вы можете открыть этот файл и изменить его по своему усмотрению, используя правила eslint . Рядом cmd+,с открытыми vscodeнастройками системы. В строке поиска введите eslintи ищите "eslint.autoFixOnSave": false. Скопируйте настройку, вставьте ее в файл пользовательских настроек и измените falseна true. Надеюсь, это поможет кому-то, кто использует vscode .

Гилберт
источник
1

Чтобы конкретно изменить настройки форматирования C # (OmniSharp), вы можете использовать файл json:
User: ~/.omnisharp/omnisharp.json или %USERPROFILE%\.omnisharp\omnisharp.json
Workspace: omnisharp.json файл в рабочем каталоге, на который был указан OmniSharp.

Пример:

{
  "FormattingOptions": {
    "NewLinesForBracesInMethods": false,
    "NewLinesForBracesInProperties": false,
    "NewLinesForBracesInAccessors": false,
    "NewLinesForBracesInAnonymousMethods": false,
    "NewLinesForBracesInControlBlocks": false,
    "NewLinesForBracesInObjectCollectionArrayInitializers": false,
    "NewLinesForBracesInLambdaExpressionBody": false
  }
}

Подробности об этом посте | схема omnisharp.json (она уже есть в vscode, вы можете просто CTRL + ПРОБЕЛ)

Другие языковые расширения могут иметь аналогичные файлы для его настройки.

гикли
источник
0

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

Чтобы установить VSCODE Default Formatter

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

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

Вариант редактора VSCODE

Хитеш Субнани
источник