สิ่งที่เป็นไปได้ใน IntelliJ ที่เป็นไปไม่ได้ใน Eclipse


365

ฉันเคยได้ยินจากคนที่เปลี่ยนไปอย่างใดอย่างหนึ่งและสาบานโดยหนึ่งหรืออื่น ๆ

การเป็นแฟน Eclipse ขนาดใหญ่ แต่ไม่มีเวลาลอง IntelliJ ฉันสนใจที่จะได้ยินจากผู้ใช้ IntelliJ ที่เป็น "อดีต Eclipsians" บางสิ่งที่คุณสามารถทำได้กับ IntelliJ ที่คุณไม่สามารถทำได้กับ Eclipse

หมายเหตุ : นี่ไม่ใช่คำถามส่วนตัวหรือที่ตั้งใจจะเปลี่ยนเป็นสงครามศักดิ์สิทธิ์ IDE กรุณา downvote ตอบ



1
ฉันไปจาก Eclipse ไปยัง Netbeans ถึง IntelliJ rubyMine และแต่ละคนเป็น 'ก้าวขึ้น' จากก่อนหน้านี้ ฉันไม่เห็นสิ่งใดเป็นพิเศษ (เพราะนี่ไม่ใช่คำตอบ) เหมือนเดิมในขณะที่ไป แต่การกระโดดที่ยิ่งใหญ่ที่สุดคือการ rubyMine ซึ่ง "รวม" และดูเหมือนจะมีฟังก์ชั่นเพิ่มเติมและนำเสนอสิ่งต่าง ๆ ได้ง่ายขึ้น ใช้วิธี นอกจากนี้ยังดูเหมือนว่าจะจัดการกับปัญหาอัญมณีการพึ่งพาและชอบดีกว่าคนอื่น ๆ
junky

ฉันต้องการเปลี่ยนจาก intelliJ เป็น Eclipse (เนื่องจากการพัฒนา android) ดังนั้นคำถามและคำตอบประเภทนี้จึงมีประโยชน์มาก
โครเมี่ยม

8
@chrome Android กำลังเปลี่ยนวิธีอื่น ๆ : developer.android.com/sdk/installing/studio.html
Daniel Alexiuc

1
ฉันมีการโพสต์เหล่านี้ให้มากที่สุดเท่าที่จะทำได้และคำตอบทั้งหมดชี้ไปที่สิ่งต่าง ๆ ที่สามารถทำให้เกิดคราสได้จริงบางครั้งก็ง่ายกว่า IMHO ฉันต้องการรู้สึกว่าฉันได้รับเงินมูลค่า $ จาก intellij แต่เหตุผลเดียวที่ฉันซื้อมันคือการเติมข้อความอัตโนมัติ Javascript ฉันสามารถซื้อ webstorm ในราคาที่ถูกกว่านี้ได้ อาจมีปลั๊กอิน eclipse ที่ทำสิ่งเดียวกันด้วย ตรงไปตรงมาฉันคิดว่าคราสมีความสอดคล้องกันมากขึ้นและฉันคิดถึงคุณลักษณะเปอร์สเปคทีฟ
dres

คำตอบ:


185

CTRL-click ทำงานได้ทุกที่

CTRL-click ที่นำคุณไปยังที่ซึ่งวัตถุที่ถูกคลิกถูกกำหนดให้ทำงานได้ทุกที่ - ไม่เพียง แต่ในคลาส Java และตัวแปรในรหัส Java แต่ใน Spring configuration (คุณสามารถคลิกที่ชื่อคลาสหรือคุณสมบัติหรือชื่อถั่ว) ใน Hibernate (คุณ สามารถคลิกที่ชื่อคุณสมบัติหรือคลาสหรือทรัพยากรที่รวมอยู่) คุณสามารถนำทางภายในหนึ่งคลิกจากคลาส Java ไปยังตำแหน่งที่จะใช้เป็น Spring หรือ Hibernate bean; การคลิกที่แท็ก JSP หรือ JSTL รวมอยู่ด้วย ctrl-click ที่ตัวแปร JavaScript หรือฟังก์ชั่นจะนำคุณไปยังสถานที่ที่ถูกกำหนดหรือแสดงเมนูหากมีมากกว่าหนึ่งที่รวมถึงไฟล์. js อื่น ๆ และรหัส JS ใน HTML หรือ JSP ไฟล์

เติมข้อความอัตโนมัติสำหรับหลายภาษา

Hibernate

การเติมข้อความอัตโนมัติในนิพจน์ HSQL ในการกำหนดค่าไฮเบอร์เนต (รวมถึงคลาสคุณสมบัติและชื่อคอลัมน์ DB) ในการกำหนดค่าของ Spring

<property name="propName" ref="<hit CTRL-SPACE>"

และมันจะแสดงรายการของถั่วเหล่านั้นซึ่งคุณสามารถแทรกเข้าไปในคุณสมบัตินั้น

ชวา

การเติมข้อความอัตโนมัติอัจฉริยะมากในโค้ด Java:

interface Person {
    String getName();
    String getAddress();
    int getAge();
}
//---
Person p;
String name = p.<CTRL-SHIFT-SPACE>

และมันจะแสดงให้คุณเฉพาะgetName () , getAddress ()และtoString () (ใช้ได้เฉพาะตามประเภท) และgetName ()เป็นชื่อแรกในรายการเนื่องจากมีชื่อที่เกี่ยวข้องมากกว่า เวอร์ชันล่าสุด 8 ที่ยังอยู่ใน EAP มีการเติมข้อความอัตโนมัติที่ชาญฉลาดยิ่งขึ้น

interface Country{
}
interface Address {
    String getStreetAddress();
    String getZipCode();
    Country getCountry();
}
interface Person {
    String getName();
    Address getAddress();
    int getAge();
}
//--- 
Person p;
Country c = p.<CTRL-SHIFT-SPACE>

และจะเติมข้อความอัตโนมัติให้กับ

Country c = p.getAddress().getCountry();

จาวาสคริ

การเติมข้อความอัตโนมัติอัจฉริยะใน JavaScript

function Person(name,address) {
    this.getName = function() { return name };
    this.getAddress = function() { return address };
}

Person.prototype.hello = function() {
    return "I'm " + this.getName() + " from " + this.get<CTRL-SPACE>;
}

และมันจะแสดงเฉพาะgetName ()และgetAddress ()ไม่ว่าจะมีวิธีการ * ที่คุณมีในวัตถุ JS อื่น ๆ ในโครงการของคุณอย่างไรและ ctrl คลิกที่this.getName ()จะนำคุณไปยังที่ที่ถูกกำหนดไว้แม้ว่า มีฟังก์ชั่นอื่น ๆgetName ()ในโครงการของคุณ

HTML

ฉันพูดถึงการเติมข้อความอัตโนมัติและการคลิก ctrl ในพา ธ ไปยังไฟล์เช่น <script src = "", <img src = "" ฯลฯ หรือไม่

การเติมข้อความอัตโนมัติในแอตทริบิวต์แท็ก HTML การเติมข้อความอัตโนมัติในแอตทริบิวต์ลักษณะของแท็ก HTML ทั้งชื่อแอตทริบิวต์และค่า เติมข้อความอัตโนมัติในแอตทริบิวต์ class เช่นกัน
พิมพ์ <div class = "<CTRL-SPACE> แล้วมันจะแสดงรายการของคลาส CSS ที่กำหนดไว้ในโครงการของคุณเลือกหนึ่ง ctrl คลิกที่มันและคุณจะถูกเปลี่ยนเส้นทางไปยังที่ที่มันถูกกำหนด

การไฮไลท์ภาษาง่าย ๆ

เวอร์ชันล่าสุดมีการฉีดภาษาดังนั้นคุณสามารถประกาศว่าแท็ก JSTL ที่คุณกำหนดเองมักจะมี JavaScript และมันจะเน้น JavaScript ไว้ข้างใน

