imguicolortextedit
ไวยากรณ์การไฮไลต์ตัวแก้ไขข้อความสำหรับ Imgui

โครงการสาธิต: https://github.com/balazsjako/colortexteditordemo
สิ่งนี้เริ่มต้นจากความพยายามของฉันในการเขียนวิดเจ็ตที่ค่อนข้างง่ายซึ่งให้ฟังก์ชั่นการแก้ไขข้อความด้วยการไฮไลต์ไวยากรณ์ ตอนนี้มีผู้มีส่วนร่วมอื่น ๆ ที่ให้การเพิ่มเติมที่มีค่า
ในขณะที่มันขึ้นอยู่กับ https://github.com/ocornut/imgui ของ Omar Cornut แต่มันไม่ได้เป็นไปตามวิดเจ็ตหนึ่ง "บริสุทธิ์" - วิธีการหนึ่งฟังก์ชั่น เนื่องจากบรรณาธิการต้องรักษาสถานะภายในที่ค่อนข้างซับซ้อนและมีขนาดใหญ่จึงดูเหมือนจะไม่สามารถลองและบังคับใช้โหมดทันทีได้อย่างสมบูรณ์ มันเก็บสถานะภายในของมันในอินสแตนซ์วัตถุซึ่งนำกลับมาใช้ใหม่ในเฟรม
รหัสกำลังดำเนินการอยู่ระหว่างดำเนินการโปรดรายงานหากคุณพบปัญหาใด ๆ
คุณสมบัติหลัก
- ใกล้เคียงกับรูปลักษณ์และความรู้สึกของตัวแก้ไขรหัสทั่วไป (คำสั่งเมาส์/คีย์บอร์ดที่จำเป็นใช้งานได้ - ฉันหมายถึงคำสั่ง ที่ฉัน ใช้ตามปกติ :))
- เลิกทำ/ทำซ้ำ
- การสนับสนุน UTF-8
- ทำงานกับแบบอักษรทั้งแบบคงที่และตัวแปร
- การเน้นไวยากรณ์ที่ขยายได้สำหรับหลายภาษา
- การประกาศตัวระบุ: คำอธิบายชิ้นเล็ก ๆ สามารถเชื่อมโยงกับตัวระบุ ตัวแก้ไขจะแสดงในคำแนะนำเครื่องมือเมื่อเคอร์เซอร์เมาส์ลอยอยู่เหนือตัวระบุ
- เครื่องหมายข้อผิดพลาด: ผู้ใช้สามารถระบุรายการข้อความแสดงข้อผิดพลาดเข้าด้วยกันบรรทัดของการเกิดขึ้นตัวแก้ไขจะสูงขึ้นบรรทัดที่มี backround สีแดงและข้อความแสดงข้อผิดพลาดแสดงในคำแนะนำเครื่องมือเมื่อเคอร์เซอร์เมาส์ลอยอยู่เหนือเส้น
- ไฟล์ขนาดใหญ่: ไม่มีการ จำกัด ขีด จำกัด ที่ชัดเจนเกี่ยวกับขนาดไฟล์หรือจำนวนบรรทัด (ต่ำกว่า 2GB ประสิทธิภาพจะไม่ได้รับผลกระทบเมื่อโหลดไฟล์ขนาดใหญ่ (ยกเว้นการระบายสีไวยากรณ์ดูด้านล่าง)
- การรองรับจานสี: คุณสามารถสลับระหว่างจานสีที่แตกต่างกันหรือแม้แต่กำหนดของคุณเอง
- ตัวบ่งชี้ช่องว่าง (แท็บพื้นที่)
ปัญหาที่รู้จัก
- ไวยากรณ์สูงของภาษาส่วนใหญ่ - ยกเว้น C/C ++ - ขึ้นอยู่กับ std :: regex ซึ่งช้า diasppointingly ด้วยเหตุนี้กระบวนการไฮไลต์จึงถูกตัดจำหน่ายระหว่างหลายเฟรม C/C ++ มี tokenizer ที่เขียนด้วยมือซึ่งเร็วกว่ามาก
โปรดโพสต์ภาพหน้าจอของคุณหากคุณพบว่าซอฟต์แวร์ชิ้นเล็ก ๆ นี้มีประโยชน์ -
มีส่วนช่วย
หากคุณต้องการมีส่วนร่วมโปรดดูที่ไฟล์ Intribute