Làm cách nào để định dạng tất cả các tệp trong dự án Visual Studio Code?


Câu trả lời:


78

Bạn có thể sử dụng một tiện ích mở rộng có tên là "Định dạng tệp".

”Sử dụng: Mở bảng lệnh (Ctrl + Shift + P) và nhập" Định dạng tệp "Tạo keybinding thành lệnh 'editor.action.formatFiles'. Nhấp chuột phải vào thư mục không gian làm việc và chọn 'Định dạng tệp' để định dạng tất cả các tệp trong thư mục. "

Nguồn: https://marketplace.visualstudio.com/items?itemName=jbockle.jbockle-format-files


Được khoảng nửa chừng thì nói " An error occurred while running Format Files: Invalid count value"
Aaron Franke

Hoạt động như sự quyến rũ
Dheeraj M Pai

34

Điều này phù hợp với tôi

Cài đặt đẹp hơn:

npm init 
npm i prettier

Thêm tập lệnh sau vào package.json:

"pretty": "prettier --write \"./**/*.{js,jsx,json}\"" 

Chỉ trong trường hợp này, tôi cần định dạng các tệp .js .jsx và .json của mình.

Chạy script:

npm run pretty

3
Có thể muốn thêm "--save-dev" vào lệnh cài đặt npm, không cần điều này làm phụ thuộc sản xuất
reggaeguitar

3
Ngụ ý câu hỏi là về javascript. Tôi không thấy thẻ nào liên quan đến nó.
Emobe

2
Có thể định dạng c/ c++/ c#mã đẹp hơn không? Không - downvote
Herrgott

Bạn cũng có thể dùng eslint --fix nếu bạn sử dụng cả eslint và đẹp hơn.
BeyondTheSea

9

Tôi đã không may mắn tìm thấy một tiện ích mở rộng đang hoạt động theo cách tôi mong đợi vì vậy tôi đã tạo một tiện ích mở rộng. Tôi khuyên bạn nên xem phần mở rộng mà tôi vừa tạo:

https://marketplace.visualstudio.com/items?itemName=lacroixdavid1.vscode-format-context-menu#overview

Nó có thể vẫn còn một số vấn đề, vui lòng báo cáo chúng hoặc đóng góp.


NGƯỜI ĐÀN ÔNG CỦA TÔI! Cảm ơn vì đã tiết kiệm thời gian. Điều này hoạt động tốt với HTML.
Rum Jeremy

4

Giải pháp đơn giản nhất mà tôi đã tìm thấy là như dưới đây.

  • Cài đặt đẹp hơn trong vscode.
  • Tạo tệp .prettierrc và định cấu hình nó theo cách bạn muốn.
  • Chạy lệnh sau trong bảng điều khiển vscode.

npx prettier --write "**/*.ts" (Thêm loại tệp regex theo nhu cầu)


1

Như @herrbischoff đã nói, hiện không có cách nào để định dạng tất cả các tệp trong một dự án.
Tuy nhiên nó sẽ là một tính năng hữu ích.

Những gì nó có thể làm là định dạng tất cả các tệp chưa được lưu bằng cách bật tính năng tự động lưu và tự động định dạng.

Nếu không, bạn sẽ cần một tập lệnh shell hoặc một phần mở rộng hoặc một số chương trình ngoại vi khác (như trình kiểm tra tslint có thể tự động sửa lỗi) có khả năng thực hiện điều này.

Tôi đã gặp vấn đề với điều này và thật tệ khi mở tất cả các tệp bằng tay


0

Hiện tại không có cách nào để làm điều đó và nó có vẻ như là một tính năng đặc biệt hữu ích để có. Hay nói một cách khác: nó sẽ là một tính năng hữu ích nếu bạn có thể hoàn toàn tin tưởng vào nó, điều mà bạn không thể.

