2011-12-27 11 views
5

Tôi là một fan hâm mộ lớn của CodeRush và triết lý của họ xung quanh mẫu. Tại công việc hiện tại của tôi, chúng tôi sẽ làm một số lượng lớn các cặp và sự đồng thuận là một sở thích cho ReSharper (v6), mà khá nhiều đặt tôi ở một nơi mà tôi PHẢI sử dụng nó.Mẫu kiểu nhập CodeRush cho ReSharper

Tôi không tìm cách bắt đầu cuộc chiến CodeRush/Resharper tại đây. Có rất nhiều điều để thích về Resharper, nhưng có một điều tôi đang gặp khó khăn trong quá khứ ở ReSharper.

Cơ chế mẫu trực tiếp của ReSharper, ngoan ngoãn, không có các khái niệm được tích hợp để nhập theo cách CodeRush thực hiện (ít nhất không phải như tôi có thể biết). Một ví dụ đơn giản là như sau. Để gen đoạn mã sau:

public String MyStringProperty { get; set; } 

Trong CodeRush ... tôi có thể gõ "như" ('a' cho AutoProperty và 's' cho chuỗi), sau đó chỉ cần thay đổi tên của tài sản.

Trong ReSharper, tôi cần nhập "prop" (cho Thuộc tính), sau đó đặt loại và tên.

Có vẻ như không phải là khái niệm tương tự về nhận thức loại hoặc lối tắt loại trong Mẫu trực tiếp của ReSharper. Như vậy, dường như không có bất kỳ điều gì giống với nhiều mẫu gồm hai và ba ký tự để giúp bạn nhập các biến, thuộc tính, phương pháp, v.v ...

Vì vậy, cuối cùng là câu hỏi sau tất cả nền đó. Có cách nào để nhân rộng khái niệm này của "mẫu đã nhập" trong ReSharper mà không tạo mẫu trực tiếp mới cho mỗi kết hợp mẫu/kiểu không?

Trả lời

4

Hiện nay, ReSharper làm không hỗ trợ mẫu sử dụng mà bạn đang đề cập đến. Tuy nhiên, có hai tùy chọn tôi có thể nghĩ để làm điều này có thể.

  • Một tùy chọn là tạo mẫu trực tiếp cho tất cả các trường hợp sử dụng phổ biến. Tôi sử dụng this file, nhưng xin lưu ý rằng nó chưa được thử nghiệm với R # 6.1.
  • Một tùy chọn khác sẽ đơn giản là viết một trình cắm để thực hiện việc này. Các ReSharper SDK có một ví dụ HtmlZen mà làm một cái gì đó rất giống nhau, tức là mở rộng một chuỗi DSL thành một đoạn mã. Bạn có thể dễ dàng làm tương tự cho việc mở rộng ghi nhớ.

Lưu ý rằng tùy chọn nào bạn chọn, bạn sẽ không nhận được một khả năng mở rộng các mẫu bằng cách nhấn Space — này chỉ đơn giản là không thể trong ReSharper ngay bây giờ.

Vui lòng cho tôi biết nếu bạn có thêm câu hỏi.

Dmitri

+0

Dmitri, Cảm ơn bạn đã thông tin. Tôi sẽ xem những gì tôi có thể làm. Mở rộng một mẫu với không gian thực sự không phải là vấn đề đối với tôi. Điều đó thực sự chỉ được sử dụng để mô tả quá trình. Tab, hoặc bất kỳ cơ chế mở rộng nào khác là tốt. –

+0

Tôi vừa thử nhập tệp ở trên vào 6.1, có vẻ như hoạt động tốt. –

3

Tôi không nghĩ rằng có thể nhận được Resharper để có mẫu có tên một chữ cái theo sau là một loại chữ cái. Bạn sẽ phải tạo mẫu mới cho từng loại, ví dụ: 'dưới dạng' và xác định nó là:

public string $NAME$ { get; set; } 

Bạn có thể muốn thay đổi vị trí sẵn có, tức là các tệp C# được phép khai báo thành viên kiểu.

Bạn có thể đổi tên 'chống đỡ' templete để chỉ 'a', sau đó bạn sẽ gõ: 'a', TAB, 's', TAB, TAB, 'property_name', TAB

+0

Yup, đó là khá nhiều những gì tôi đã khám phá ra. Cảm ơn. –