2009-08-17 41 views
27

Lưu ý để nhân viên của Google, câu hỏi này là hơi quá hạn như tính năng được yêu cầu hiện đang được hỗ trợ trong phiên bản hiện tại của ReSharper 2017.3.1ReSharper định dạng: sắp xếp toán hạng bằng

Tôi thích định dạng mã của tôi để sắp xếp bên phải của toán hạng bằng nhau.
Giống như ở đây:

bool canRead  = false; 
bool canReadClass = true; 
string className = boType.Name; 

Tôi đã chuyển sang ReSharper thời gian gần đây và thấy nó rất hữu ích, nhưng không thể tìm thấy tùy chọn cho phép tôi mã định dạng theo cách mô tả.

Bạn có biết liệu có tùy chọn/plugin như vậy không?
Có lẽ bạn biết ngoài giải pháp ReSharp cho phép điều đó?

EDIT:
Làm thế nào để quyết định những gì một phần của mã sẽ được sắp xếp?
Quy ước của tôi là căn chỉnh tất cả các biến trong cùng một khối.
Bằng "chặn", tôi có nghĩa là một phần của mã không được chia cho các dòng trống.

ví dụ

// First block 
int  count  = 10; 
string name  = "abc"; 
bool  calculate = true; 
..... 
..... 
// Second block 
MyOwnType myType = new MyOwntype(); 
int   count = 10; 

EDIT -2
tôi đã mở R# ticket cho việc này. Nếu có ai quan tâm please vote!

+0

Lưu ý với nhân viên Google, ReSharper 2017.3.1 hỗ trợ tính năng này – MickyD

Trả lời

1

Theo như tôi biết, rất tiếc, không thể sử dụng tính năng chia sẻ lại.

+0

Lưu ý với nhân viên Google, đây là thông tin lỗi thời. ReSharper 2017.3.1 hỗ trợ tính năng này – MickyD

10

Hiện tại (hiện tại) không có cách nào để thực hiện việc này ngoài hộp trong ReSharper. May mắn thay, ReSharper có một API mở rộng rất phong phú (mặc dù tài liệu kém). Tôi đã dành rất nhiều thời gian với Reflector cố gắng tìm ra mọi thứ.

Chúng tôi sử dụng hướng dẫn căn chỉnh tương tự cho các thành viên lớp học trong công ty mà tôi làm việc (đến cùng cực, chúng tôi cũng căn chỉnh các thông số phương pháp). Tôi đã viết một plugin cho ReSharper để giúp tôi làm điều đó. Đó là một "Mã Cleanup" mô-đun, chạy đôi khi trong việc dọn dẹp mã (Ctrl - E, Ctrl - F) và gắn mã cho bạn. Nó cũng làm cho lớp học sealed, nếu có thể.

Một số ví dụ:

Phương pháp tham số:

public void DoSomething(string  name, 
         int   age, 
         IEnumerable coll) 

(bạn sẽ cần phải thay đổi Bọc thông số chính thức để Chop luôn trong Options-> Formatting còn phong cách> Line Breaks và Wrapping để hoạt động bình thường)

Constants:

private const int RESOURCEDISPLAYTYPE_DOMAIN = 0x00000001; 
private const int CONNECT_COMMANDLINE  = 0x00000800; 
private const int CONNECT_INTERACTIVE  = 0x00000008; 
private const string RESOURCE_NAME    = "Unknown"; 