<ui:obfuscateJavaScript>function something(){...}</ui:obfuscateJavaScript>

จัดทำดัชนีการค้นหาในทุกโครงการ

คุณสามารถใช้ค้นหาประเพณีของคลาส Java หรือเมธอดใด ๆ และจะค้นหาตำแหน่งที่ใช้รวมถึงคลาส Java เท่านั้นไม่ว่าจะเป็น Hibernate, Spring, JSP และสถานที่อื่น ๆ เปลี่ยนชื่อวิธีการเปลี่ยนชื่อวิธีการเปลี่ยนชื่อไม่เพียง แต่ในชั้นเรียน Java แต่ทุกที่รวมถึงความคิดเห็น (มันไม่สามารถแน่ใจได้ว่าสตริงในความคิดเห็นเป็นชื่อวิธีจริงๆจริงๆแล้วมันจะถาม) และจะค้นหาเฉพาะวิธีการของคุณแม้ว่าจะมีวิธีการเรียนอื่นที่มีชื่อเดียวกัน การรวมการควบคุมแหล่งที่ดี (SVN สนับสนุนผู้เปลี่ยนแปลงหรือไม่ IDEA สนับสนุนการควบคุมแหล่งที่มาทุกตัว) ความสามารถในการสร้างแพตช์พร้อมการเปลี่ยนแปลงของคุณเพื่อให้คุณสามารถส่งการเปลี่ยนแปลงไปยังสมาชิกในทีมคนอื่น ๆ

ปรับปรุงการดีบักเกอร์

เมื่อฉันดูHashMapในหน้าต่างดูการดีบักเกอร์ฉันเห็นมุมมองแบบลอจิคัล - ปุ่มและค่าครั้งสุดท้ายที่ฉันทำใน Eclipse จะแสดงรายการที่มีแฮชและฟิลด์ถัดไป - ฉันไม่ได้ดีบักHashMapจริง ๆฉันแค่ต้องการดู มันเนื้อหา

การตรวจสอบการกำหนดค่าสปริงและไฮเบอร์เนต

มันตรวจสอบความถูกต้องของการกำหนดค่า Spring และ Hibernate เมื่อคุณแก้ไขดังนั้นฉันไม่จำเป็นต้องรีสตาร์ทเซิร์ฟเวอร์เพื่อให้รู้ว่าฉันสะกดชื่อคลาสหรือเพิ่มพารามิเตอร์คอนสตรัคเตอร์เพื่อให้ cfg Spring ของฉันไม่ถูกต้อง

ครั้งล่าสุดที่ฉันลองฉันไม่สามารถรัน Eclipse บน Windows XP x64

และมันจะแนะนำให้คุณperson.nameหรือperson.address Ctrl-click ที่person.nameและจะพาคุณไปยังgetName ()วิธีการของคลาสPerson

พิมพ์Pattern.compile("");ใส่ \\ ที่นั่นกด CTRL-SPACE และดูคำแนะนำที่เป็นประโยชน์เกี่ยวกับสิ่งที่คุณสามารถใส่ลงในนิพจน์ปกติของคุณ คุณยังสามารถใช้การฉีดภาษาที่นี่ - กำหนดวิธีการของคุณเองที่ใช้พารามิเตอร์สตริงประกาศในกล่องโต้ตอบตัวเลือก IntelliLang ว่าพารามิเตอร์ของคุณเป็นนิพจน์ปกติ - และจะให้การเติมข้อความอัตโนมัติแก่คุณด้วยเช่นกัน ไม่จำเป็นต้องบอกว่ามันเน้นการแสดงออกปกติที่ไม่ถูกต้อง

คุณสมบัติอื่น ๆ

มีคุณสมบัติบางอย่างที่ฉันไม่แน่ใจว่ามีอยู่ใน Eclipse หรือไม่ แต่อย่างน้อยสมาชิกแต่ละคนในทีมของเราที่ใช้ Eclipse ก็ใช้เครื่องมือการรวมบางอย่างเพื่อรวมการเปลี่ยนแปลงในท้องถิ่นกับการเปลี่ยนแปลงจากการควบคุมแหล่งที่มามักจะ WinMerge ฉันไม่ต้องการมันเลย - การรวมกันใน IDEA นั้นเพียงพอแล้วสำหรับฉัน ด้วยการคลิก 3 ครั้งฉันสามารถดูรายการเวอร์ชันของไฟล์ในการควบคุมซอร์สได้อีก 3 คลิกฉันสามารถเปรียบเทียบเวอร์ชันก่อนหน้าหรืออันก่อนหน้าและปัจจุบันและอาจรวม

อนุญาตให้ระบุว่าฉันต้องการ. jars ทั้งหมดในWEB-INF\libโฟลเดอร์โดยไม่ต้องเลือกแต่ละไฟล์แยกกันดังนั้นเมื่อมีคนยอมรับ. jar ใหม่ในโฟลเดอร์นั้นมันจะทำการเลือกโดยอัตโนมัติ

กล่าวถึงข้างต้นอาจเป็น 10% ของสิ่งที่มันทำ ฉันไม่ได้ใช้ Maven, Flex, Swing, EJB และอื่น ๆ อีกมากมายดังนั้นฉันจึงไม่สามารถบอกได้ว่ามันช่วยอะไรพวกเขาได้บ้าง แต่มันก็เป็นเช่นนั้น


26
ตัวอย่างสองตัวอย่างเกี่ยวกับโค้ดจาวาการทำให้สมบูรณ์อัตโนมัติทำงานเหมือนกันใน eclipse มีคนที่มีตัวแทนเพิ่มเติมลบเพียงตัวอย่างจาวาโปรด?
เคพี Motlin

9
ตัวอย่างส่วนใหญ่ของคุณมีอยู่ใน Eclipse ไม่ว่าจะโดยตรงหรือผ่านปลั๊กอินของบุคคลที่สาม ฉันรู้ว่าไม่มีใครใช้เครื่องมือภายนอกสำหรับ svn merge ใน Eclipse สำหรับตัวแก้ไขฤดูใบไม้ผลิ / hibernate / javascript (และการเติมข้อความอัตโนมัติ) มีปลั๊กอินของบุคคลที่สาม สำหรับ regex และ JSP EL คุณชนะฉัน :)
โยนี

1
ปลั๊กอินเครื่องมือ Jboss เพิ่มการเติมข้อความอัตโนมัติของไฮเบอร์เนตและ JSF
Damo

4
สำหรับมุมมองการดีบัก eclipse มีตัวเลือกเพื่อแสดงเนื้อหาของคอลเล็กชันแทนที่จะเป็นรายละเอียดการนำไปปฏิบัติ สำหรับรายการและชุดมันจะแสดงเนื้อหาของพวกเขา สำหรับแผนที่มันจะแสดงรายการคู่คีย์ - ค่า นอกจากนี้ยังสามารถตั้งค่าการแสดงผลที่กำหนดเองได้
ขัดขวาง

1
Eclipse 3.7 (Indigo) ยังทำให้ชื่อคลาสสมบูรณ์โดยอัตโนมัติใน Spring configuration
stivlo

81

มีเพียงเหตุผลเดียวที่ฉันใช้ Intellij ไม่ใช่ eclipse: การใช้งาน

ไม่ว่าจะเป็นการดีบั๊กการ refactoring การทำให้สมบูรณ์อัตโนมัติ .. Intellij นั้นใช้งานได้ง่ายกว่าด้วยการเชื่อมโยงคีย์ที่สอดคล้องกันตัวเลือกที่คุณมองหาเป็นต้นคุณสมบัติที่ชาญฉลาดมันจะยากสำหรับ Intellij ที่จะติดต่อกับ Eclipse เช่น หลังมีปลั๊กอินที่พร้อมใช้งานมากขึ้นที่ intellij และสามารถขยายได้อย่างง่ายดาย


