สวัสดีทุกคน! นักพัฒนามีเครื่องมือ ' การเขียน' พื้นฐาน นั่นคือ สภาพแวดล้อมการพัฒนาเช่น
Eclipse ,
NetBeansและอื่น ๆ แต่ไม่ต้องสงสัยเลยว่า สภาพแวดล้อมที่ได้รับความนิยมสูงสุดในขณะนี้คือ
IntelliJ IDEA ได้รับการออกแบบมาเพื่อเพิ่มความสามารถในการเขียนโค้ดของคุณ ทำให้กระบวนการง่ายขึ้นมากหลายเท่า
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 1]()
แต่บางทีฟังก์ชันที่มีให้โดยสภาพแวดล้อมนี้อาจไม่เพียงพอสำหรับทุกคน หรือบางคนอาจต้องการกำหนดเอง ความจริงก็คือสิ่งที่คุณต้องทำคือขยายฟังก์ชันการทำงานโดยการเพิ่มปลั๊กอิน
ปลั๊กอินเป็นวิธีเพิ่มฟังก์ชันให้กับโปรแกรมหลัก ออกแบบมาเพื่อขยายขีดความสามารถ |
วันนี้เราจะมาดู 10 ปลั๊กอินที่น่าสนใจสำหรับการทำงานใน IntelliJ IDEA พวกเขาจะช่วยคุณในการทำงานของคุณ หรืออย่างน้อยก็เป็นกำลังใจให้คุณ =) อันดับแรก เราจะแนะนำคุณผ่าน
boot camp สำหรับการติดตั้งปลั๊กอินใน IntelliJ IDEAโดยใช้การติดตั้งธีมใหม่เป็นตัวอย่าง
1. ธีม IntelliJ IDEA
คุณเคยรู้สึกไหมว่าชุดธีม IntelliJ IDEA ที่มีอยู่อย่างจำกัดขาดหายไป? บางทีคุณอาจต้องการเลือกอย่างอื่น บางทีคุณอาจต้องการขุดและค้นหาสิ่งที่เหมาะกับคุณใช่ไหม มาทำกันเถอะ! ในการเริ่มต้น ไป
ที่นี่และเลือกธีม (หรือชุดธีม) ที่เหมาะกับคุณ ตัวอย่างเช่น ฉันเลือก
Gradianto ต่อไป เรามีสองวิธีในการติดตั้งปลั๊กอิน
วิธีที่ 1: ติดตั้งโดยตรงจากเว็บไซต์ JetBrains
คุณต้องเปิด IDEA หลังจากเลือกธีมแล้ว ให้คลิกที่ปุ่ม
Get -> Install จากนั้น คุณจะได้รับแจ้งให้เลือกเวอร์ชันของ IntelliJ IDEA ที่คุณได้ติดตั้งบนคอมพิวเตอร์ของคุณ:
↓
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 3]()
ถัดไป หน้าต่างต่อไปนี้จะปรากฏขึ้นในสภาพแวดล้อมการพัฒนาของคุณ:
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 4]()
คลิก
ตกลง ติดตั้งปลั๊กอินแล้ว! ถัดไป บางครั้งคุณต้องรีสตาร์ท
IntelliJ IDEAเพื่อให้ปลั๊กอินเริ่มทำงาน สำหรับปลั๊กอินที่มีธีม ไม่จำเป็น — ธีมจะเปลี่ยนเป็นสีเขียวทันที:
วิธีที่ 2: การติดตั้งจาก IntelliJ IDEA
ใน IDEA ที่มุมซ้ายบน ให้ไปที่
ไฟล์ -> การตั้งค่า :
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 6]()
ถัดไป ไปที่ แท็บ
ปลั๊กอินและพิมพ์ชื่อของปลั๊กอิน (
Gradianto ) ในแถบค้นหา แม้เพียงบางส่วน:
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 7]()
คลิก ปุ่ม
ติดตั้ง สีเขียว และคุณ เสร็จแล้ว!
การเปลี่ยนธีม
สีเขียวไม่ใช่ธีมใหม่เพียงอย่างเดียว หากต้องการดูส่วนที่เหลือ:
- กลับไปที่ไฟล์ -> การตั้งค่า
- เปิดแท็บ "ลักษณะที่ปรากฏ"
หลังจากนั้น คลิกที่รายการแบบหล่นลงของ
ธีม![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 8]()
และดูสี่ธีมใหม่ที่มีอยู่: ฉันชอบ ธีม
Gradianto Deep Oceanมากที่สุด:
ปิดใช้งาน / ถอนการติดตั้งปลั๊กอิน
มาดูวิธีปิดใช้งานหรือถอนการติดตั้งปลั๊กอินทั้งหมด:
- อีกครั้ง เปิดหน้าต่างการตั้งค่า -> ปลั๊กอิน
- เลือกแท็บที่ติดตั้ง
กดปิด
ใช้งานเพื่อทำให้ปลั๊กอินไม่ทำงาน:
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 10]()
หากคุณคลิกลูกศรที่อยู่ถัดจาก
เปิดใช้งาน/ปิดใช้งาน คุณจะเห็นหน้าต่างให้คุณลบปลั๊กอินออกจาก
IDEA ของคุณ :
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 11]()
อย่างที่คุณเห็น ทุกอย่างค่อนข้างง่าย :) ถ้าอย่างนั้น มาดูปลั๊กอิน IDEA สองสามตัวที่มีประโยชน์มาก
2. การจัดการสตริง
นี่คือปลั๊กอินที่จะเพิ่มความสามารถในการจัดการสตริงใหม่ๆ ให้กับ IDEA ของคุณ คุณสามารถค้นหาได้ที่
นี่ เมื่อคุณติดตั้งและรีสตาร์ทสภาพแวดล้อมการพัฒนา หากคุณคลิกขวา เช่น ชื่อของตัวแปรหรือการเลือกข้อความ คุณจะสังเกตเห็นรายการเมนูบริบทการจัดการสตริงใหม่ ซึ่งให้ความเป็นไปได้มากมายสำหรับการเปลี่ยนสตริง
ที่เลือก :
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 12]()
ปลั๊กอินนี้จะมีประโยชน์มากที่สุดเมื่อคุณต้องการโต้ตอบกับข้อความที่มีขนาดใหญ่มาก ช่วยให้คุณสามารถกรอง จัดเรียง เปลี่ยนตัวพิมพ์ เปลี่ยนรูปแบบการเขียนโค้ด (เช่น เปลี่ยนข้อความทั้งหมดเป็น camelCase) เปลี่ยนบางอย่างในทุกบรรทัดของข้อความในการดำเนินการครั้งเดียว (โอ้ ฟังดูน่าสนใจ) เข้ารหัสข้อความใน บางรูปแบบ (เช่น ในรูปแบบเลขฐานสิบหก SHA-1) และอื่นๆ อีกมากมาย ใช่ ในตอนแรกดูเหมือนว่าจะมีฟังก์ชันต่างๆ มากเกินไป และจะไม่ชัดเจนว่าสิ่งนี้หรือสิ่งนั้นทำหน้าที่อะไร แต่เมื่อเวลาผ่านไป คุณจะคุ้นเคยและกลายเป็นเทพแห่งการจัดรูปแบบข้อความใน IntelliJ IDEA
3. เทรนเนอร์คุณสมบัติ IDE
ปลั๊กอินนี้มีไว้สำหรับผู้เริ่มต้นเป็นหลัก ช่วยให้คุณเรียนรู้ทางลัดและฟังก์ชันพื้นฐานใน IDE แบบโต้ตอบได้ คุณสามารถคิดว่ามันเหมือนกับจ่าฝึกส่วนตัวของคุณเองใน IntelliJ IDEA คุณสามารถค้นหาได้ที่นี่ที่
นี่ หลังการติดตั้ง ให้ไปที่ส่วน
Help -> IDE Features Trainer ![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 13]()
จากนั้น เลือกหัวข้อที่คุณต้องการเรียนรู้เพิ่มเติม ตัวอย่างเช่น การจัดองค์ประกอบใหม่:
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 14]()
จากนั้นเริ่มทำแบบฝึกหัดทีละขั้นตอน
4. โปรโมเตอร์หลัก X
ฉันสังเกตเห็นว่ายิ่งโปรแกรมเมอร์มีประสบการณ์และความชำนาญมากเท่าไหร่ เขาหรือเธอก็จะรู้จักปุ่มลัดมากขึ้นเท่านั้น ท้ายที่สุด แทนที่จะค้นหารหัสด้วยตนเองหรือทำบางสิ่งด้วยตนเอง คุณสามารถกดแป้นพิมพ์ลัดสองสามปุ่ม เสร็จแล้ว! เป็นผลให้คุณทำงานได้เร็วขึ้นมาก ให้ฉันแนะนำคุณเกี่ยวกับปลั๊กอิน
Key Promoter X หลังจากโหลดแล้ว เมื่อเราไปที่หน้าต่างการตั้งค่า เมนู หรือแท็บบางอย่าง เราจะเห็นข้อความแจ้งพร้อมแป้นพิมพ์ลัดที่มุมขวาล่างซึ่งสามารถดำเนินการแบบเดียวกันได้ (เช่น จะเปิดหน้าต่างการตั้งค่า เมนู ฯลฯ):
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 15]()
เมื่อคุณเพิ่มสิ่งนี้ในการรันผ่าน
IDE Features Trainerบทช่วยสอน คุณจะสามารถทำงานใน IDEA ได้โดยไม่ต้องใช้เมาส์จริงๆ (ซึ่งจะทำให้งานของคุณเร็วขึ้นหลายเท่า)
5. Rainbow Brackets และ HighlightBracketPair
ฉันไม่สามารถพูดถึงปลั๊กอิน
Rainbow Brackets ได้ เมื่อติดตั้งแล้ว จะทำให้การเขียนโค้ดสะดวกขึ้นมาก เนื่องจากวงเล็บคู่หนึ่งจะมีหลายสี:
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 16]()
ช่วยให้คุณเห็นได้ทันทีว่าวงเล็บเปิดใดจับคู่กับวงเล็บปิด สีไม่ได้กำหนดโดยพลการ (ไม่ได้เลือกโดยการสุ่ม) มีเหตุผลบางอย่าง: วงเล็บที่ระดับการซ้อนกันจะมีสีเดียวกัน ตัวอย่างเช่น วงเล็บภายในสีเหลืองจะเป็นสีเขียว และในวงเล็บสีเขียว ทุกอย่างจะเป็นสีน้ำเงิน เป็นต้น... พูดถึงวงเล็บ เรามาต่อที่
HighlightBracketPairกัน เมื่อใช้ปลั๊กอินนี้ คุณจะเห็นบล็อกรหัสหรือวงเล็บเฉพาะที่เคอร์เซอร์อยู่อย่างชัดเจน เนื่องจากวงเล็บคู่ที่เกี่ยวข้องจะถูกเน้น:
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 17]()
เครื่องมือทั้งสองนี้มีประโยชน์มากหากคุณกำลังทำงานกับโค้ดที่ซ้อนกันอย่างหนัก
6. โคโดต้า เอไอ
ในอดีตอันไกลโพ้น โค้ดมักถูกเขียนด้วยโปรแกรมแก้ไขข้อความธรรมดา และตอนนี้ลองนึกดูว่าคุณลืมวงเล็บที่ไหนสักแห่ง หรือทำชื่อชั้นเรียนผิด ไม่มีอะไรจะรวบรวม! ส่งผลให้ในสมัยนั้นคุณต้องใช้เวลาหลายชั่วโมงในการค้นหาข้อผิดพลาดและระมัดระวังอย่างมากในการเขียนโค้ด ความทรมานแบบนั้นมีไว้สำหรับคนที่ประสาทแข็งที่สุดเท่านั้น ฉันคิดว่ามันน่ารำคาญมากพอที่คนบางคนเริ่มสร้างสภาพแวดล้อมที่หลากหลายสำหรับการทำงานกับโค้ด IntelliJ IDEA, Eclipse, NetBeans... และตอนนี้คุณได้ทำงานใน IntelliJ IDEA ซึ่งฉลาดมากและให้ความช่วยเหลืออย่างไม่น่าเชื่อในการเขียนโค้ด แนะนำตำแหน่งของข้อผิดพลาดที่เป็นไปได้ และดึงชื่อคลาสและวิธีการที่เกี่ยวข้องทันทีที่คุณเริ่ม พิมพ์พวกเขา ทำให้มันฉลาดขึ้นหน่อยเป็นไง? สำหรับสิ่งนี้,
ปลั๊กอิน
Codota AI ปลั๊กอินนี้ออกแบบมาเพื่อให้การเติมโค้ดอัตโนมัติดีขึ้นด้วย AI
Codota ใช้โมเดลแมชชีนเลิร์นนิงที่ทันสมัยที่สุด ตามโปรแกรมโอเพ่นซอร์สหลายล้านโปรแกรมเพื่อช่วยเติมบรรทัดโค้ดอัตโนมัติ ช่วยให้คุณเขียนโค้ดได้เร็วขึ้นมากและมีข้อผิดพลาดน้อยลง กล่าวอีกนัยหนึ่ง ปลั๊กอินนี้ช่วยให้ IDEA แจ้งเตือนคุณตามบริบทของแอปพลิเคชันของคุณ ตัวอย่างเช่น มันสามารถแสดงตัวแปรที่เข้าถึงได้และมองเห็นได้ของประเภทที่ต้องการ:
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 18]()
คุณยังสามารถเลือกกลุ่มรหัสเฉพาะ เช่น ชื่อเมธอด และลองค้นหาตัวอย่างสำเร็จรูป:
7. จุดบั๊ก
เมื่อพูดถึงผู้ช่วยเขียนโค้ด ฉันคิดว่าการมีตัวช่วยจับข้อบกพร่องคงไม่เสียหายใช่ไหม นี่คือจุดที่ ปลั๊กอิน
SpotBugsเข้าสู่ขั้นตอนต่างๆ SpotBugs ทำการวิเคราะห์แบบคงที่ของ bytecode เพื่อค้นหาจุดบกพร่องในโค้ด Java ภายใน IntelliJ IDEA นั่นคือ ปลั๊กอินนี้เป็นเครื่องมือที่ยอดเยี่ยมในการตรวจจับข้อบกพร่องของ Java บางอย่าง โดยการวิเคราะห์โค้ดของคุณและเปรียบเทียบกับรูปแบบข้อบกพร่องมากกว่า 400 แบบและวิธีแก้ปัญหาที่ไม่ดี ข้อผิดพลาดดังกล่าวรวมถึงการวนซ้ำแบบไม่รู้จบ
การล็อกตาย ล็อกไลฟ์
ล็อกและการใช้ไลบรารีต่างๆ อย่างไม่ถูกต้อง SpotBugs สามารถระบุข้อบกพร่องร้ายแรงหลายร้อยรายการในแอปพลิเคชันขนาดใหญ่ (โดยปกติจะมีข้อผิดพลาดประมาณ 1 รายการในซอร์สโค้ด 1,000–2,000 บรรทัดที่ไม่ได้แสดงความคิดเห็น) หลังจากติดตั้งปลั๊กอิน ในเมนู เลือก
วิเคราะห์ -> SpotBugs -><เป้าหมายของการวิเคราะห์>. เป้าหมายสามารถเป็นได้ทั้งไฟล์เดียวหรือทั้งโมดูล รวมถึงหรือไม่รวมถึงการทดสอบที่เกี่ยวข้อง:
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 20]()
หลังจากการวิเคราะห์เสร็จสิ้น ที่ด้านล่าง คุณจะเห็นหน้าต่างที่ระบุข้อบกพร่องทั้งหมดที่พบหรือแนวทางแก้ไขที่ไม่ดีพร้อมกับคำแนะนำในการแก้ไข:
8. ผู้ช่วย Maven
ปลั๊กอิน
Maven Helperเป็นสิ่งที่ต้องมีสำหรับทุกคนที่ใช้ Maven เพิ่มวิธีง่ายๆ ในการวิเคราะห์และกำจัดการพึ่งพาที่ขัดแย้งกัน ตลอดจนความสามารถในการดูการพึ่งพา Maven ในมุมมองต่างๆ (เป็นรายการหรือแผนภูมิ) หากต้องการเรียกใช้การวิเคราะห์ ให้เปิด ไฟล์
pomแล้วคลิก แท็บ
ตัววิเคราะห์การพึ่งพาที่ด้านล่าง จากนั้นคุณจะสามารถดูว่าการพึ่งพาใดขัดแย้งกับสิ่งใดและไม่รวมการพึ่งพาใดที่ขัดแย้งกัน:
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 22]()
ปลั๊กอินยังเพิ่มคุณสมบัติเพิ่มเติมสำหรับการเรียกใช้ / ดีบักแต่ละไฟล์หรือโมดูลรูท:
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 23]()
การเปิดใช้งานตัวจัดการการพึ่งพานี้จะช่วยให้คุณประหยัดเวลาในการแก้ปัญหาเกี่ยวกับการพึ่งพา
9. รอยขีดข่วน
เมื่อเขียนโค้ด คุณมักจะคิดว่า "สิ่งนี้จะต้องได้รับการแก้ไขก่อนที่จะคอมมิต" คุณจะต้องเขียนข้อมูลชั่วคราวไว้ที่ใดที่หนึ่งเพื่อเป็นข้อมูลอ้างอิงของคุณเองหรือสำหรับการทดสอบ หรือคุณจะต้องการบันทึกโน้ตหรือ ข้อมูลที่เห็นเมื่อดีบักแอปพลิเคชันของคุณ โดยทั่วไปหมายถึงการเปิดตัวอินสแตนซ์ใหม่ของ Notepad อย่างรวดเร็ว แต่ก็ยังไม่ดีนัก เราจะใช้ประโยชน์จากเครื่องมือที่นำเสนอโดย IntelliJ IDEA อันเป็นที่รักของเราได้อย่างไร ตัวอย่างเช่นปลั๊กอิน
Scratch ปลั๊กอินนี้ช่วยให้คุณสร้างแท็บโปรแกรมแก้ไขข้อความชั่วคราวใน IDEA ซึ่งคุณสามารถเขียนโค้ด เก็บข้อมูลชั่วคราว หรือจดความคิดที่คุณต้องการใช้ในภายหลังได้อย่างรวดเร็ว แต่ไม่จำเป็นต้องบันทึกตลอดไป ระบบไฟล์ของคุณจะไม่ถูกทิ้งด้วยไฟล์ TXT แบบใช้ครั้งเดียวอีกต่อไป หลังจากโหลดปลั๊กอินแล้ว ให้กด
Alt+C. หน้าต่างจะปรากฏขึ้น ซึ่งคุณสามารถระบุชื่อสำหรับไฟล์ข้อความของคุณ:
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 24]()
หลังจากที่เราคลิก
ตกลงเราจะได้แท็บที่มีไฟล์ข้อความชั่วคราว หากไฟล์ถูกสร้างขึ้นก่อนหน้านี้ แป้นพิมพ์ลัดนี้จะเปิดขึ้น หากมีรายการแท็บเหล่านี้ยาวอยู่แล้ว แท็บล่าสุดจะเปิดขึ้น ในคำอธิบายปลั๊กอิน คุณสามารถดูปุ่มลัดที่เหลือสำหรับการใช้ไฟล์ข้อความชั่วคราวเหล่านี้ คุณยังสามารถเข้าถึงไฟล์ชั่วคราวเหล่านี้ได้จากเมนู:
Tools -> Scratch -> ...
10. แถบความคืบหน้า
และสุดท้าย มีเรื่องตลกขบขัน — ฉันอยากจะพูดถึงปลั๊กอิน
แถบความคืบหน้า เล็กๆ น้อยๆ ที่ดูตลกๆ ปลั๊กอินเหล่านี้เปลี่ยนรูปลักษณ์ที่น่าเบื่อทั่วไปของแถบความคืบหน้าให้สนุกยิ่งขึ้น ตัวอย่างเช่น ฉันชอบ ปลั๊กอิน
Marioมาก หรือลอง ใช้
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 26]()
![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 27]()
ปลั๊กอินยอดนิยมอย่าง
Nyan Progress Bar![10 ปลั๊กอินที่มีประโยชน์สำหรับ IntelliJ IDEA: สำหรับผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ - 28]()
ฉันต้องการแจ้งให้คุณทราบว่าการเพิ่มฟังก์ชันเพิ่มเติมอาจทำให้ IDEA ใช้ทรัพยากรมากขึ้น และความหลงใหลในปลั๊กอินที่มากเกินไปอาจส่งผลต่อประสิทธิภาพของสภาพแวดล้อมการพัฒนาของคุณ ดังนั้นเมื่อพยายามรวบรวมชุดปลั๊กอินในอุดมคติของคุณ อย่าละเลย: คุณต้องพยายามรักษา "สื่อกลางแห่งความสุข" ระหว่างประสิทธิภาพและฟังก์ชันเพิ่มเติม นั่นคือทั้งหมดสำหรับฉันในวันนี้ :) บอกเราเกี่ยวกับปลั๊กอินที่คุณชื่นชอบในความคิดเห็น
GO TO FULL VERSION