เป็นไปได้ไหมที่จะใช้สิ่งที่ต้องทำหลายเส้นใน IntelliJ IDEA


92

ถ้าใช่อย่างไร

หากไม่เป็นเช่นนั้นมีวิธีแก้ปัญหาเพื่อให้ได้ฟังก์ชันการทำงานที่คล้ายกันหรือไม่?

แก้ไข:

สิ่งที่ฉันหมายถึงมีดังนี้:

// TODO line1
// line2
// line3

และ line1, line2, line3 เป็นของเดียวกันTODOและเน้นด้วยสีน้ำเงิน


คำตอบ:


52

ไม่ไม่ใช่สำหรับตอนนี้

คุณลักษณะนี้ได้รับการพูดคุยแต่ยังไม่ได้ใช้งาน

แก้ไข / ปรับปรุง:

มีการใช้งานในเวอร์ชัน 2018.3


12
โปรดใช้เวลาสักครู่เพื่อไปที่ลิงก์นั้นและลงคะแนนให้กับปัญหาเพื่อจัดลำดับความสำคัญของตั๋วนี้ มีไอคอนยกนิ้วโป้งถัดจาก "ผู้มีสิทธิเลือกตั้ง" ทางด้านขวา
adamdport

2
ตอนนี้นำไปใช้ใน IDEA 2018.3 ซึ่งปัจจุบันอยู่ใน EAP blog.jetbrains.com/idea/2018/09/…
เดวิด

และตอนนี้พร้อมใช้งานสำหรับ Android ที่มี Android Studio 3.4 รุ่นที่ใช้ IDEA 2018.3
shaktiman_droid


62

นี้ได้รับการสนับสนุนตั้งแต่ 2,018.3

ความคิดเห็นเกี่ยวกับสิ่งที่ต้องทำหลายรายการ

ความคิดเห็นเกี่ยวกับสิ่งที่ต้องทำหลายรายการ

IntelliJ IDEA 2,018.3 ขณะนี้สนับสนุนการแสดงความคิดเห็นสิ่งที่ต้องทำหลายตอนนี้เป็นครั้งแรกและต่อมาสิ่งที่ต้องทำทุกสายการแสดงความคิดเห็นเป็นไฮไลต์ในการแก้ไขและระบุไว้ในหน้าต่างเครื่องมือสิ่งที่ต้องทำ เพียงเพิ่มการเยื้องโดยเริ่มจากบรรทัดที่สองของความคิดเห็นสิ่งที่ต้องทำหลายบรรทัดของคุณและ IDE จะแยกความแตกต่างจากความคิดเห็นทั่วไป


ขอขอบคุณ! มีประโยชน์มาก. ปัญหาเดียวคือเมื่อฉันคลิก Ctrl-Alt-L เพื่อจัดรูปแบบไฟล์ของฉันการเยื้องจะถูกลบออก มีความคิดอย่างไรในการป้องกันสิ่งนี้?
Gep

27

ในการตั้งค่าของฉันฉันใช้ regex สำหรับ multiline TODO:

\/(\/|\*)[ ]*\btodo\b(.|\n)*(\*\/|)

ปัญหาเดียวคือมันไม่เน้น * / สัญลักษณ์สุดท้ายของความคิดเห็นแบบหลายบรรทัด ถ้าใครแก้ได้จะดีมาก!


1
พบข้อบกพร่องที่อาจเกิดขึ้นสองข้อ (หรือข้อผิดพลาดในส่วนของฉัน) กับสิ่งนี้สำหรับ Android Studios เป็นอย่างน้อย ด้วยเหตุผลบางประการมันทำให้การจัดทำดัชนี repo ของฉันสำหรับคลาสเดียวในโครงการของฉันออกไป ชั้นเดียวกันทุกครั้งด้วย. ลบสิ่งนี้ออกจากรายการสิ่งที่ต้องทำและจัดทำดัชนีใหม่อย่างเหมาะสม ประการที่สองจะสร้างปัญหา StackOverflow เมื่อ IDE โหลดขึ้น แต่ IDE ไม่โพสต์คำเตือนหรือบังคับปิดหรืออะไรเลยดังนั้นฉันจึงไม่แน่ใจในความรุนแรง ฉันจะตรวจสอบต่อไป แต่สิ่งที่ควรค่าแก่การกล่าวถึงหากมีใครพบเจอ ที่กล่าวมาดูเหมือนจะทำตามที่ควรจะเป็นนอกเหนือจากนั้น
zgc7009