10
มันฉลาดและด่าเร็ว สิ่งนี้เพิ่มคุณสมบัติการใช้งานมากมาย การข้ามไปยังคลาสย่อยหรือคลาสที่ใช้งานค้นหาในพา ธ ค้นหาประเพณี ฯลฯ เกิดขึ้นอย่างรวดเร็ว เติมข้อความอัตโนมัติแบบอินไลน์เพียงแค่แท็บจะแทรกเข้าไป การเติมข้อความอัตโนมัตินั้นฉลาดเช่นกันไม่ใช่แค่คำแนะนำล้วนๆ แต่ IDE ก็คิดถึงชื่อและอื่น ๆ สำหรับคุณ
Ravindranath Akila

มีเหตุผลมากกว่าหนึ่งข้อในการใช้ IntelliJ การใช้งานไม่ได้อยู่ในอันดับต้น ๆ ของรายการ มีคุณสมบัติเพิ่มเติมใน IntelliJ มากกว่า Eclipse IntelliJ มีปลั๊กอินทั้งหมดน้อยลง แต่มีปลั๊กอิน 'คุณภาพ' มากขึ้น ดังนั้นคำตอบนี้แม้จะมีการโหวตไม่ถูกต้องก็ตาม
วิศวกรซอฟต์แวร์

2
@EngineerDollery ฉันจะไม่พูดมัน "ผิด" ตั้งแต่ amit กล่าวว่า "มีเพียงเหตุผลหนึ่งที่ผมใช้ IntelliJ และไม่ทำให้เกิดคราส" ไม่ได้ "มีเพียงเหตุผลหนึ่งก็คือการใช้ IntelliJ และไม่ทำให้เกิดคราส"
Max Nanasy

54

อาจจะไม่ได้เป็นเรื่องของสิ่งที่สามารถ / ไม่สามารถทำได้ แต่วิธี

เช่นทั้งสองมีตัวแก้ไขล้อมรอบด้วยแผงติดตั้งสำหรับโครงการ classpath, output, โครงสร้าง ฯลฯ แต่ในความคิดเมื่อฉันเริ่มพิมพ์ยุบทั้งหมดเหล่านี้โดยอัตโนมัติให้ฉันมุ่งเน้นรหัสมันด้วยตนเอง; ในคราสแผงควบคุมทั้งหมดเหล่านี้เปิดให้ออกจากพื้นที่บรรณาธิการของฉันลดลงมากประมาณ 1/5 ของพื้นที่ดูได้ทั้งหมด ดังนั้นฉันต้องคว้าเม้าส์แล้วคลิกเพื่อย่อในแผงควบคุมเหล่านั้น การทำเช่นนี้ตลอดทั้งวันเป็นประสบการณ์ที่น่าผิดหวังอย่างมากใน eclipse

สิ่งที่ตรงกันข้ามนั้นเกิดขึ้นกับหน้าต่างเอาต์พุตการดู ในแนวคิดการรันโปรแกรมจะนำหน้าต่างเอาต์พุต / พาเนลออกมาเพื่อดูผลลัพธ์ของโปรแกรมแม้ว่าจะถูกย่อให้เล็กที่สุดก็ตาม ใน eclipse ฉันต้องคว้าเม้าส์ของฉันอีกครั้งและมองหาแท็บผลลัพธ์และคลิกเพื่อดูผลลัพธ์ของโปรแกรมของฉันเพราะหน้าต่าง / พาเนลเอาต์พุตเป็นอีกอันหนึ่งเหมือนกับหน้าต่างอื่น ๆ ทั้งหมด แต่ในความคิดมันได้รับการปฏิบัติใน วิธีพิเศษ: "หากผู้ใช้ต้องการเรียกใช้โปรแกรมของเขามีโอกาสมากที่เขาต้องการเห็นผลลัพธ์ของโปรแกรมนั้น!" ดูเหมือนเป็นธรรมชาติมากเมื่อฉันเขียน แต่ eclipse ล้มเหลวในแนวคิดส่วนติดต่อผู้ใช้ขั้นพื้นฐานนี้

อาจมีทางลัดสำหรับสิ่งนี้ใน eclipse (หน้าต่างผลลัพธ์การซ่อนอัตโนมัติในขณะที่แก้ไขและแสดงอัตโนมัติเมื่อเรียกใช้โปรแกรม) แต่เนื่องจากคุณสมบัติอื่น ๆ หลายสิบทางลัดต้องถูกตามล่าในฟอรัมความช่วยเหลือออนไลน์ ฯลฯ ในขณะที่ Idea ค่อนข้างมาก " ธรรมชาติ"

สิ่งนี้สามารถทำซ้ำได้สำหรับคุณสมบัติเกือบทั้งหมดที่มีทั้งการเติมข้อความอัตโนมัติการตัดคำมุมมองเอกสารอย่างรวดเร็วทุกอย่าง ฉันคิดว่าประสบการณ์ของผู้ใช้นั้นน่าพึงพอใจใน Idea มากกว่าในคราส จากนั้นคำขวัญก็กลายเป็นจริง "พัฒนาด้วยความยินดี"

Eclipse จัดการกับโครงการที่ใหญ่กว่าได้เร็วขึ้น (+300 ไหและ +4000 คลาส) และฉันคิดว่า IntelliJ Idea 8 ทำงานได้ดี

แน่นอนทั้งหมดนี้เป็นเรื่องส่วนตัว เราจะวัดประสบการณ์ของผู้ใช้ได้อย่างไร


18
ใน eclipse คุณสามารถกด control-m เพื่อต่ำสุด / สูงสุดหน้าต่างแก้ไขหรือดับเบิลคลิกที่แท็บเครื่องมือแก้ไข - นี่ช่วยได้มาก
Scott Stanchfield

ว้าว ... ขอบคุณมาก มันจะมีประโยชน์มากถ้า eclipse มีวิธีที่ฉันรู้ (นอกเหนือจากการอ่านชีทฮอตคีย์ลัด) ขอบคุณมาก มีวิธีที่คุณเปลี่ยนไปยังหน้าต่างแสดงผลหรือไม่
OscarRyz

ALT-SHIFT-Q เปิดหน้าต่าง Show View ... C สำหรับคอนโซล ALT-SHIFT-Q, C เป็นทางลัดเพื่อไปยังคอนโซล
Instantsoup

7
Ctrl + Shift + L แสดงรายการปุ่มลัดที่มีอยู่ในบริบทปัจจุบัน
Dan Berindei

3
ดับเบิลคลิกที่ชื่อหน้าต่างย่อย - หน้าต่างย่อยใดก็ได้ - และหน้าต่างย่อยของคุณจะระเบิดออกมาแบบเต็มหน้าจอ ทำอีกครั้งเพื่อคืนค่า ย่อขนาดพาเนลให้เล็กที่สุดด้วยคอนโซลจากนั้นเมื่อเอาต์พุตเกิดขึ้นคอนโซลจะปรากฏขึ้นทันที
เอียน

44

แนวคิด 8.0 มีctrl+shift+spacex 2 ที่น่ารักซึ่งเติมข้อความอัตโนมัติต่อไปนี้:

 City city = customer.<ctrl-shift-space twice>

แก้ไขเป็น

 City city = customer.getAddress().getCity();

ผ่านระดับใด ๆ ของ getters / setters


27
เย็นสวย แต่อะไรมากไปกว่าสองระดับค่อนข้างกลิ่นรหัส ... ;)
Epaga

33

อย่าลืม "เปรียบเทียบกับคลิปบอร์ด"

สิ่งที่ฉันใช้ตลอดเวลาใน IntelliJ และที่ไม่เทียบเท่าใน Eclipse


