ReSharper 2021.3 hỗ trợ Visual Studio 2022 Preview và C# 10

Rate this post

Khoảng một tháng trước, chúng tôi đã xuất bản một bản dựng có hỗ trợ sớm cho Visual Studio 2022 Preview. Theo phản hồi từ người dùng của chúng tôi, ReSharper hoạt động nhanh hơn trong phiên bản x64 mới của Visual Studio. Cuối cùng, chúng tôi quyết định đẩy hỗ trợ này sang chu kỳ phát hành ReSharper 2021.3. Bản dựng EAP đầu tiên của v2021.3 đã có hỗ trợ VS2022 Preview. Không cần tải xuống và cài đặt một bản dựng riêng để chạy ReSharper trong các bản dựng VS2022 Preview – chỉ cần chọn biểu tượng Preview VS2022 trong trình cài đặt dotUltim 2021.3 EAP.

resharper-2021-3-ho-tro-visual-studio-2022-va-c-10

ReSharper 2021.3 hỗ trợ C# 10

C # 10 sắp ra mắt và ReSharper tiếp tục bổ sung một số tính năng sắp tới. Hôm nay, chúng tôi rất vui được bổ sung hỗ trợ cho file-scoped namespaces và global using.

Hãy bắt đầu với file-scoped namespaces. Ngoài việc hỗ trợ chính cú pháp mới, chúng tôi đã thêm một tùy chọn Syntax style mới (ReSharper | Options | Code Editing | C# | Syntax Style | Code body | Namespaces) giúp bạn chọn style mong muốn. Khi bạn chọn style, ReSharper sẽ hiển thị cho bạn mã kiểm tra cần được thay đổi theo style đó và đề xuất cách khắc phục nhanh thích hợp cho bạn. Bạn có thể phổ biến bản sửa lỗi thông qua dự án hoặc thậm chí thông qua toàn bộ giải pháp chỉ bằng một cú nhấp chuột.

Nếu bạn muốn quay lại Syntax style trước đó cho mã, có hai hành động ngữ cảnh: “Convert to file-scoped namespace” và “Convert to block-scoped namespace.”

Bây giờ, hãy xem nhanh global using. Phân tích mã ReSharper nhận thức được các cách sử dụng được đánh dấu bằng từ khóa chung và sử dụng các cách sử dụng này để giải quyết chính xác các ký hiệu trong tất cả các tệp mã trong dự án. Nếu Solution Wide Error Analysis ở trạng thái ON, ReSharper sẽ highlight các hoạt động global using không được sử dụng trong dự án là không được sử dụng với một đề xuất sửa nhanh thích hợp để loại bỏ statement. ReSharper cũng sẽ thông báo cho bạn nếu global using đã được đặt sai vị trí trong tệp.

Phân tích mã

Không có gì lạ khi mọi người sao chép các đoạn mã từ các tài nguyên khác, như stackoverflow.com. Ngày nay, với các kiểu tham chiếu nullable có sẵn trong C#, một số mẫu code đã bao gồm cú pháp NRT. Nhưng điều gì sẽ xảy ra nếu bạn không bật NRT trong giải pháp của mình? Để giúp bạn loại bỏ cú pháp này sau khi dán mã như vậy vào dự án của mình, ReSharper có hai bản sửa lỗi nhanh mới: Replace with JetBrains.Annotations attributes and Remove nullable annotations without ‘#nullable’ context.

Chúng tôi đã thêm một số bản sửa lỗi nhanh mới và một hành động ngữ cảnh cho các hàm cục bộ / anonymous với các hàm đóng:

  • Một quick-fix, Allow closures, để loại bỏ static modifiers khở một hàm cục bộ hoặc một hàn anonymous nếu nó chưa các closures.
  • Một quick-fix, Pass closure as a parameter, để lift các closures lên các tham số.
  • Một hành động ngữ cảnh, Pass closure as a parameter, để lift các closures trong các hàm cục bộ không tĩnh lên tham số.

Có một kiểm tra mới, Simplify string interpolation, với một bản sửa lỗi nhanh tương ứng để thay thế các lệnh gọi phương thức .PadLeft () và .PadRight () với các trình giữ chỗ chuỗi được nội suy với một biểu thức căn chỉnh.

Ngoài việc bổ sung các bản sửa lỗi nhanh mới, chúng tôi đã cải thiện đáng kể hiệu suất daemon cho các tệp bằng các phương pháp khổng lồ bên trong:

  • Các phương thức có biểu thức điều kiện lớn / lồng nhau, biểu thức tuple hoặc biểu thức switch.
  • Các phương thức có rất nhiều kiểu kiểm tra khi các kiểu tham chiếu nullable bị vô hiệu hóa.
  • Các phương thức có nhiều truy cập trình lập chỉ mục khi các loại tham chiếu có thể nullable được kích hoạt.
  • Các phương thức có một số lượng lớn các lần đóng khi các kiểu tham chiếu có thể nullable được kích hoạt.
  • Bây giờ, phân tích mã được hoàn thành nhanh hơn cho các tệp như vậy.

Sao chép tham chiếu mã

Bản phát hành ReSharper 2021.3 mang lại nhiều thay đổi cho tính năng Copy FQN. Trước hết, nó có một tên mới là Copy Code Reference. Chúng tôi nghĩ rằng tên này phản ánh ý nghĩa của đối tượng địa lý tốt hơn.

Ngoài ra còn có một phím tắt, Ctrl + Shift + Alt + C, để gọi nó trực tiếp từ bàn phím. Đừng quên áp dụng lược đồ phím tắt trong ReSharper | Options | Environment | Keyboard | Shortcut Scheme sau khi cài đặt bản dựng EAP để ánh xạ lối tắt này tới hành động.

Chúng tôi đã thêm chức năng mới nếu bạn sử dụng Git làm hệ thống kiểm soát phiên bản. Có các mục liên quan đến GitHub trong pop-up Copy Code Reference cho các dự án được sao chép từ GitHub. Họ tạo một liên kết thích hợp đến kho lưu trữ GitHub để chia sẻ nó ngay lập tức với bất kỳ ai.

Đối với các kho lưu trữ không phải GitHub, bây giờ bạn có thể thêm mẫu URI tùy chỉnh trong cài đặt ReSharper. Tất cả các mẫu này sẽ xuất hiện trong cửa sổ bật lên Tham chiếu mã sao chép. URI mẫu có thể bao gồm các trình giữ chỗ được xác định trước khác nhau như Tên chi nhánh hiện tại, Tên tệp, Số dòng hiện tại, v.v.

Cuối cùng, bản thân pop-upđã được nâng cấp đáng kể. Nó có thiết kế, biểu tượng và định dạng mới.

Hỗ trợ các tệp AnalyzerConfig

Bắt đầu với .NET 5 SDK, bạn có thể định cấu hình các tùy chọn trình phân tích Visual Studio với các tệp AnalyzerConfig chung. ReSharper 2021.3 EAP có thể đọc thông tin kiểu mã từ các tệp AnalyzerConfig global này và sử dụng nó để điều chỉnh các quy tắc của ReSharper cho phù hợp.

Language Injections

Trong ReSharper 2021.3 bạn có thể đánh dấu thông số, trường hoặc thuộc tính của hàm bằng thuộc tính chú thích [LanguageInjection]. ReSharper bắt đầu coi một giá trị chuỗi của một thực thể mã được đánh dấu là một đoạn mã trong một ngôn ngữ được chỉ định. Có các tùy chọn sau của ngôn ngữ được đưa vào: CSS, HTML, JavaScript, JSON hoặc XML. Ngay sau khi bạn thêm thuộc tính, bạn sẽ nhận được đánh dấu cú pháp thích hợp, hoàn thành mã và các tính năng khác ra khỏi hộp bên trong chuỗi. Bạn cần thêm phiên bản xem trước mới nhất của JetBrains.Annotations vào dự án của mình để sử dụng thuộc tính LanguageInjection.

ReSharper C ++

Nếu có một biểu thức có thể được đánh giá trong thời gian biên dịch dưới con trỏ chuột, ReSharper C ++ 2021.3 sẽ hiển thị chú giải công cụ Thông tin nhanh cùng với kết quả đánh giá. Ví dụ: bây giờ bạn có thể tham khảo thông báo về static_assert không thành công để xem biểu thức xác nhận được đánh giá là gì, kiểm tra giá trị của toán tử sizeof hoặc alignof hoặc bất kỳ biểu thức nào khác. Đối với biểu thức nhị phân, bạn có thể di chuột qua từng toán hạng để nhận chú giải công cụ với giá trị của nó hoặc toán tử để nhận chú giải công cụ với kết quả cuối cùng:

ViHoth Corporation

Đại lý phân phối ủy quyền của JetBrains tại Việt Nam