Як змінити параметри форматування в Visual Studio Code?


85

Я знаю, що ви можете форматувати код за допомогою Ctrl+ F/ Cmd+ Fу коді Visual Studio, але як змінити параметри форматування для кожної мови?

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

Чи є для цього інший прихований файл JSON?


1
Можливо, ні. Якщо ви прочитали онлайн-документ , ви можете помітити, що корпорація Майкрософт згадала лише функцію форматування для TypeScript.
yushulx

Це працює для C # та JavaScript, я не можу знайти офіційний список, але це більше, ніж просто TypeScript.
Метт Маккейб,

1
це 2017 рік, і він ще не підтримується?
Аскан

Відповіді:


82

За кодом VS

натисніть Ctrl+ Shift+P

потім введіть Format Document With...

У кінці списку натисніть на Configure Default Formatter...

Тепер ви можете вибрати улюблений красивець зі списку.


19

Я щойно знайшов це розширення під назвою beautify на Market Place, і так, це ще один файл config \ settings :)

Прикрасьте javascript, JSON, CSS, Sass та HTML у коді Visual Studio.

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

Довідку щодо налаштувань у .jsbeautifyrc див. У розділі Settings.md

Ось сховище GitHub: https://github.com/HookyQR/VSCodeBeautify


Дякую, це виглядає досить добре, я пропускаю це у своєму CSS, javascript / typecript та html, здається, працюють нестандартно добре. Схоже, ви могли б помістити частину цього у .editorconfig
Matt McCabe

Одне з найкращих рішень, оскільки він використовує .jsbeautifyrcфайл конфігурації, що, у свою чергу, буде корисним для інших членів команди, які можуть використовувати інші середовища розробки для написання коду. Для піднесеного тексту найкращим є плагін HTML-CSS-JS-Prettify . На жаль для Eclipse, реалізації на ринку глючать. Мені все ще потрібно використовувати, editorconfigщо робить гідну роботу.
Шияз,

Прикрашати - це добре, але завжди створює мені проблеми. Я вважаю, що гарнішим є кращий та більш налаштований.
Тревор Джекс,

18

Редагувати:

Це буде тепер підтримується (станом на 2019 р ) . Будь ласка, перегляньте відповідь sajad saderi нижче, щоб отримати інструкції.

Ні, це наразі не підтримується (у 2015 році) .


11
Це ганьба, я проголосую за це і зачекаю і подивлюсь. Я підозрюю, що це буде ще один файл налаштувань json, схоже, це напрямок, куди вони йдуть.
Метт Маккейб,

9
Більше не правильно? Тоді як? Принаймні, надайте URL-адресу для цього.
Прокляті овочі,

2
Вибачте за невизначеність. Посилання на користувацький голос visualStudio порушено. Можливо, це проблема github, і я зміг знайти github.com/Microsoft/vscode/issues/1533 . Ви також можете шукати у своїх налаштуваннях "формат", і ви знайдете параметри javascript.format.
SgtPooki

9

Якщо ми говоримо про 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
            }
        }
    ]
}


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 + ПРОБІЛ)

Інші розширення мови можуть мати подібні файли для його встановлення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.