6
นอกจากนี้ประวัติคลิปบอร์ด
Kimball Robinson

3
คุณลักษณะนี้สามารถเพิ่มลงใน eclipse ในรูปแบบของปลั๊กอินที่เรียกว่าAnyEditTools (พบในตลาด)
Yaniv

ไม่ทราบเกี่ยวกับประวัติคลิปบอร์ดจนกว่าจะอ่าน ยอดเยี่ยม
NodeDad

บันทึกฉันหลายครั้ง
OscarRyz

31

ทางลัดรายการโปรดของฉันใน IntelliJ ที่ไม่เทียบเท่าใน Eclipse (ที่ฉันพบ) เรียกว่า 'ไปที่สัญลักษณ์' CTRL-ALT-SHIFT-Nให้คุณเริ่มพิมพ์และเรียกชั้นเรียนชื่อวิธีชื่อตัวแปร ฯลฯ จากโครงการทั้งหมด


10
ctrl-shift-G ใน eclipse
dres

ctrl-shift-G ไม่ใช่สิ่งที่ Paul อธิบาย .. เป็นเหมือน "ctrl + O" มากขึ้น แต่สำหรับทุกคลาสวิธีการและตัวแปรในโครงการ
Tano

27

ฉันพยายามเปลี่ยนไปใช้ IntelliJ เพราะ Android Studio ใหม่ แต่ตอนนี้ฉันผิดหวังมาก ฉันกำลังใช้ Eclipse กับปลั๊กอินรหัสผู้แนะนำ นี่เป็นตัวอย่างง่ายๆว่าทำไม Eclipse จึงยอดเยี่ยม:

SimpleTimeZoneฉันต้องการที่จะสร้างใหม่ SimpleTimeZoneไม่มีตัวสร้างที่มีอาร์กิวเมนต์เป็นศูนย์

Ctrl + Space ใน Eclipse

ป้อนคำอธิบายรูปภาพที่นี่

Ctrl + Space ใน IntelliJ

ป้อนคำอธิบายรูปภาพที่นี่

ใน IntelliJ ฉันไม่ได้รับข้อมูลอะไรช่างก่อสร้างSimpleTimeZoneมีอะไรบ้าง

หลังจากEnterอยู่ใน Eclipse

ป้อนคำอธิบายรูปภาพที่นี่

ฉันได้รับตัวสร้างที่เลือกไว้ก่อนหน้านี้ที่เต็มไปด้วยชื่อตัวแปรที่กำหนดไว้ล่วงหน้า และฉันสามารถดูประเภทของทุกข้อโต้แย้ง ด้วย Code Recommendanders Eclipse จะเดาตัวสร้างที่ถูกต้องโดยตัวแปรที่กำหนดไว้ก่อนหน้านี้ในขอบเขตปัจจุบันและเติมตัวสร้างด้วย vars เหล่านี้

หลังจากEnterใน IntelliJ ไม่มีอะไรเกิดขึ้น ฉันได้รับ Constructor ที่ว่างเปล่า ฉันต้องกดCtrl + Pเพื่อดูข้อโต้แย้งที่คาดหวัง

ป้อนคำอธิบายรูปภาพที่นี่


25

หากคุณมีเคอร์เซอร์บนเมธอดจากนั้นCTRL+SHIFT+Iจะป๊อปอัพการใช้เมธอด หากวิธีนั้นเป็นinterfaceวิธีการหนึ่งคุณสามารถใช้ลูกศรขึ้นและลงเพื่อวนรอบการใช้งานได้:

Map<String, Integer> m = ...
m.contains|Key("Wibble");

ที่ไหน | คือ (ตัวอย่าง) ตำแหน่งที่เคอร์เซอร์ของคุณอยู่


4
จริง ๆ แล้วใน Eclipse (อย่างน้อยรุ่นที่ฉันใช้) เมื่อคุณวางเคอร์เซอร์บนชื่อของวิธีการและกด CTRL + T คุณจะได้รับต้นไม้ลำดับชั้นทั้งจากอินเทอร์เฟซสูงสุดจนถึงการใช้งานของใบไม้และสามารถข้าม เพื่อใด ๆ ของพวกเขา
Yuval

2
ใน Eclipse คุณยังสามารถกด Ctrl + คลิกที่ชื่อวิธีการที่จะข้ามไปยังคำนิยาม / วิธีการดำเนินงาน (ขึ้นอยู่กับบริบท)
qualidafial

8
ประเด็นก็คือคุณไม่ได้นำไปสู่การปฏิบัติจริง มันแสดงให้เห็นเพียงแค่ป๊อปอัพเช่นเดียวกับ Javadoc ฯลฯ
jackrabbit

1
ใน Eclipse คุณเพียงแค่โฮเวอร์ชื่อเมธอดด้วย Shift เพื่อเปิดป๊อปอัพด้วยการติดตั้ง
Victor

24

IntelliJ มีการตรวจสอบโค้ดขั้นสูงที่ค่อนข้างสวย (เทียบเท่า แต่แตกต่างกับ FindBugs)

แม้ว่าฉันจะพลาดปลั๊กอิน FindBugs อย่างจริงจังเมื่อใช้ IntelliJ (การรวม Eclipse / FindBugs ค่อนข้างยอดเยี่ยม)

นี่คือรายการอย่างเป็นทางการของ CodeInspections ที่ IntelliJ สนับสนุน

แก้ไข: ในที่สุดก็มีfindbugs-pluginสำหรับ IntelliJ มันยังคงเป็นบิตเบต้า แต่การรวมกันของการตรวจสอบรหัสและ FindBugs นั้นยอดเยี่ยมมาก!


ใช่ findbugs เป็นหนึ่งในการวิเคราะห์รหัสคงที่ไม่กี่ที่จริงพบข้อบกพร่องจริงซื่อสัตย์ต่อความดีในทางปฏิบัติ :)
Epaga

คุณมีตัวอย่างเฉพาะของการตรวจสอบรหัสหรือไม่ มันสามารถตรวจจับสิ่งใดบ้าง
Epaga

ลิงค์อื่นเกี่ยวกับการตรวจสอบ: hamletdarcy.blogspot.com/2008/04/…
Mo.

8
ฉันพบว่าการตรวจสอบรหัสของ IntelliJ พบข้อบกพร่องเพิ่มเติมมีการแก้ไขด่วนที่มีประโยชน์มันสามารถให้คำเตือนและแก้ไขบรรทัดในขณะที่คุณพิมพ์ (คุณไม่ต้องบันทึกไฟล์และไม่ต้องคอมไพล์) นิโคตินเหล่านี้ช่วยให้การแก้ไขข้อบกพร่องได้เร็วขึ้น
Peter Lawrey


15

สิ่งหนึ่งที่ฉันใช้เป็นประจำคือการตั้งเบรกพอยต์ แต่ควบคุมสิ่งที่ทำ (ในงานล่าสุดของฉันทุกคนส่วนใหญ่ใช้ Eclipse ... ฉันจำได้ว่าต้องประหลาดใจที่ไม่มีใครสามารถหาวิธีการทำเช่นนี้ใน Eclipse ได้)

ตัวอย่างเช่นสามารถมีเบรกพอยต์ไม่หยุดจริง ๆ แต่เพียงบันทึกข้อความไปยังคอนโซล ซึ่งหมายความว่าฉันไม่ต้องทิ้งรหัสด้วย "System.out.println (... )" แล้วคอมไพล์ใหม่


2
คุณสามารถทำได้ด้วยจุดพักแบบมีเงื่อนไขใน eclipse แต่มันเป็นบิตที่หน้าด้าน จริง
HaveAGuess

ฉันคิดว่า intelliJ ช่วยให้คุณตั้งค่าจำนวนการตีที่ซับซ้อนยิ่งขึ้นใช่ไหม
Kimball Robinson

