Eclipse Intellisense?


92

ฉันจะบอกให้ Eclipse ให้คำแนะนำโดยอัตโนมัติขณะพิมพ์ได้อย่างไร ฉันกำลังมองหาฟีเจอร์ที่คล้าย Visual Studio Intellisense กับ Resharper

ตอนนี้ต้องกดCTRL+ Spaceทุกครั้ง

คำตอบ:


78

คุณไม่จำเป็นต้องกดCTRL* spaceแต่ความล่าช้าอาจใหญ่เกินไปหรือคุณไม่ชอบทริกเกอร์ (ค่าเริ่มต้นคือ ".") ไปที่

หน้าต่าง -> ค่ากำหนด -> Java / Editor / Content Assist

และเปลี่ยนการตั้งค่าภายใต้การเปิดใช้งานอัตโนมัติตามที่คุณต้องการ

หากไม่ได้ผลสำหรับผู้ใช้ windows ให้ดูคำตอบนี้


1
ผู้ใช้ Kevin Rossi พยายามแก้ไขเพื่อชี้ให้เห็นสิ่งนี้ (ซึ่งเป็นความคิดเห็นจริงๆ): "สิ่งนี้ใช้ไม่ได้กับ Eclipse Juno C / C ++ distro"
Denys Séguret

ตัวแก้ไขแต่ละตัวใน Eclipse อาจมีทริกเกอร์การเปิดใช้งานอัตโนมัติของตัวเอง - การเปิดใช้งานด้วยอักขระเดียวกันจะไม่สมเหตุสมผลในทุกภาษา
nitind

ใน Mac คือADT -> Preferences -> Java/Editor/Content Assist
Adil Malik

172

ฉันเข้าใกล้พฤติกรรมเหมือน VisualStudio มากขึ้นโดยตั้งค่า "ทริกเกอร์การเติมข้อความอัตโนมัติสำหรับ Java" เป็น