สวัสดี zgc7009! คุณช่วยโพสต์ความคิดเห็นสิ่งที่ต้องทำของคุณที่นี่ได้ไหม มีคนเห็นมากขึ้น - เร็วขึ้นเราจะพบปัญหา :-)
NonGrate

5

คุณหมายถึงสิ่งนี้หรือไม่? การใช้รายการสิ่งที่ต้องทำ

/**
 * todo multi-line
 *  
 */

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


3

จากคำตอบของ NonGrate:

ไปที่การตั้งค่าค้นหาการตั้งค่าสิ่งที่ต้องทำและแทนที่รายการสิ่งที่ต้องทำที่มีอยู่ " \ btodo \ b. * " ด้วย:

(\btodo\b.*)|(\/\*(\*(?!\/)|[^*])*\btodo\b(\*(?!\/)|[^*])*\*\/)

ผลลัพธ์:

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

คุณต้องใช้ * / เพื่อปิดไฮไลต์

ใช้ 2 รูปแบบ:

  1. (\ btodo \ b. )จับบรรทัดใดก็ได้ที่มีคำว่า todo
  2. (/ \ * (\ * (?! /) | [^ *]) * \ btodo \ b (\ * (?! /) | [^ *] * \ * /)จับความคิดเห็นหลายบรรทัดโดยเริ่มต้นด้วย / * และ ลงท้ายด้วย * /

ชุดค่าผสมอื่น ๆ อาจไม่ทำงาน

หมายเหตุ: คุณต้องแทนที่ regex ที่มีอยู่เพื่อหลีกเลี่ยงไม่ให้มีรายการสิ่งที่ต้องทำเดียวกันหลายอินสแตนซ์ปรากฏในรายการสิ่งที่ต้องทำ


เพิ่งใช้สิ่งนี้ใน IntelliJ 2017.1.3 บน Mac และใช้งานได้ดี ขอบคุณ!
yokeho

2
ใน Android Studio ปัจจุบันใช้งานไม่ได้เหมือนที่ @Jeremy กล่าวไว้ข้างต้น ... แต่ใช้ได้กับการใช้ / ** การทดสอบก่อนการทดสอบ TODO หลังจาก * /
Codeversed

3
คำเตือน: สิ่งนี้ทำให้ IntelliJ และ Android Studio แตกออกเป็นพันล้านชิ้น มีการเรียกซ้ำ RegEx ซึ่งถือว่าเกือบจะเป็นบาปในการพัฒนา Java เนื่องจากวิธีการรวบรวมนิพจน์ RegEx และคุณสามารถทำให้เกิด SO ได้ง่ายเพียงใด (ซึ่งเป็นสาเหตุนี้)
mradzinski

-1

regex นี้ใช้ได้กับฉัน:

(?:(?:todo|TODO)(?:\[[A-Z,a-z]+\-\d+\])?\s(\s*\b.*\b)*)|(?:\/\*\s*(?:todo|TODO)(?:\[[A-Z,a-z]+\-\d+\])?\s(?:(?!\*\/)[\s\S])*\*\/)

โดยทั่วไปจะค้นหาสิ่งต่อไปนี้:

  • สิ่งที่ต้องทำหรือสิ่งที่ต้องทำคำหลัก suffixed เลือกโดยรหัสตั๋ว / ปัญหาในวงเล็บและจำนวนตัวอักษรใด ๆ หลังจากที่ตัวละครที่พื้นที่สีขาวเดียว
  • ความคิดเห็นแบบหลายบรรทัดของ java ที่เริ่มต้นด้วย/ *ตามด้วยช่องว่างจำนวนเท่าใดก็ได้จากนั้นเงื่อนไขที่ระบุไว้ในคำอธิบายสิ่งที่ต้องทำบรรทัดเดียวด้านบน จะสิ้นสุดเมื่อพบ* /ในบรรทัดใด ๆ ต่อไปนี้

ตัวอย่างบรรทัดเดียว:

todo some very important stuff
TODO[SAOY-1376] An urgent bug fix described in the SAOY-1376
// todo some very important stuff
// TODO[SAOY-1376] An urgent bug fix described in the SAOY-1376

ตัวอย่างหลายบรรทัด:

/* todo assignee or something
    a very important message
    another thing
*/

/* TODO[SAO-13]
 * a very important message
 * another thing
*/
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.