3
การค้นหาใน eclipse ง่ายกว่า - จะแสดงเงื่อนไขในมุมมองเบรกพอยต์ทันที (เพื่อให้คุณรู้ว่ามีอยู่) คุณสามารถทำลายในข้อหาป้อนรหัสที่กำหนดเช่นSystem.out.println("here"); falseการพิมพ์ แต่ไม่ทำลาย (คำสั่งสุดท้ายคือการแสดงออกบูลที่กำหนดว่าเราควรจะทำลาย)
สกอตต์ Stanchfield

15

มีหลายสิ่งที่ความคิดจะแก้ไขในวิธีที่ง่ายกว่ามากหรือไม่มีอะไรเทียบเท่า:

  • การดำเนินการเติมข้อความอัตโนมัติ: ctrl+shift+aคุณสามารถเรียกการกระทำที่เป็นความคิดใด ๆ จากแป้นพิมพ์ได้โดยไม่ต้องจดจำการรวมคีย์ของมัน ... ลองนึกถึง gnome-do หรือ launchy ใน windows และคุณมีความคิด! นอกจากนี้คุณสมบัตินี้รองรับตัวย่อ CamelCasing;)

  • ชั้นวาง: ให้คุณแยกรหัสบางส่วนได้อย่างง่ายดายจากนั้นตรวจสอบผ่านตัวแสดง diff

  • ประวัติท้องถิ่น: จัดการได้ดีกว่าและเรียบง่ายกว่า

  • คำอธิบายประกอบและประวัติของ SVN: ง่ายต่อการตรวจสอบและคุณสามารถดูประวัติสำหรับส่วนที่มาของไฟล์ทั้งหมดได้อย่างง่ายดาย

  • เติมข้อความอัตโนมัติในทุกที่เช่นหน้าต่างประเมินนิพจน์และจุดพัก

  • การรวม Maven ... มากง่ายขึ้นและรวมเข้าด้วยกัน

  • Refactors ใกล้กับมือมากเช่นการใส่ลูปการห่อ / การหล่อการเปลี่ยนชื่อและเพิ่มตัวแปร

  • ค้นหาทรงพลังและจัดระเบียบได้ดีมาก แม้ในโครงการขนาดใหญ่

  • มีความเสถียรในการทำงานกับโครงการขนาดใหญ่หลายสาขาในเวลาเดียวกัน (ในฐานะผู้แก้ไขบั๊กเก่า 1.5Gb จากแหล่งสาขาและจำเป็นที่จะต้องทำงานกับพวกมันพร้อมกันไอเดียแสดงศักยภาพที่แข็งแกร่งของหิน)

  • อินเทอร์เฟซที่สะอาดและเรียบง่าย ...

  • และใช้งานง่ายขึ้นเฉพาะกับแป้นพิมพ์เท่านั้นทำให้แยกความต้องการใช้เมาส์สำหรับ taks ง่าย ๆ จำนวนมากประหยัดเวลาและให้ความสำคัญกับรหัสมากขึ้น ... ในกรณีที่สำคัญ!

และตอนนี้การเป็น opensource ... ฐานผู้ใช้ของ Idea จะเพิ่มขึ้นแบบทวีคูณ


2
การดำเนินการเติมข้อความอัตโนมัติ = เข้าถึงด่วนใน eclipse; ผมไม่เห็นว่าประวัติศาสตร์ท้องถิ่นสามารถทำได้ง่ายกว่าในคราส ...
สกอตต์ Stanchfield

ตามที่สกอตต์ระบุไว้มันคือ Ctrl + 3 การช่วยงานในเนื้อหายังใช้ได้เมื่อนิพจน์การประเมินผลและการตั้งค่าเบรกพอยต์แบบมีเงื่อนไข ฉันไม่แน่ใจว่าใกล้ถึงขีดสุดสำหรับการรีแฟคเตอร์ที่กล่าวถึงแล้วมากกว่าสิ่งที่เสนอโดย Ctrl + 1 และ Ctrl + 2 ส่วนที่เหลือเสียงส่วนใหญ่ฟัง
nitind

14

ค้นหาโครงสร้างและแทนที่

ตัวอย่างเช่นค้นหาสิ่งที่ชอบ:

  System.out.println($string$ + $expr$);

โดยที่ $ string $ เป็นตัวอักษรและ $ expr $ เป็นนิพจน์ประเภท my.package.and.Class แล้วแทนที่ด้วย:

  $expr$.inspect($string$);

1
จริงๆแล้วคุณสามารถค้นหาประเภทปลดเปลื้อง / () - โอเปอเรเตอร์ / ในรหัสของคุณแทบจะเป็นไปไม่ได้ด้วยการค้นหาข้อความธรรมดา
Karl

13

เวลาของฉันอาจจะเล็กน้อยในแง่ของเธรดนี้ แต่ฉันต้องตอบ

ฉันเป็นแฟนของสุริยุปราคา - ใช้ตั้งแต่ครั้งแรก เพื่อนบอกฉันแล้ว (10+ ปีที่แล้ว) ว่ามันจะเป็นผู้เล่น เขาพูดถูก

แต่! ฉันได้เริ่มต้นเพียงแค่ใช้ IntelliJ และหากคุณยังไม่เคยเห็นหรือเคยchangelists - คุณจะหายไปจากการเขียนโปรแกรมสวรรค์

ความสามารถในการติดตามไฟล์ที่เปลี่ยนแปลงของฉัน (ใน ala clearcase สาขาการพัฒนาของฉัน) เป็นสิ่งที่ฉันกำลังมองหาในปลั๊กอินสำหรับ eclipse Intellij ติดตามการเปลี่ยนแปลงทั้งหมดของคุณเพื่อการกระทำครั้งเดียวง่ายมาก คุณสามารถแยกไฟล์ที่เปลี่ยนแปลงด้วยรายการที่กำหนดเอง ฉันใช้มันสำหรับไฟล์การกำหนดค่าที่ต้องไม่ซ้ำกันในเครื่อง แต่มีการตั้งค่าสถานะอย่างต่อเนื่องเมื่อฉันซิงค์หรือเปรียบเทียบกับพื้นที่เก็บข้อมูล - การแสดงรายการเหล่านั้นภายใต้รายการการเปลี่ยนแปลงฉันสามารถตรวจสอบพวกเขาได้ ฉันกำลังทำ.

นอกจากนี้ยังมีปลั๊กอิน Commit Log ที่แสดงข้อความการเปลี่ยนแปลงทั้งหมดสำหรับ SCCS เหล่านั้นที่ไม่ได้รวมเข้ากับซอฟต์แวร์การติดตามข้อผิดพลาดของคุณ การวางบันทึกในประวัติการทำงานของตั๋วจะเก็บไฟล์รุ่นวันที่ / เวลาและสาขา / แท็ก มันเท่เหมือนนรก

ทั้งหมดนี้สามารถรองรับผ่านปลั๊กอิน (หรือการปรับปรุงในอนาคต) ใน eclipse ฉันเดิมพัน; แต่ Intellij ทำให้เป็นเรื่องง่าย

ในที่สุดฉันตื่นเต้นจริง ๆ เกี่ยวกับความรักที่สำคัญสำหรับผลิตภัณฑ์นี้ - การกดแป้นดังนั้นมันเจ็บปวด แต่สนุก


