2010-05-20 14 views
13

Các quy tắc StyleCop mặc định liên quan là:Làm thế nào tôi có thể làm cho VS2010 chèn sử dụng báo cáo theo thứ tự quyết định bởi quy tắc StyleCop

  1. Nơi using báo cáo bên namespace.
  2. Sắp xếp using báo cáo theo thứ tự bảng chữ cái.
  3. Nhưng ... Systemusing đến trước (vẫn cố gắng tìm hiểu xem điều đó có nghĩa là chỉ using System; hoặc using System[.*];).

Vì vậy, trường hợp sử dụng của tôi:

  • Tôi tìm thấy một lỗi và quyết định rằng tôi cần phải ít nhất thêm một Khẳng định dễ hiểu để làm cho gỡ lỗi ít đau đớn cho các chàng bên cạnh. Vì vậy, tôi bắt đầu nhập Debug.Assert( và intellisense đánh dấu nó bằng màu đỏ. Tôi di chuột qua Debug và giữa using System.Diagnostics;System.Diagnostics.Debug Tôi chọn con trỏ trước đây. Điều này chèn using System.Diagnostics; sau khi tất cả các câu lệnh khác using. Sẽ tốt hơn nếu VS2010 không hỗ trợ tôi bằng cách viết mã mà sẽ không xây dựng do cảnh báo là lỗi.

Làm cách nào để làm cho VS2010 thông minh hơn? Có một số loại thiết lập, hoặc điều này đòi hỏi một add-in chính thức của một số loại?

+2

Hãy nhớ rằng ngay cả MS cũng lưu ý rằng bạn không phải tuân theo tất cả các quy tắc và bản thân họ cũng không phải (re: # 1). – user7116

+0

Hm ... vậy họ không sử dụng quy tắc nào? Nó có được quyết định trên cơ sở dự án không? –

Trả lời

4

Trong năm 2008, tôi sử dụng phần bổ trợ Power Commands. Nó bao gồm một lệnh để sắp xếp và loại bỏ các câu lệnh không sử dụng. Tôi ánh xạ với Ctrl-O, Ctrl-R. Nó không phải tự động, nhưng nó rất nhanh.

2010 cũng có Lệnh Nguồn, nhưng tôi cho rằng sắp xếp và sắp xếp thứ tự sử dụng các câu lệnh hiện được tích hợp. Bạn chỉ cần thiết lập một lối tắt cho nó.

PS. Tôi không sử dụng Resharper vì phí tài nguyên. Mỗi khi tôi nói với mọi người rằng nó đập ổ đĩa cứng của tôi và thúc đẩy sử dụng bộ nhớ thông qua mái nhà, họ nói với tôi để "thử phiên bản mới nhất - nó tốt hơn nhiều bây giờ". Đủ để nói, nó không bao giờ có được ... Tôi sử dụng CodeRush Xpress mặc dù.

+3

Xóa và sắp xếp đã được giới thiệu trong VS2008 – stuartd

3

Bạn có thể làm cho VS2010 thông minh hơn bằng cách sử dụng Resharper (www.jetbrains.com), một trình bổ sung chính thức. Nó có thể làm tất cả những điều này cho bạn (và nhiều hơn nữa), và cũng đáng giá. Resharper bổ trợ "StyleCop cho Resharper" thậm chí có thể kiểm tra vi phạm StyleCop on-the-fly và gạch chân mã của bạn giống như cách Visual Studio làm cho các lỗi.

6

Liên quan đến số 1 của bạn, bạn có thể chỉnh sửa các mục mẫu dự án bằng cách sử dụng các hướng dẫn here hoặc here. Tôi đã làm điều này cho VS 2K8 để làm cho StyleCop và FxCop hạnh phúc theo mặc định, nhưng tôi đã không nhận được xung quanh để làm nó cho năm 2010 như tôi tìm thấy các thủ tục một chút tẻ nhạt và luôn luôn có khả năng một gói dịch vụ VS có thể ghi đè lên chúng .

Ví dụ, tôi chỉnh sửa program.cs trong mẫu ConsoleApplication trông như thế này:

// <copyright file="Program.cs" company="$registeredorganization$"> 
// Copyright (c) $year$ All Rights Reserved 
// </copyright> 
// <author></author> 
// <email></email> 
// <date>$time$</date> 
// <summary></summary> 

namespace $safeprojectname$ 
{ 
    using System; 
    using System.Collections.Generic; 
    $if$ ($targetframeworkversion$ == 3.5)using System.Linq; 
    $endif$using System.Text; 

    /// <summary> 
    /// Contains the program's entry point. 
    /// </summary> 
    internal static class Program 
    { 
     /// <summary> 
     /// The program's entry point. 
     /// </summary> 
     /// <param name="args">The command-line arguments.</param> 
     private static void Main(string[] args) 
     { 
     } 
    } 
} 

và AssemblyInfo.cs trông như thế này:

// <copyright file="AssemblyInfo.cs" company="$registeredorganization$"> 
// Copyright (c) $year$ All Rights Reserved 
// </copyright> 
// <author></author> 
// <email></email> 
// <date>$time$</date> 
// <summary></summary> 

using System; 
using System.Reflection; 
using System.Runtime.InteropServices; 

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information 
// associated with an assembly. 
[assembly: AssemblyTitle("$projectname$")] 
[assembly: AssemblyDescription("")] 
[assembly: AssemblyConfiguration("")] 
[assembly: AssemblyCompany("$registeredorganization$")] 
[assembly: AssemblyProduct("$projectname$")] 
[assembly: AssemblyCopyright("Copyright © $registeredorganization$ $year$")] 
[assembly: AssemblyTrademark("")] 
[assembly: AssemblyCulture("")] 

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components. If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type. 
[assembly: ComVisible(false)] 

[assembly: CLSCompliant(true)] 

// The following GUID is for the ID of the typelib if this project is exposed to COM 
[assembly: Guid("$guid1$")] 

// Version information for an assembly consists of the following four values: 
// 
//  Major Version 
//  Minor Version 
//  Build Number 
//  Revision 
// 
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below: 
// [assembly: AssemblyVersion("1.0.*")] 
[assembly: AssemblyVersion("1.0.0.0")] 
[assembly: AssemblyFileVersion("1.0.0.0")] 

Tôi đã gửi an incident tại Microsoft Kết nối với hiệu ứng là mã được tạo tự động của công cụ của họ phải thỏa mãn StyleCop/FxCop và tài liệu hướng dẫn mã hóa của chúng.

+1

+1 để chỉ làm đẹp các mẫu. – Filburt