ข้อความประเสริฐ - ปรับสไตล์รั้ง


3

codebase ของเรามีรูปแบบรั้ง "หยิก" นั่นคือ { จะปรากฏในบรรทัดเดียวกับ function (หรือ if หรือ while ) คำสั่งว่ามันไปกับ:

if (condition) {
    doThis();
}
else {
    doThat();
}

เรามีโคเดอร์ที่คอยทำสิ่งต่าง ๆ ด้วยวงเล็บปีกกาบนบรรทัดถัดไปที่ว่างเปล่า

if (condition)
{
    doThis();
}
else
{
    doThat();
}

ฉันไม่ต้องการเริ่มการถกเถียงเกี่ยวกับข้อดีของรูปแบบสองรูปแบบ แต่ฉันต้องการนำโค้ดของโปรแกรมนี้ให้สอดคล้องกับสไตล์ที่เรากำหนด มี Sublime Text plugin หรือมาโครที่จะแปลงระหว่างสไตล์เหล่านี้หรือไม่? การทำด้วยตนเองดูเหมือนจะเป็นการเสียเวลาเปล่า


1
คำถามนี้อยู่ในหัวข้อเกี่ยวกับ Super User เนื่องจากเป็นเรื่องเกี่ยวกับการกำหนดค่าและการใช้งานข้อความมากกว่าการเขียนโปรแกรม แน่นอนคุณสามารถ ขอร้อง การย้ายถิ่นเช่น หากคุณไม่ได้รับคำตอบใด ๆ ที่นี่หลังจากสองสามวัน
Daniel Beck

ไม่ใช่วิธีที่ดีกว่าในการปฏิเสธนักพัฒนาซอฟต์แวร์ที่มุ่งมั่นต่อ SCM เช่น ด้วยการโค่นล้มการผูกตะขอไว้ล่วงหน้า?
Daniel Beck

ไปข้างหน้านั่นอาจเป็นทางเลือกที่ปฏิบัติได้ (และฉันได้บอกให้เขาเคาะมันออกไปดังนั้นฉันหวังว่ามันจะไม่เกิดขึ้นอีก) แต่มีรหัสมากมายที่เขาได้รับใน repo ของเราที่มีตัวแปร รั้งสไตล์ ดังนั้นเรากำลังพูดถึงการล้างข้อมูล ณ จุดนี้
Curtis Gibby

1
ในกรณีดังกล่าวนิพจน์ทั่วไปที่มีหลายบรรทัดอาจใช้งานได้กับคุณขึ้นอยู่กับภาษาการเขียนโปรแกรม (ผลข้างเคียงเช่นอาร์เรย์อาร์เรย์โครงสร้างและสิ่งอื่น ๆ ที่เป็นเส้นหยัก) คุณสามารถลองแทนที่ทั้งหมด (นิพจน์ทั่วไป) "* \ n \ {" กับ "{" และทั้งหมด "* \} \ n * อื่น" ด้วย "} else" เป็นตัวเลือกที่ใช้เทคโนโลยีต่ำมาก นอกจากนี้ยังขึ้นอยู่กับภาษาการเขียนโปรแกรมคุณสามารถใช้โปรแกรมแก้ไขเช่น Visual Studio (มีตัวแปรอิสระ) หรือ Eclipse เพียงครั้งเดียวทำการฟอร์แมตฐานรหัสทั้งหมดจากนั้นทำหนึ่งใน "การล้างข้อมูล"
Daniel Beck

คำตอบ:


4

ตามที่ Daniel Beck แนะนำในความคิดเห็นของเขาสิ่งนี้สามารถทำได้ด้วยการค้นหาและแทนที่ regex regex ที่ลงเอยด้วยการทำงานให้ฉันใน Sublime Text มีดังต่อไปนี้:

หาอะไร: \n(\s)*\{ (นั่นคือค้นหาอักขระขึ้นบรรทัดใหม่ตามด้วยอักขระเว้นวรรคศูนย์หรือมากกว่าตามด้วยอักขระรั้งปีกกาซ้าย

แทนที่ด้วย: { (ช่องว่างและรั้งหยิกซ้าย)

ฉันกำลังทำแทนหนึ่งโดยหนึ่งเนื่องจากบางครั้งโปรแกรมโกงของฉันบางครั้งยังติดรหัสใน "หยิกรั้ง" บรรทัดเช่นนี้ ...

if (condition)
{doThis();}

... และฉันต้องตรวจสอบอีกครั้งก่อนที่ฉันจะทำการเปลี่ยน

ฉันยังคิดว่าปลั๊กอินอาจสามารถจัดการกับสถานการณ์แบบนี้ได้อย่างงดงาม แต่ตอนนี้ใช้ได้สำหรับตอนนี้


ฉันมีปัญหาเดียวกันเมื่อพวกเขาได้เพิ่มความคิดเห็นด้วย { // comments หลังจาก {. มันจะเป็นการดีถ้าคุณหา regex ที่จะจับความคิดเห็นและขยับรั้งไว้ข้างหน้า
not2qubit

1
@ not2qubit ปลั๊กอิน CodeFormatter ในคำตอบอื่น ๆ ของฉันจะแก้ไขปัญหานั้นได้โดยไม่มีปัญหา
Curtis Gibby

2

ฉันพบปลั๊กอินข้อความ Sublime ที่ยอดเยี่ยมที่เรียกว่า CodeFormatter ที่จะปรับรูปแบบการรั้งในรหัสที่แตกต่างกันหลายประเภทเช่นเดียวกับการทำคุณสมบัติ "beautify" อื่น ๆ อีกมากมาย

Huzzah!

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