ฉันชอบคุณสมบัติการเปลี่ยนแปลง มันคล้ายกับชุดแพทช์ / ชั้นวาง VCS อิสระที่คุณสามารถทำงานได้อย่างอิสระและสามารถเชื่อมโยงกับพวกเขายังสามารถเชื่อมโยงกับการติดตามปัญหาของคุณ คุณมีประวัติท้องถิ่น (เช่นมินิ VCS) ติดตามการเปลี่ยนแปลงของคุณในขณะที่คุณทำงานเกือบจะละเอียดรายละเอียดระดับบรรทัดเพื่อให้คุณสามารถกลับไปที่จุดใดก็ได้ในเวลาที่คุณต้องการ นอกจากนี้เมื่อคุณสลับงาน IDEA ทั้งหมดจะจดจำสถานะของ IDE สำหรับงานใหม่และเรียกคืนไฟล์ที่เปิดตำแหน่งหน้าต่าง ฯลฯ
sylvanaar

รายการการเปลี่ยนแปลงจริง ๆ แล้วเป็นคุณลักษณะของ SVN IntelliJ ช่วยให้คุณเห็นและจัดการกับสิ่งที่ปลั๊กอิน Eclipse SVN ไม่ทำ
Neil Traft

12

ตัวแก้ไขข้อบกพร่อง IntelliJ มีคุณสมบัติที่ใช้งานง่ายมากที่เรียกว่า "ประเมินการแสดงออก" ซึ่งดีกว่าจี้สุริยุปราคา มันมีการเติมเต็มโค้ดและฉันก็จะให้ "มีประโยชน์มากกว่า" โดยทั่วไป


8
Eclipse ยังมีตัวประเมินผลนิพจน์ที่ให้การกรอกโค้ดด้วย ไปที่ Window -> Show View -> Debug -> Display เมื่อหยุดที่เบรกพอยต์ในดีบักเกอร์คุณสามารถประเมินนิพจน์โดยพลการในมุมมองดิสเพลย์นั้น
laz

11

สำหรับฉันมันเป็นสิ่งเล็ก ๆ พัน มาโครบางตัวซึ่งเป็นเลย์เอาต์ GUI โดยทั่วไปใน Eclipse ฉันพบว่าแย่มาก ฉันไม่สามารถเปิดหลายโครงการใน windows ที่แตกต่างกันใน Eclipse ฉันสามารถเปิดหลายโครงการได้ แต่จากนั้นก็เป็นระบบที่ใช้มุมมองในการสลับสิ่งต่างๆรอบตัวฉันเมื่อฉันสลับไฟล์ การตรวจสอบโค้ดของ IntelliJ ดูดีขึ้น ผู้ช่วยป๊อปอัพมันในการแก้ไขปัญหาที่พบบ่อยเป็นสิ่งที่ดี สิ่งต่าง ๆ ที่ใช้งานง่ายเช่นแถบด้านข้างที่ฉันสามารถเลื่อนเมาส์ไปที่จุดร้อนและมันจะบอกฉันว่าการใช้คลาสย่อยของวิธีการหรือวิธีที่ฉันใช้และจากที่ใด

เมื่อใดก็ตามที่ฉันต้องใช้หรือดูคนใช้ Eclipse ดูเหมือนว่าพวกเขาสามารถทำสิ่งต่าง ๆ ที่ฉันสามารถทำได้ใน IntelliJ แต่มันใช้เวลานานกว่าและมันก็น่าเบื่อ


9

แนะนำตัวแปร ( Ctrl+Alt+Vบน Windows Cmd+Alt+Vบน OSX)

ให้บอกว่าคุณเรียกใช้เมธอดservice.listAllPersons() Hit Ctrl+Alt+VและEnterและตัวแปรสำหรับค่าส่งคืนจากการเรียกเมธอด:

List<Person> list = service.listAllPersons();

บันทึกคุณพิมพ์และคุณไม่จำเป็นต้องตรวจสอบประเภทการส่งคืนของวิธีการที่คุณโทร มีประโยชน์อย่างยิ่งเมื่อใช้ยาสามัญเช่น

new ArrayList<String>()

[แนะนำตัวแปร]

ArrayList<String> stringArrayList = new ArrayList<String>();

(แน่นอนคุณสามารถเปลี่ยนชื่อของตัวแปรก่อนกดปุ่มEnter)


13
นี่คือ Ctrl + 2 L ใน Eclipse
กี้

2
ดีฉันไม่รู้และไม่มีผู้ใช้ Eclipse ใด ๆ ที่ฉันถาม คุณลักษณะนี้เคยเป็นส่วนหนึ่งของ Eclipse มาเป็นเวลานานหรือไม่?
rlovtang

3
เป็นเวลานาน ... ถ้าคุณใช้ quickfix control+1(การผูกคีย์ที่ชัดเจนที่สุดในโลกใช่มั้ย) มันจะแนะนำสิ่งที่คุณสามารถทำได้ที่ตำแหน่งเคอร์เซอร์ปัจจุบันซึ่งคล้ายกับความตั้งใจใน IDEA โดยจะแสดงรายการ "assign local", "assign field" และตัวเลือกอื่น ๆ เช่น control+2, Lเป็นทางลัดสำหรับมัน
Scott Stanchfield

ใน eclipse เมื่อคุณเลือกctrl+2, Lคุณยังคงสามารถเปลี่ยนชนิดของตัวแปรที่สร้างขึ้นเป็นประเภทด้านขวา (โดยค่าเริ่มต้น) หรือ supertype ใด ๆ : ประเภทตัวแปรสามารถเลือกได้ด้วย TAB
Gaetan

8

IntelliJ มีการสนับสนุนภายในและการปรับโครงสร้างใหม่จากโค้ดลงในเอกสาร jspx


คุณสามารถอธิบายสิ่งที่คุณหมายถึงโดย intellisense? Eclipse มีการเติมข้อมูลอัตโนมัติเช่นกัน แต่คุณหมายถึงอย่างอื่นหรือไม่
Epaga

Eclipse ไม่มีการเติมข้อความอัตโนมัติในเอกสาร jspx AFAIK ใน jsp ปกติใช่, jspx no
krosenvold

3
เขาหมายความว่าถ้าคุณมี JSP ที่อ้างถึงคุณสมบัติใน POJO และคุณเปลี่ยนชื่อคุณสมบัติ JSP ของคุณจะได้รับการปรับปรุงอย่างถูกต้อง การสนับสนุน JSP ของ IntelliJ เตะ Eclipse / WTP!
erickson

2
ฉันไม่สามารถทำให้ Eclipse ของ auto เสร็จสมบูรณ์เพื่อทำงานในนิพจน์ JSP EL ได้ JSP หรือ JSPX มันไม่สำคัญมันเป็นแค่เรื่องไร้สาระ IntelliJ จัดการกับ tagx และ jspx ตามที่คุณคาดหวัง: เช่นแท็กหรือไฟล์ jsp
erickson

ยินดีที่ได้เห็นว่าผู้ใช้ eclipse ลงคะแนนในสิ่งที่พวกเขาไม่ชอบ หากการสังเกตของฉันผิดโปรดตอบกลับพร้อมความคิดเห็น บอกวิธีการทำเช่นนี้ใน eclipse!
krosenvold

7

สำหรับฉันแล้วการสนับสนุน maven ของ IDEA โดยเฉพาะอย่างยิ่งในเวอร์ชัน 9 นั้นไม่เป็นสองรองใคร การซิงโครไนซ์แบบทันทีทันใดของโครงการกับโมเดล maven นั้นยอดเยี่ยมมากและทำให้การพัฒนาเป็นที่น่าพอใจ


6

Intellij มีปลั๊กอิน SVN ที่เหนือกว่ามากกว่า Subversive หรือ Subclipse และใช้งานได้! ระยะเวลาที่เราสูญเสียการรวมไฟล์ต้นฉบับโดยใช้ Eclipse ไม่ได้คิดอะไร นี่ไม่ใช่ปัญหาของ IntelliJ เนื่องจากปลั๊กอินช่วยคุณได้มากขึ้น