.(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

และตั้งค่าการหน่วงเวลาเป็น 0

ตอนนี้ฉันต้องการทราบวิธีตั้งชื่อวิธีการเติมข้อความอัตโนมัติเมื่อฉันกด (เช่นเดียวกับที่ Intellisense ของ VS ทำ


1
คราสรุ่นใด กล่องข้อความ "ทริกเกอร์การเปิดใช้งานอัตโนมัติสำหรับ Java" ช่วยให้ฉันป้อนอักขระได้เพียง 4 ตัว
Zesty

3
นี้ได้ผลดีมาก ดีกว่ามากเนื่องจากจะแสดงตัวแปรท้องถิ่นและทุกอย่างในขณะนี้ ขอบคุณ! @ HappyCoder4U สิ่งนี้อาจไม่ช่วย แต่ฉันใช้ eclipse 3.7M5
Howler

2
คุณเป็นอัจฉริยะ :) ไม่มีการตั้งค่าดังกล่าวสำหรับภาษาที่ไม่ใช่ java :(
Ivan G.

1
น่ากลัว ขอขอบคุณ! การใช้ Eclipse บน Mac (3.6.1) ชื่อพารามิเตอร์คือ 'ทริกเกอร์การเปิดใช้งานอัตโนมัติสำหรับ Java'
ninjaPixel

4
ทุกอย่างใช้งานได้ แต่ตอนนี้ฉันมีพฤติกรรมที่น่ารำคาญมาก: สมมติว่าฉันต้องการพิมพ์ "private int counter;" ฉันเริ่มต้นด้วยส่วนตัวและการเติมข้อความอัตโนมัติจะเข้ามาพร้อมกับคำแนะนำบางอย่าง (คำแนะนำคือ PrivateCredentialPermission) เมื่อฉันพิมพ์ private เสร็จแล้วและกด "space" PrivateCredentialPermission จะถูกแทรก วิธีแก้ปัญหานี้หรือไม่?
VM4

41

โทนี่เป็นอัจฉริยะที่บริสุทธิ์ อย่างไรก็ตามเพื่อให้บรรลุการเติมอัตโนมัติที่ดียิ่งขึ้นให้ลองตั้งค่าทริกเกอร์เป็นสิ่งนี้:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz =.(!+-*/~,[{@#$%^&

(จัดเรียงโดยเฉพาะตามลำดับการใช้งานเพื่อประสิทธิภาพที่เร็วขึ้น :)


2
วิธีนี้แนะนำจุดบกพร่องบางอย่าง ตัวอย่างเช่นถ้าฉันพิมพ์=มันจะแนะนำบางอย่างทันที ถ้าฉันกดเว้นวรรค= มันจะแทรกนัดแรกโดยอัตโนมัติ
theGreenCabbage

การตรวจสอบข้อเสนอ Java ข้อเสนอประเภท Java และข้อเสนอที่ไม่ใช่ประเภทจาวาและย้ายข้อเสนอเหล่านี้ไปด้านบนตามลำดับได้ผลสำหรับฉัน
Shailendra Singh Rajawat

ดูคำถามล้นสแต็กนี้สำหรับวิธีแก้ปัญหาพื้นที่: stackoverflow.com/questions/14297735/…
William Dutton

อักขระพิเศษทั้งหมดจะทำให้ Intellisense ทำงานได้อย่างราบรื่นยกเว้นช่วงเวลา โดยทั่วไปหากคุณไม่ต้องการให้ Intellisense หลังจากพิมพ์อักขระคุณไม่ต้องการให้อยู่ในรายการนี้
Andrew

6

หากไม่ทำงานแม้ว่าคุณจะเปิดใช้งาน Code Assist อยู่แล้วไฟล์คอนฟิกูเรชันของ Eclipse อาจเสียหาย วิธีแก้ปัญหาที่เหมาะกับฉัน (ใน Eclipse 3.5.2) คือ:

  1. ปิด Eclipse
  2. เปลี่ยนชื่อไดเร็กทอรีพื้นที่ทำงาน
  3. เริ่ม Eclipse (สิ่งนี้จะสร้างไดเร็กทอรีพื้นที่ทำงานใหม่)
  4. นำเข้า (พร้อมสำเนา) โครงการ Java จากพื้นที่ทำงานเก่า

แก้ไขให้ฉันด้วย
Kenci

วิธีแก้ปัญหาที่ดีมันเป็นประโยชน์สำหรับฉันจริงๆ Eclipse ของฉันไม่สามารถแสดง intellisense หลังจาก (.) ฉันต้องใช้ ctrl + space 3 ครั้งเพื่อแสดงขอบคุณสำหรับวิธีแก้ปัญหาที่ดี :-)
มูฮัมหมัด

4

ครั้งหนึ่งฉันเคยมีปัญหาเดียวกันจากนั้นฉันก็ค้นหาและพบสิ่งนี้และมันก็ใช้ได้สำหรับฉัน:

ฉันไม่ได้ทำเครื่องหมายในบางช่องดังนั้นฉันจึงตรวจสอบอีกครั้งจากนั้นก็ใช้งานได้ เพียงไปที่

Windows> ค่ากำหนด> Java> Editor> Content Assist> Advanced

และทำเครื่องหมายในช่องที่คุณต้องการ


นอกจากนี้คุณสามารถจัดเรียงข้อเสนอตามลำดับความสำคัญของคุณ หากต้องการแสดงวิธีการและคุณสมบัติที่เกี่ยวข้องกับตัวระบุของคุณให้ใส่ Java Proposals (Task Specific) ก่อน
Codeek

4

คำตอบของ d3dave นั้นเจ๋งมาก อย่างไรก็ตาม theGreenGarbage กล่าวถึงปัญหาเกี่ยวกับเรื่องนี้ซึ่งฉันก็พบว่าค่อนข้างน่ารำคาญเช่นกัน นี่คือสิ่งที่ไม่ได้แนะนำบางสิ่งทันทีหลังจากเครื่องหมาย '=' และเมื่อพิมพ์ช่องว่าง:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.(!+-*/~,[{@#$%^&

สิ่งที่ฉันทำก็แค่ลบช่องว่างและตัวอักษร '=' ออกจากอาร์เรย์ :)

หรือหากคุณต้องการคำแนะนำเมื่อพิมพ์เว้นวรรค แต่ไม่อยู่หลังเครื่องหมาย '=':

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz .(!+-*/~,[{@#$%^&

นี่ควรเป็นคำตอบที่ได้รับการยอมรับ แม้ว่าจะนำไปสู่ความล้าหลังเล็กน้อย
Neil Chowdhury
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.