Bạn sẽ phải đặt rất nhiều niềm tin vào logic tự động định dạng của các ngôn ngữ được sử dụng để không làm hỏng và có thể gây ra lỗi. Dù sao thì bạn cũng cần phải xem xét các thay đổi theo cách thủ công, do đó, cách tiếp cận này sẽ không dẫn đến mức tăng năng suất có thể đo lường được.

Nếu bạn đang làm việc với một cơ sở mã đã được nâng cấp nghiêm túc và không quan tâm đến các vấn đề có thể xảy ra, tôi khuyên bạn nên chạy một lệnh shell đơn giản với bộ định dạng CLI của các ngôn ngữ tương ứng. Ví dụ cho mã C ++, sử dụng định dạng clang :

find . -iname *.cpp -exec clang-format {} +

Lệnh này sẽ tìm tất cả các tệp cpp một cách đệ quy và sẽ chạy chúng thông qua trình định dạng với cài đặt mặc định.

Quá trình này về cơ bản giống nhau đối với bất kỳ ngôn ngữ nào, ví dụ như JavaScript (với js-beauty ):

find . -iname *.js -exec js-beautify {} +

Chỉ cần đảm bảo rằng bạn xem lại bất cứ điều gì xuất hiện. Ngoài ra, rất có thể viết lệnh này vào VScode - hoặc chỉ chạy nó trong thiết bị đầu cuối tích hợp sẵn.


18
Làm thế nào nó sẽ không phải là một tính năng hữu ích; nếu bạn thay đổi quy tắc định dạng, tốt hơn nên áp dụng quy tắc đó cho tất cả các tệp cùng một lúc, thay vì để các thay đổi định dạng được trộn lẫn với các thay đổi mã khác.
slikts

1
Nó khá rõ ràng: bởi vì nó có thể nguy hiểm. Mọi định dạng tự động được áp dụng trên tất cả các tệp, đặc biệt là các dự án mà bạn không biết rõ, có thể bị hỏng nhiều hơn những gì nó sửa được. Chỉ cần nghĩ đến các ngôn ngữ như Python, nơi mà thụt lề quan trọng. Định dạng lại tự động không được chọn sẽ phá vỡ mọi thứ. Tất nhiên bạn có thể tự do tìm ra điều đó cho riêng mình một cách khó khăn.
herrbischoff

1
Tôi đã làm việc này trong nhiều năm với Intellij và Resharper và chưa bao giờ gặp sự cố. Không có "cách khó" thực sự, nếu tôi tin tưởng định dạng đủ để thực hiện nó tự động cho một tệp, tôi đủ tin tưởng cho tất cả các tệp khác. Tôi khuyên bạn nên chọn một cách rõ ràng các quy tắc mặc định của IE để tắt và từ từ bật chúng lên.
Bốn mươi hai

3
Theo lập luận này, định dạng toàn bộ tệp sẽ quá nguy hiểm. Bạn chỉ có thể định dạng một khối. Nếu toàn bộ tệp là OK, điều gì sẽ xảy ra nếu tôi chọn HAI tệp trong cùng một thư mục? Nếu vẫn ổn, nếu tôi chọn một thư mục thì sao? Có rất nhiều trường hợp sử dụng (ví dụ: @slikts) trong đó điều này có ý nghĩa hoàn hảo và rất nhiều môi trường (bao gồm cả python) nơi các bộ định dạng / bộ chỉnh sửa / bộ chuẩn hóa mã hoạt động tốt.
Marvin

2
Đây có vẻ như là một phản ứng khá cố chấp. Không khó để bắt gặp một cơ sở mã (không phải Python) với vô số lỗi ký kết. Hành động mặc định là định dạng tệp bằng các quy tắc hiện tại, đảm bảo các bản dựng dự án, thử nghiệm vượt qua, sau đó xem xét tệp của bạn trong git (có thể bỏ qua khoảng trắng). Tôi đăng ký một phương pháp cho phép tôi thực hiện việc này với một dự án hơn là các tệp đơn lẻ.
lorengphd

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.