นอกจากนี้ปลั๊กอิน Subclipse นั้นไม่น่าเชื่อถือ - เรามีอินสแตนซ์ที่ปลั๊กอินไม่คิดว่ามีการตรวจสอบโค้ดใน SVN โดยผู้พัฒนารายอื่น แต่มี - เซิร์ฟเวอร์ CI ได้ทำการประมวลผลแล้ว!


การสนับสนุน svn นั้นยอดเยี่ยมในความคิดในขณะที่ subclipse / subversive นั้นมีค่าบั๊กกี้เงอะงะและไม่น่าเชื่อถือมาก กันไปสำหรับ git จริง ๆ แล้วฉันไม่จำการรวม git ที่สมเหตุสมผลสำหรับ eclipse และ intelliJ จัดการมันได้ดีมาก
Kamil Mikolajczyk

โดยส่วนตัวฉันคิดว่าคุณควรควบคุมเวอร์ชันทั้งหมดของคุณในบรรทัดคำสั่งแม้ว่า IDE ของคุณจะสามารถทำได้ เมื่อคุณทำเช่นนั้นในบรรทัดคำสั่งคุณจะรู้วิธีทุบตีสคริปต์ในภายหลังซึ่งจะทำให้การพัฒนาของคุณเร็วขึ้น บางครั้งเพื่อนร่วมงานของฉันขอความช่วยเหลือเกี่ยวกับปลั๊กอิน eclipse ของ subclipse หรือ git ฉันแค่บอกให้พวกเขาหยุดใช้และทำมันในบรรทัดคำสั่ง
msknapp

4

VIM Emulator ปลั๊กอินนี้ให้การจำลอง vi / vim / gvim เกือบเสร็จสมบูรณ์ในขณะที่แก้ไขไฟล์ใน IDEA รองรับฟังก์ชั่นต่อไปนี้:

  • ปุ่มเคลื่อนไหว
  • การลบ / เปลี่ยน
  • คำสั่งโหมดแทรก
  • เครื่องหมาย
  • ลงทะเบียน
  • VIM เลิกทำ / ทำซ้ำ
  • คำสั่งโหมดภาพ
  • คำสั่ง Ex บางคำ
  • บาง: ตั้งค่าตัวเลือก
  • นิพจน์ปกติแบบเต็มสำหรับการค้นหาและการค้นหา / แทนที่
  • แมโคร
  • Diagraphs
  • ประวัติบรรทัดคำสั่ง
  • ประวัติการค้นหา
  • Jumplists
  • VIM ช่วย

ความคิดเห็นบางประการเกี่ยวกับปลั๊กอินนี้จากhttp://plugins.jetbrains.net/plugin/?id=164

ฉันมองไม่เห็นว่าจะกลับไปหา IDE อื่น ๆ เพราะปลั๊กอินนี้ดีที่สุดในโลกทั้งสอง ... สุดยอด! นั่นคือสิ่งที่ฉันขาดใน IDEs ทั้งหมด

ฉันยอมรับฉันไม่สามารถอยู่ได้โดยไม่ต้องปลั๊กอิน IdeaVim ฉัน แต่จะเป็นธรรมมีความเป็นกลุ่มปลั๊กอินสำหรับ Eclipse เหมาะเจาะกับชื่อ VimPlugin ( vimplugin.org )
คี ธ

3
Vwrapper เป็นปลั๊กอินเสริมของ Vim Eclipse และใช้งานได้ดีกว่าปลั๊กอิน Idea Vim (ทำงานซ้ำแป้น) Vwrapper ไม่จัดการการค้นหาและแทนที่จากบรรทัดคำสั่งแม้ว่า (แม้ว่าการค้นหาจะทำงานได้ดี) และไม่อนุญาตให้กำหนดแมโครแบบโต้ตอบ เห็นด้วยว่าการสนับสนุน Vim นั้นสำคัญใน IDE จะไม่ใช้ Eclipse หรือไอเดียถ้าไม่มีมัน!
Brent Faust

1
viableplugin.comเป็นสิ่งที่ดีมากสำหรับคราส ฉันใช้ Intellij หนึ่งเช่นกันและฉันพบว่า Intellij หนึ่งบางครั้งถูกวางสายในตัวแก้ไขในบางสถานการณ์และไม่ตอบสนองต่อคำสั่ง
John Lemp

4

หนึ่งในจุดที่ดีในความคิดของฉันคือเมทริกซ์โครงสร้างการพึ่งพา : http://www.jetbrains.com/idea/features/dependency_analysis.html#link0

มีการแนะนำที่ดีเกี่ยวกับการใช้ DSM และประโยชน์ในเว็บไซต์ของ Lattix (ผลิตภัณฑ์แบบสแตนด์อโลน): http://www.lattix.com/files/dl/slides/s.php?directory=4tour


3

สิ่งอื่น ๆ :

  • เผยแพร่พารามิเตอร์ / ข้อยกเว้นเมื่อเปลี่ยนลายเซ็นของเมธอดมีประโยชน์อย่างมากสำหรับการอัพเดตเมธอดภายในสแต็กการโทร
  • การตรวจสอบรหัส SQL ในสตริงที่ส่งผ่านเป็นอาร์กิวเมนต์ไปยังการเรียก jdbc (และเนื้อหาการฉีดภาษาที่รวมใหม่ทั้งหมด)
  • ถูกนำมาใช้ใน / เขียนทับในไอคอนสำหรับอินเทอร์เฟซและคลาส (และวิธีการ) และการนำทางการนำไปใช้อย่างชาญฉลาด (Ctrl + Alt + Click หรือ Ctrl + Alt + B)
  • การเชื่อมโยงระหว่างอินเตอร์เฟส EJB 2.1 และคลาสถั่ว (รวมถึงการสนับสนุนการปรับโครงสร้างใหม่); เก่า แต่ก็ยังมีคุณค่าอย่างมากเมื่อทำงานกับโครงการเก่า

2

สองสิ่งที่ IntelliJ ทำ Eclipse นั้นไม่ได้มีค่ามากสำหรับฉัน:

วิธีการแยก: ผู้ที่เส้นสีเทาจาง ๆ ระหว่างวิธีการทำให้โค้ดมากเพิ่มเติมสามารถอ่านได้

การลบรอยหยักของข้อความ: ทำให้โค้ดดูดีใน IDE


2
ฉันพบว่าการลบรอยหยักของ IntelliJ นั้นแย่กว่า Eclipse มาก อย่างไรก็ตามนี่เป็น IntelliJ รุ่นก่อนหน้านี้ มันได้รับการปรับปรุงหรือไม่?
laz

ฉันใช้ฟอนต์ตามสัดส่วน Verdana ซึ่งฉันคิดว่าดูดีกว่าการใช้ anti-aliasing
Peter Lawrey

2

คุณสมบัติที่มีประโยชน์อย่างหนึ่งคือความสามารถในการสร้างโครงการเครื่องปฏิกรณ์ Maven บางส่วนเพื่อให้มีเฉพาะส่วนที่คุณต้องการ

ในการทำให้สิ่งนี้ชัดเจนยิ่งขึ้นให้พิจารณากรณีของการรวบรวมไฟล์ WAR ที่มีทรัพยากรทั่วไปจำนวนมาก (เช่น JavaScript, ไฟล์ Spring config ฯลฯ ) ที่ใช้ร่วมกันโดยใช้เทคนิคการซ้อนทับ. หากคุณกำลังทำงานบนหน้าเว็บบางหน้า (ทำงานในท่าเทียบเรือ) และต้องการเปลี่ยนรหัสโอเวอร์เลย์บางส่วนที่จัดขึ้นในโมดูลแยกต่างหากปกติแล้วคุณคาดว่าจะต้องหยุดท่า Jetty ให้รัน Maven build เริ่มต้น Jetty อีกครั้งและ ต่อ นี่เป็นกรณีของ Eclipse และ IDE อื่น ๆ ที่ฉันเคยทำงานด้วย ไม่เช่นนั้นใน IntelliJ การใช้การตั้งค่าโครงการคุณสามารถกำหนดแง่มุมของโมดูลที่คุณต้องการรวมไว้ในการสร้างพื้นหลัง ดังนั้นคุณจะจบลงด้วยกระบวนการที่ดูไร้รอยต่อ คุณทำการเปลี่ยนแปลงรหัสใด ๆ ในโครงการและสามารถใช้ได้ทันทีหลังจากรีเฟรชเบราว์เซอร์

