2011-01-31 46 views
9

Tôi đang sử dụng VS 2010 với chức năng chia sẻ lại. Nếu tôi có một lớp được gọi là ConfigParserTests và sau đó viếtTự động hoàn thành Resharper (hoặc Visual Studio)

new ConfigParser(

mã sẽ tự động hoàn chỉnh để

new ConfigParserTests()

mà không phải là những gì tôi muốn. Bất kỳ ý tưởng làm thế nào để vô hiệu hóa tính năng khó chịu này.

[Chỉnh sửa]

muốn là gì là để viết ra

new ConfigParser()

mà không cần nhấn "Esc". Trong trường hợp này tôi đang sử dụng TDD để ConfigParser không tồn tại.

[/ Chỉnh sửa]

Tôi đã được nhìn xung quanh trong cả resharper và VS IntelliSense menu mà không tìm thấy bất cứ điều gì hữu ích.

Trả lời

3

Chọn Chia sẻ lại \ Tùy chọn. Từ danh sách bên trái, chọn Hành vi Enirionment \ Intellisence \ Completion.

Sau đó, vô hiệu hóa các hộp kiểm bên dưới "mục duy nhất Tự động hoàn chỉnh với:"

5

Nó không rõ ràng cho dù bạn đang phàn nàn về những tên lớp nó điền vào, hoặc các dấu ngoặc đơn. Tôi sẽ giải quyết cả hai.

Nếu lớp bạn đang cố gắng sử dụng nằm trong một không gian tên khác và bạn chưa thêm using thích hợp, thì việc hoàn thành mã chỉ làm những gì bạn mong đợi - bạn đã nói với nó không sử dụng các không gian tên, và bạn không bảo nó sử dụng cái có ConfigParser trong đó; do đó, nó sử dụng các trận đấu gần nhất, như mong đợi.

Nhưng ReSharper có các phím tắt có thể giúp bạn tiết kiệm công việc bằng cách tìm lớp và thêm using cho bạn. Trong trường hợp này, tôi sẽ đề nghị bạn xem xét different Ctrl+Space options trong ReSharper. Bạn có thể viết new cp < Ctrl + Alt + Space > và ReSharper sẽ cung cấp cho bạn một menu bật lên hỏi xem bạn có nghĩa là ConfigParser hoặc ConfigParserTests. Khi bạn nhấn Enter để chọn cái bạn muốn, nó sẽ thêm using cần thiết vào đầu tệp của bạn và hoàn thành new ConfigParser() bằng con trỏ giữa các dấu ngoặc đơn.

(Nếu lớp ConfigParser chưa hề tồn tại, thì đó là một trong những trường hợp bạn không muốn hoàn thành mã. Chỉ cần gõ new ConfigParser và sau đó nhấn Esc trước khi gõ Dấu ngoặc đơn mở của bạn.)

Nếu bạn vấn đề là nó thêm dấu ngoặc đơn, hãy lưu ý rằng nếu bạn nhập ) ReSharper sẽ không thêm dấu ngoặc đơn thứ hai - nó sẽ nhận ra rằng bạn đang nhập một dấu ngoặc đơn đã được thêm vào, vì vậy nó sẽ di chuyển con trỏ đến đúng. Nếu vì một lý do nào đó bạn vẫn không muốn nó hoàn thành paren mở cho bạn, @jdv-Jan de Vaan's answer giải thích nơi thay đổi tùy chọn này.

+0

+1: Tôi sẽ nhớ điều đó. –

+0

Đó là tất cả về các phím tắt. – MrBoJangles

5

Khi thực hiện TDD, bạn nên đặt Intellisense VS vào chế độ gợi ý thay vì chế độ hoàn thành thông thường.

Sự khác biệt được mô tả here

Thật không may Resharper tiếp quản IntelliSense vì vậy bạn không thể thay đổi chế độ mà không khử hoạt resharper.

7

Mở Tùy chọn cửa sổ, điều hướng đến Intellisense> Autopopup. Bạn sẽ thấy các tùy chọn tự động hoàn tất tương ứng với một số trường hợp và phân loại theo ngôn ngữ:

Changing Resharper auto-complete behaviour


Như bạn thấy, bạn có thể chọn cho từng trường hợp duy nhất:

  • Đừng trưng bày.

  • Hiển thị nhưng không chọn trước. (có vẻ phù hợp với trường hợp của bạn)

  • Hiển thị và chọn trước. (mặc định)


tùy chọn khác nhau có thể được lựa chọn trong trường hợp hoặc các ngôn ngữ khác nhau. Ví dụ, bạn có thể chỉ định các hành vi khác nhau trong C#:

  • Sau dot

  • Sau 'mới'

  • Trong doc bình luận

  • Letter và chữ số

  • Giá trị dự kiến ​​là

HTH

0

Nếu bạn đang sử dụng resharper 6.0 tôi sẽ nâng cấp lên 6.1 như đã có rất nhiều các loại preselecting lỗi giới thiệu trong 6.0 và cố định trong 6.1.

0

Chọn Resharper \ Options \ Môi trường \ Intellisence \ Hoàn Hành vi Sau đó thay đổi các tùy chọn trong “Tự động chèn dấu ngoặc đơn sau khi hoàn tất: có thể tắt tất cả cùng nhau Giọng nói thực sự cũ của người đàn ông Tôi muốn nhập(), chỉ mở hoặc Cod Hip trẻ er Dude Tôi thích chia sẻ lại để làm tất cả cho tôi người đàn ông

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