2011-01-27 29 views
13

Tôi đang trải nghiệm một cái gì đó gần đây thực sự gây phiền nhiễu và tôi không thể hiểu tại sao nó làm việc đó. Không chắc chắn khi nào nó bắt đầu, bởi vì gần đây tôi đã xóa sạch máy tính của mình, vì vậy có lẽ bản cập nhật gần đây của nó hoặc có thể là từ một thời gian trước.Visual Studio 2010 JavaScript Intellisense tận dụng hàm F trong "function"

Dù bằng cách nào, đây là những gì đang xảy ra. Khi tôi khai báo một hàm nội tuyến nặc danh và bắt đầu gõ phần "function() {...}", phần intelliSense của VS2010 xuất hiện và thay thế hàm chữ thường của tôi bằng hàm "Hàm." Được viết hoa của chính nó. Tôi đoán đây là một số chức năng tĩnh trong JavaScript hoặc JScript hoặc cái gì khác, nhưng tôi không biết. Dù bằng cách nào, nó khi tôi gõ "()" mà nó giả định thats những gì tôi muốn.

Nếu tôi định nghĩa một hàm độc lập nó không bị ảnh hưởng bởi vì tôi không đặt "()" sau đó, vì vậy nó chỉ để lại những gì tôi gõ.

Dưới đây là một số ảnh chụp màn hình về những gì đang diễn ra.
javascript intellisenseenter image description here

Thật khó chịu vì tôi không nhận thấy nó mỗi lần và sau đó, tất nhiên, hàm không thực thi. Tôi cũng làm việc trong VS2008 mỗi ngày và trong năm 2008, cả hai "chức năng" và "Chức năng" được liệt kê trong menu intellisense, nhưng nó mặc định để một chữ thường để nó không ảnh hưởng đến tôi.

Có cách nào tôi có thể ghi đè cài đặt intelliSense không? Tìm một tập tin và loại bỏ "chức năng" một trong danh sách bởi vì tôi sẽ không bao giờ sử dụng nó? Đặt mặc định trở lại lựa chọn "chức năng" chữ thường?

Mọi trợ giúp đều tuyệt vời. Cảm ơn!

-Jorin

+1

+1 này là cực kỳ khó chịu (mặc dù nó bằng cách thiết kế) – SLaks

+1

@SLaks - Theo thiết kế? 'Hàm' là hàm tạo' hàm', và hiếm khi được sử dụng (và thực sự chỉ nên được sử dụng hiếm khi). Nếu ai đó quyết định rằng nó phải là mặc định, họ không thực sự biết những gì họ đang làm. – benekastah

Trả lời

2

Tôi gần như kết luận rằng sẽ hiệu quả hơn khi vô hiệu hóa tệp Intellisense của Visual Studio trong tệp JavaScript. Tuy nhiên, nếu bạn làm giống như hầu hết các khía cạnh của nó, "Tuyên bố hoàn thành" tùy chọn là một cách để khắc phục các vấn đề cụ thể của nó thay thế function với Function khi bạn nhấn không gian:

enter image description here

Cập nhật:

tôi nghĩ khoảng cách paren mới VS2010 của phải đã lạm dụng tôi vào thứ một cách vô thức gõ như thế này (lưu ý khoảng cách giữa chức năng và dấu ngoặc):

$(document).ready(function() { 

}); 

Khi bạn làm điều đó, nó không chèn hoàn thành Intellisense của Function.

Với VS2010 sp1, họ thêm lại một tùy chọn để định dạng các dấu ngoặc mà không có một không gian. Vì vậy, khi tôi nhập các đóng cửa });, nó định dạng khoảng cách paren trở lại:

$(document).ready(function() { 

}); 

... đó là những gì tôi muốn bắt đầu.

Biến đổi lúc đầu, nhưng nó trở thành bộ nhớ cơ khá nhanh.

+0

Thật thú vị, tôi thực sự đã chọn tùy chọn đó. Rõ ràng mặc dù nó nói "chỉ tab hoặc nhập" nó có nghĩa là "chỉ tab hoặc nhập hoặc nhập dấu ngoặc đơn". :-) Vâng, tôi thực sự không muốn vô hiệu hóa intellisense hoàn toàn bởi vì một số dự án này có TON chức năng và nó là tốt đẹp cho việc tìm kiếm những người, nhưng không nhiều khác ... – Jorin

+0

Tôi đã rõ ràng phá vỡ hoàn thành paren kích hoạt thông qua một cái gì đó khác tôi đã không nhận thấy. Đã cập nhật câu trả lời. –

+0

Vâng, tôi đoán tôi sẽ phải có thói quen gõ vào không gian đó. Rất không may. Tôi đã hy vọng một ai đó sẽ biết cách chỉnh sửa các tập tin intellisense hoặc bất cứ điều gì ... – Jorin

2

Vấn đề này có thể được gây ra bởi Resharper, ít nhất là trong Visual Studio 2013. Việc gia hạn được bổ sung thêm file DHtml.js bao gồm "Chức năng". (Đối với bất kỳ plugin nào khác, điều này sẽ là nguyên nhân đủ để tôi gỡ cài đặt nó. Điều tốt là có quá nhiều thứ khác đúng.) Xem câu hỏi này: Javascript Intellisense list too long...

Chỉnh sửa: JetBrains đang sửa lỗi này: (http://youtrack.jetbrains.com/issue/RSRP-400812). Trong thời gian chờ đợi ...

Tùy chọn của trình chia sẻ lại cho phép bạn tắt tính năng tăng cường intellisense theo ngôn ngữ. Để giải quyết vấn đề, bạn có thể vô hiệu hóa javascript khỏi bị ảnh hưởng, như vậy:

enter image description here

+0

Trong khi đúng là Resharper giới thiệu vấn đề này, giải pháp được đề xuất sẽ giết tự động intellisense bằng các ngôn ngữ bạn không chọn. Bạn có thể nhận được intellisense bản địa bằng Ctrl-Spacing mặc dù ... – Steve

+1

@Steve nó chắc chắn không. IMO, javascript không quan trọng là thích hợp hơn với javascript tự ngắt khi bạn nhập. Tất cả chúng ta hãy chờ đợi bản phát hành có chứa bugfix đó, vì vậy nó không còn là một quyết định thay thế ít nhất là crappy. –

+0

Tôi lười biếng, tôi thích Intellisense của tôi :) – Steve

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