เรียบร้อยและเร็วมาก

ฉันไม่สามารถจินตนาการได้ว่าการเขียนรหัสส่วนหน้าในบางสิ่งอย่างเช่น YUI สำรองลงใน DWR / SpringMVC โดยที่ไม่มีมัน


2

คำนำของคำตอบของฉัน: การใช้ Eclipse ของฉันมี จำกัด เราต้องการ Java IDE เพื่อทำงานกับทั้ง Windows และ Mac และพอร์ต Mac ที่ชะลอตัวลงทุกวัน นี่คือปีที่ผ่านมาและฉันแน่ใจว่าตกลงตอนนี้ แต่นั่นคือสิ่งที่ทำให้เราเปลี่ยนมาใช้ IntelliJ และเรามีความสุขกับมัน

ตอนนี้สำหรับคำตอบของฉัน: ความแตกต่างที่สำคัญอย่างหนึ่งที่ฉันยังไม่ได้กล่าวถึงคือการสนับสนุนทางเทคนิคดีกว่ากับ IntelliJ / Jet Brains เราส่งอีเมลไปที่ JetBrains และรับคำตอบที่ชัดเจนภายในเวลาไม่ถึงหนึ่งชั่วโมง การหาคำตอบสำหรับปัญหา Eclipse นั้นเป็นคำตอบที่ปกติคำตอบ "คุณโง่งี่เง่า" (โดยทั่วไปจะมีคำตอบเล็กน้อย) พร้อมกับคำตอบที่ชาญฉลาดและเป็นประโยชน์มากกว่า แต่ต้องใช้การเรียงลำดับเพื่อให้ได้คำตอบที่แท้จริง


Eclipse เป็นโอเพ่นซอร์ส ไม่มีใครจ่ายสำหรับการตอบคำถามหรือแก้ไขข้อบกพร่อง ซื้อ IDE เชิงพาณิชย์ Eclipse เช่น MyEclipse และรับการสนับสนุนสำหรับเงินของคุณ สถิติด่วน: ฉันได้รายงานข้อผิดพลาด JetBrains 56 รายการแล้ว 23 รายการปิดตัวลง จาก 65 ข้อบกพร่องที่รายงานไปยัง Eclipse 33 ถูกปิด ข้อแตกต่างคือ JetBrains แก้ไขข้อบกพร่องได้เร็วกว่า Eclipse เล็กน้อย
Victor

2

สิ่งที่ฉันใช้ใน IntelliJ ตลอดเวลาคือการรีเฟรชขณะที่ฉันพิมพ์ ฉันมีคลาสที่เขียนขึ้นใหม่จากงานพิมพ์ (เขียนครั้งแรกในคราส) โดยใช้ทั้ง IDE และฉันใช้การกดแป้นน้อยกว่า 40% / การคลิกเมาส์เพื่อเขียนคลาสเดียวกันใน IntelliJ กว่า eclipse

ฉันไม่ต้องการใช้ Eclipse จนกว่าพวกเขาจะสนับสนุนการสร้างใหม่ด้วยโค้ดที่ไม่สมบูรณ์

นี่คือรายการคุณลักษณะที่ยาวขึ้นใน IntelliJ 8.0 / 8.1 [ http://www.jetbrains.com/idea/features/index.html]


2

มีสิ่งหนึ่งที่ IntelliJ ทำได้ดีกว่า Eclipse มากและนั่นก็ทำให้กระเป๋าคุณว่างเปล่า!

อย่างไรก็ตามฉันชอบที่จะใช้มันและข้อดีอย่างหนึ่งที่มันมีมากกว่า Eclipce คือวิธีที่มันซิงโครไนซ์กับระบบไฟล์สำหรับโครงการขนาดใหญ่และคอมพิวเตอร์ช้า การต่อสู้ที่ IntelliJ ดูเหมือนว่าจะเร็วขึ้นแม้ว่าจะมีเวลาในการทำดัชนีเริ่มต้นช้าลง

เห็นได้ชัดว่า IntelliJ Community edition ทำให้ใช้งานได้ฟรี แต่คุณต้องการให้มีการรีแฟคเตอร์พิเศษและสินค้าเล็ก ๆ น้อย ๆ ที่ไม่รวมอยู่ในรุ่น CC

ในความเห็นของฉันโดยทั่วไปแล้วมันเป็นประสบการณ์การใช้งานที่ดีขึ้น แต่ไม่ว่าจะคุ้มค่ากับราคาหรือไม่เป็นคำถามสำหรับนักพัฒนาแต่ละคนที่จะตอบตัวเอง

แต่ขอขอบคุณเรามี IDE ที่ยอดเยี่ยมสูงสุดสามตัวสำหรับ Java ในขณะนี้ด้วย NetBeans ที่ดีขึ้นตลอดเวลา


3
IntelliJ Ultimate Edition นั้นไม่ฟรี แต่ในฐานะนักพัฒนาฉันใช้ IDE ประมาณ 8 ถึง 10 ชั่วโมงต่อวัน ดังนั้นฉันไม่เห็นราคาที่สมเหตุสมผลของเขาในฐานะข้อบกพร่อง !!
Romain Linsolas

2

การวิเคราะห์การไหลของข้อมูล : การวิเคราะห์การไหลระหว่างกระบวนการย้อนกลับและการวิเคราะห์การไหลไปข้างหน้าตามที่อธิบายไว้ที่นี่ ประสบการณ์ของฉันขึ้นอยู่กับ Community Edition ซึ่งทำการวิเคราะห์การไหลของข้อมูลค่อนข้างดี มันล้มเหลว (ปฏิเสธที่จะทำอะไร) ในบางกรณีเมื่อรหัสมีความซับซ้อนมาก


2

ก่อนอื่นฉันรัก intellij มีอย่างน้อยหนึ่งร้อยคุณสมบัติที่มีคราสขาดอยู่ ฉันกำลังพูดถึงขนาดที่ดีขึ้นในความน่าเชื่อถือและความฉลาดที่ไม่มีอติพจน์สามารถอธิบายได้เมื่อพูดถึงการปรับโครงสร้างการเปลี่ยนชื่อการย้ายและอื่น ๆ ที่ได้รับการกล่าวถึงไปแล้ว

แต่มีสิ่งหนึ่งที่ intellij ไม่อนุญาตให้มี eclipse ไม่อนุญาตให้เรียกใช้หลายโครงการพร้อมกันภายใต้ vm เดียวกัน

เมื่อคุณมีโครงการแยกต่างหากสำหรับด้านหน้า, กลาง, แกนกลาง, ตัวแทน .. ฯลฯ ซึ่งพวกเขาทั้งหมดต้องโต้ตอบกันคุณจะไม่สามารถแก้ไขและดีบักได้อย่างรวดเร็วในเวลาเดียวกัน, afaik วิธีเดียวที่ฉันจัดการกับสิ่งนี้ในปัจจุบันคือการใช้ ant script ในการปรับใช้และอัพเดตไหในโครงการที่ต้องพึ่งพาหรือใช้ maven

Eclipse อนุญาตให้ดีบักหลายโครงการภายใต้อินสแตนซ์ IDE vm เดียว


4
สิ่งนี้ควรถูกโพสต์ในThings Eclipse สามารถทำได้ IntelliJ Can'tไม่ใช่วิธีอื่น
Neil Traft

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