Bạn có thể tải về mã nguồn từ SkyDrive của tôi.
Chỉnh sửa Dường như tôi đã mất quyền truy cập vào SkyDrive đó và cũng mất các tệp. Đây là trước khi github :(

Xin lưu ý rằng bạn sẽ cần một vài điều để biên dịch/debug nó:

  1. Cập nhật các Command Line Arguments trong Debug tab trong Project Properties với đường dẫn chính xác của DLL đầu ra :

    /ReSharper.Plugin "X:\<projects>\MyCompany.CodeFormatter\MyCompany.CodeFormatter\bin\Debug\MyCompany.CodeFormatter.dll"

    này cho phép gỡ lỗi plugin qua F5, và nó sẽ được tự động cài đặt trong Plugins ReSharper trong mới Visual Studio dụ mà sẽ mở.

  2. Plugin dành cho ReSharper 4.5 và nó tham chiếu đến các tệp DLL của phiên bản này. Nếu bạn cài đặt ReSharper ở bất kỳ nơi nào khác ngoại trừ C:\Program Files\JetBrains\ReSharper, bạn sẽ phải sửa các tham chiếu.
  3. này không sắp xếp các biến bên trong phương pháp, nhưng nó không phải là khó để thêm :)

Sau khi bạn cài đặt này, chỉ cần chạy Code Cleanup để sửa chữa sự liên kết của bạn (Tôi chưa bao giờ nhận được trả lời từ JetBrains về cách để làm điều này trong khi định dạng dấu ngoặc đơn/dấu chấm phẩy, thật không may).

Hội đã được đổi tên để bảo vệ người vô tội :)

Chúc may mắn!

+0

Cảm ơn bạn rất nhiều vì đã chia sẻ giải pháp của bạn! Thực sự đánh giá cao nhiều! BTW Tôi biên soạn mã, thay đổi dòng cmd để trỏ dll của tôi nhưng có vẻ như không được cài đặt sau F5. Tôi đang làm gì sai? – Maciej

+0

OK - Tôi đã sao chép giải pháp vào ổ C: \ và bây giờ có vẻ đang hoạt động - sẽ kiểm tra ngay bây giờ! – Maciej

+0

Tôi vừa thử nghiệm và plugin hoạt động như mong đợi. Cảm ơn. Thật không may (như bạn đã đề cập) nó không căn chỉnh các biến bên trong các phương thức. Nhìn nhanh vào mã của bạn và nó không phải là dễ dàng như vậy cho tôi để thêm này. Cần tìm hiểu thêm về ngữ nghĩa của RS. Nhưng tôi chắc chắn sẽ cố gắng và chia sẻ cộng đồng nếu tôi đã làm điều đó. :) – Maciej

10

Tôi nghĩ cần lưu ý rằng Visual Studio Productivity Power Tools có tính năng Điều chỉnh căn chỉnh. Đây là liên kết đến số Visual Studio 2013 Productivity Power Tools.

+0

Wow. Điều này có vẻ là những gì tôi đã nhìn. Rất tiếc, chúng tôi không có VS2010 trong tập đoàn của tôi: ( – Maciej

+0

Mã nguồn của tiện ích này cũng có sẵn. Xem liên kết VS Gallery http://visualstudiogallery.msdn.microsoft.com/en-us/0cc34d69-c6f1-41e3-ac6e-5de071b3edc8 –

+0

Tôi sẽ cung cấp cho 100 này nếu tôi có thể.Cảm ơn cho điều này .. –

8

Bạn có thể thử này: Code Alignment

Nó hỗ trợ

  • Align bởi ... (Dialog)
  • Align bởi vị trí ... (Dialog)
  • Align bởi Equals
  • Căn chỉnh theo m_
  • Căn chỉnh theo "
  • Al bắt đầu bằng.
  • Align bởi Space
+1

Điều này có vẻ tốt Chỉ có bất lợi tôi tìm thấy là nó sử dụng không gian để align nhưng tôi thích TAB ... – Maciej

+6

tab không tốt cho điều này, bởi vì nếu người khác có khác nhau Chiều rộng của các tab, nó sẽ không được căn chỉnh Các tab chỉ tốt ở đầu dòng – Andrej

1

Productivity Power Tools 2012 cũng có một lệnh cho điều này: Ctrl-Alt-]

goodies khác là rõ ràng đó là tốt.

+0

Tôi biết điều này là cũ.Tôi chỉ cần đi qua này.Tôi đã có Power Tools cài đặt, nhưng không biết nó có sự liên kết Tôi thấy rằng trong các thiết lập, nhưng không phải là phím tắt. – fizch

Các vấn đề liên quan