Làm cách nào để bạn thay đổi các tùy chọn định dạng trong Visual Studio Code?


84

Tôi biết bạn có thể Định dạng Mã bằng ctrl + cmd + f trong Visual Studio Code nhưng làm cách nào để bạn thay đổi các tùy chọn định dạng cho từng ngôn ngữ?

Ví dụ, trong Visual Studio 2013, tôi có thể chọn chế độ thu gọn cho CSS.

Có tệp json ẩn khác để làm điều đó không?


1
Chắc là không. Nếu bạn đã đọc tài liệu trực tuyến , bạn có thể nhận thấy rằng Microsoft chỉ đề cập đến chức năng định dạng cho TypeScript.
yushulx

Nó hoạt động cho C # và JavaScript, tôi không thể tìm thấy danh sách chính thức nhưng nó không chỉ là TypeScript.
Matt McCabe

1
nó là năm 2017 và nó vẫn chưa được hỗ trợ?
Asqan

Câu trả lời:


18

Biên tập:

Đây hiện được hỗ trợ (tính đến 2019) . Hãy xem câu trả lời của sajad saderi dưới đây để được hướng dẫn.

Không, điều này hiện không được hỗ trợ (vào năm 2015) .


11
Thật đáng tiếc, tôi sẽ bình chọn nó và chờ xem. Tôi nghi ngờ đó sẽ là một tệp cài đặt json khác, đó có vẻ là hướng mà họ đang đi.
Matt McCabe

9
Không còn chính xác? Sau đó như thế nào? Ít nhất hãy cung cấp một URL cho điều đó.
Rau chết tiệt

2
Xin lỗi vì sự mơ hồ. Liên kết uservoice của visualStudio bị hỏng. Có lẽ đó là sự cố github và tôi có thể tìm thấy github.com/Microsoft/vscode/issues/1533 . Bạn cũng có thể tìm kiếm "định dạng" trong cài đặt của mình và bạn sẽ tìm thấy các tùy chọn javascript.format.
SgtPooki

79

Tại mã VS

nhấn Ctrl+Shift+P

sau đó gõ Format Document With...

Ở cuối danh sách bấm vào Configure Default Formatter...

Bây giờ bạn có thể chọn công cụ làm đẹp yêu thích của mình từ danh sách.


19

Tôi vừa tìm thấy tiện ích mở rộng này có tên là beauty trong Market Place và đúng vậy, đó là một tệp config \ settings khác. :)

Làm đẹp javascript, JSON, CSS, Sass và HTML trong Visual Studio Code.

VS Code sử dụng js-beauty bên trong, nhưng nó thiếu khả năng sửa đổi kiểu mà bạn muốn sử dụng. Phần mở rộng này cho phép chạy js-beauty trong VS Code VÀ tôn vinh bất kỳ tệp .jsbeautifyrc nào trong cây đường dẫn của tệp đang mở để tải kiểu mã của bạn. Chạy với F1 Beautify (để làm đẹp vùng chọn) hoặc F1 Beautify tệp.

Để được trợ giúp về cài đặt trong .jsbeautifyrc, hãy xem Cài đặt.md

Đây là kho lưu trữ GitHub: https://github.com/HookyQR/VSCodeBeautify


Cảm ơn, nó trông khá tốt, tôi còn thiếu nó trong CSS, javascript / stylescript và html của tôi có vẻ hoạt động ổn. Dường như bạn có thể có thể đặt một số của nó trong .editorconfig của bạn
Matt McCabe

Một trong những giải pháp tốt nhất vì nó sử dụng .jsbeautifyrctệp cấu hình, do đó sẽ hữu ích cho các thành viên khác trong nhóm, những người có thể đang sử dụng các IDE khác để viết mã. Đối với Sublime Text, plugin HTML-CSS-JS-Prettify là tốt nhất hiện có. Thật không may cho Eclipse, việc triển khai trên thị trường có nhiều lỗi. Tôi vẫn cần sử dụng editorconfigcái nào hoạt động tốt.
Shiyaz

Làm đẹp là tốt nhưng luôn mang lại cho tôi nhiều vấn đề. Tôi thấy đẹp hơn để trở nên tốt hơn và cấu hình tốt hơn.
Trevor Jex

8

Nếu chúng ta đang nói về Visual Studio Code ngày nay, bạn đặt một định dạng mặc định trong 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,

Trỏ đến mã định danh của bất kỳ tiện ích mở rộng nào đã cài đặt, tức là

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

Bạn cũng có thể làm như vậy theo định dạng cụ thể :

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

Cũng xem tại đây .


Bạn cũng có thể gán các phím khác cho các định dạng khác nhau trong phím tắt của mình ( keybindings.json). Theo mặc định, nó đọc:

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

Cuối cùng, nếu bạn quyết định sử dụng plugin Prettierprettier.rc và bạn muốn thụt lề khác nhau cho 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

Bạn có thể thực hiện một số thay đổi từ "Cài đặt". Ví dụ: các quy tắc javascript bắt đầu bằng "javascript.format". Nhưng để kiểm soát định dạng nâng cao, vẫn cần sử dụng một số phần mở rộng.

Cài đặt quy tắc cho lệnh mã định dạng


6

Một giải pháp phù hợp với tôi (tháng 7 năm 2017), là sử dụng ESLint . Như mọi người đều biết, bạn có thể sử dụng linter theo nhiều cách, trên toàn cầu hoặc cục bộ. Tôi sử dụng nó tại địa phương và với hướng dẫn kiểu google. Họ theo cách tôi thiết lập nó như sau ...

  • 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

Bây giờ bạn sẽ có một .eslintrc.jsontệp gốc của thư mục làm việc của bạn. Bạn có thể mở tệp đó và sửa đổi khi bạn vui lòng sử dụng các quy tắc eslint . Bên cạnh tùy chọn hệ thống cmd+,mở vscode. Trong thanh tìm kiếm, gõ eslintvà tìm kiếm "eslint.autoFixOnSave": false. Sao chép cài đặt và dán trong tệp cài đặt người dùng và thay đổi falsethành true. Hy vọng điều này có thể giúp ai đó sử dụng vscode .


1

Để thay đổi cài đặt định dạng C # (OmniSharp) cụ thể, bạn có thể sử dụng tệp json:
User: ~/.omnisharp/omnisharp.json hoặc %USERPROFILE%\.omnisharp\omnisharp.json
Workspace: omnisharp.json tệp trong thư mục làm việc mà OmniSharp đã được trỏ đến.

Thí dụ:

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

Chi tiết về bài đăng này | lược đồ omnisharp.json (nó đã có trong vscode, bạn có thể chỉ cần CTRL + SPACE nó)

Các phần mở rộng ngôn ngữ khác có thể có các tệp tương tự để thiết lập nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.