8

Phiên bản ngắn- có cách nào để tắt Visual Studio Intellisense cho từ khóa đối tượng không.Có cách nào để tắt Visual Studio tự động hoàn thành cho từ khóa đối tượng

Phiên bản dài- Tôi đang sử dụng Visual Studio 2008 và về cơ bản tôi đang sử dụng các loại ẩn danh. Tôi bắt đầu gõ một cái gì đó như:

Assert.AreEqual("/SomePath/Stuff", GetOutboundUrl(

tôi gõ vào new {

Sau đó, tôi thấy rằng Visual Studio đã công nhận rằng phương pháp GetOutboundUrl mất một đối tượng và thay đổi mã để new object{. Bây giờ phải trong thời gian này là tuyệt vời, ngoại trừ hai lý do:

1) Tôi hiếm khi có mã sử dụng đối tượng kiểu.

2) Tôi thực sự đang cố gắng tạo một loại ẩn danh không phải là một đối tượng, vì vậy tính năng này thực sự là một trở ngại.

Chữ ký cho GetOutboundUrl là như sau (từ cuốn sách Pro khuôn khổ ASP.NET MVC nếu có ai quan tâm):

private string GetOutboundUrl(object routeValues) 

Tôi tự hỏi nếu có một cách để tắt tính năng này nhưng chỉ cho đối tượng từ khóa- Tôi muốn xem liệu tôi có thực sự bỏ lỡ tính năng tự động hoàn thành trên đối tượng hay không (cá nhân tôi không nghĩ rằng tôi sẽ làm).

Tôi nhận thấy rằng tôi có thể tắt tính năng này cho tất cả từ khóa bằng cách bỏ chọn "Đặt từ khóa trong danh sách hoàn tất", nhưng tôi chỉ muốn tắt tính năng này cho đối tượng.

+0

FYI, liên quan (lừa?) Qustion: [http://stackoverflow.com/questions/717252/ làm thế nào-do-i-stop-visual-studio-từ-chèn-đối tượng-khi-i-type-new] (http://stackoverflow.com/questions/717252/how-do-i-stop-visual-studio -from-inserting-object-khi-i-type-new). Câu trả lời được chấp nhận cho câu hỏi đó giống như gợi ý ở trên: xóa "{" khỏi danh sách ký tự trong Công cụ | Tùy chọn | Trình chỉnh sửa văn bản | C# | IntelliSense. FWIW, giải pháp "remove {from intellisense dialog" làm việc cho tôi trên VS2008 với SP1. John, giải pháp này có phù hợp với bạn không? Theo bình luận của OrbMan ở trên, bản sửa lỗi này có thể không hoạt động với mọi người. OrbMan, –

Trả lời

2

Nếu không thay đổi cài đặt Visual Studio thực tế (mà tôi nghi ngờ tồn tại), bạn có thể nhập "mới", sau đó ESC, tiếp theo là "{". Nó không phải lý tưởng, nhưng nó giữ cho bạn khỏi phải xóa từ "đối tượng" mỗi lần.

Bạn có thể giải quyết tình huống cụ thể này bằng cách chỉnh sửa tùy chọn: "Trình chỉnh sửa văn bản" -> "C#" -> "IntelliSense" => "Cam kết bằng cách nhập các ký tự sau:". Gỡ bỏ "{".

+0

Cách nhấn thoát là giải pháp hiện tại của tôi đối với vấn đề - cảm ơn đề xuất mặc dù nó có thể hữu ích cho những người khác đọc về điều này. – RichardOD

+0

Tôi thực sự đã thử xóa "{" như đã đề xuất ở trên, khởi động lại Visual Studio và vẫn thêm "đối tượng" khi tôi nhập "{". – RedFilter

+0

OrbMan, khi tôi chạy thử nghiệm, tôi đã xóa cả "{" và "}". Điều đó có hiệu quả với bạn không? (Nó đã làm cho tôi.) –

1

Điều tôi làm khi intellisense gây khó chịu là nhận xét một vài dòng trống, viết mã của tôi trên các dòng đó, làm nhận xét, sau đó bỏ ghi chú khi tôi đi qua. Thì đấy, bạn có thể viết bất cứ điều gì bạn muốn và intellisense sẽ không mông in. Những lúc khác, khi bạn muốn intellisense, nó không bị vô hiệu hóa. Tôi hy vọng điều này sẽ giúp ích cho ai đó!

+3

Buồn những điều mọi người phải làm để có được xung quanh "tính năng" của Microsoft. –

2

tôi đã thực hiện một ReSharper Sống mẫu:

Shortcut: new 

Contents: 
new { $END$ } 

Bây giờ tôi có thể gõ n-e-w-TAB và tôi kết thúc với "mới {}" và con trỏ của tôi giữa curlies.

Nó không lý tưởng, nhưng tốt hơn.

+1

Tôi có một điểm tương tự với JavaScript để tạo các hàm ẩn danh, hàm tạo func-TAB() {$ END $} –

1

Để tắt tùy chọn IntelliSense TẮT theo mặc định

Trên menu Công cụ, bấm Tùy chọn.

Chọn thư mục Trình chỉnh sửa văn bản.

Chọn thư mục cho ngôn ngữ bạn muốn tùy chỉnh IntelliSense.

Trong trang thuộc tính chung, hộp kiểm rõ ràng cho các tính năng IntelliSense mà bạn không muốn:

Auto list members applies to List Members 

Parameter information applies to Parameter Info