เซิร์ฟเวอร์ภาษาแบ็คเอนด์ที่นำฟีเจอร์ IDE มาสู่ตัวแก้ไข Rust
สัมผัสกับการทำงานที่รวดเร็วและรวมเข้ากับโปรแกรมแก้ไขด้วย rust-analyzer ซึ่งพัฒนาโดย The Rust Project Developers เพื่อทำหน้าที่เป็นแบ็คเอนด์ Language Server Protocol สำหรับโค้ด Rust เครื่องมือนี้ให้การวิเคราะห์โค้ดแบบเรียลไทม์ การนำทาง และการเปลี่ยนแปลงอัตโนมัติที่เชื่อมต่อกับโปรแกรมแก้ไขหลายตัวเพื่อเพิ่มฟีเจอร์ IDE ความสามารถหลักประกอบด้วยการเติมอัจฉริยะ เคล็ดลับการแสดงประเภท การวินิจฉัยแบบทันที การค้นหาสัญลักษณ์ และการปรับโครงสร้างเช่น การเปลี่ยนชื่อและการแยกฟังก์ชัน มันมุ่งเป้าไปที่วิศวกรซอฟต์แวร์ โปรแกรมเมอร์ระบบ และผู้ที่ชื่นชอบที่ต้องการพฤติกรรม IDE ระดับมืออาชีพภายในโปรแกรมแก้ไขที่พวกเขาชื่นชอบ
เครื่องมือที่ให้บริการสำหรับการพัฒนา Rust
rust-analyzer ทำหน้าที่เป็น LSP backend ที่ให้ฟีเจอร์ของโปรแกรมแก้ไขจากการวิเคราะห์โค้ดอย่างลึกซึ้ง มันเปิดเผยการวินิจฉัยแบบสดและชุดของการกระทำสำหรับนักพัฒนา ความสามารถหลักประกอบด้วย:
- การเติมโค้ดอัจฉริยะและข้อเสนอการนำเข้าทั่วไป
- ไปที่การกำหนดและค้นหาทั้งหมดอ้างอิง
- เคล็ดลับการแทรกประเภทและการค้นหาสัญลักษณ์ทั่วทั้งพื้นที่ทำงาน
- การปรับโครงสร้างเช่นการเปลี่ยนชื่อ, การแยกฟังก์ชัน, การแยกตัวแปร
มันมีผลต่อความตอบสนองของโปรแกรมแก้ไขในโครงการขนาดใหญ่หรือไม่?
ออกแบบมาเพื่อความเร็วและความตอบสนอง แม้ในฐานข้อมูลโค้ดขนาดใหญ่ เครื่องมือถูกออกแบบมาเพื่อลดความล่าช้าในขณะที่ทำการวิเคราะห์พื้นที่ทำงาน มันทำงานผ่านโปรโตคอล Language Server ดังนั้นความตอบสนองจริงขึ้นอยู่กับการใช้งาน LSP ของโปรแกรมแก้ไขที่เป็นเจ้าภาพและทรัพยากรของเครื่องที่มีอยู่ เครื่องมือต้องการโปรแกรมแก้ไขที่สนับสนุน LSP และ Rust toolchain ที่ใช้งานได้เพื่อให้ผลลัพธ์ที่ถูกต้องและสด
มันปลอดภัยที่จะพึ่งพาการวินิจฉัยของมันในการพัฒนาหรือไม่?
การวินิจฉัยเชื่อมโยงกับตรรกะระดับคอมไพเลอร์ เพราะเครื่องมือใช้ตรรกะด้านหน้าเดียวกันกับคอมไพเลอร์ Rust และแสดงข้อเสนอที่อิงจากการวินิจฉัยของคอมไพเลอร์ ข้อเสนอ Quick Fix มาจากการวินิจฉัยเหล่านั้น ดังนั้นการตอบสนองจึงสอดคล้องกับการวิเคราะห์ของคอมไพเลอร์แทนที่จะเป็นเพียงอัลกอริธึมข้อความง่ายๆ การรวมกันนี้ให้สัญญาณที่คาดเดาได้และขับเคลื่อนด้วยการวิเคราะห์สำหรับปัญหาโค้ดระหว่างการพัฒนา
ฉันต้องการความรู้ทางเทคนิคในการติดตั้งและย้ายไปยังมันหรือไม่?
ต้องการการตั้งค่าบางอย่าง: โปรแกรมแก้ไขที่สนับสนุน LSP บวกกับคอมไพเลอร์ Rust ที่ทำงานได้และ Cargo เป็นสิ่งจำเป็น Visual Studio Code มีส่วนขยายที่มีการปรับปรุงมากที่สุดสำหรับเครื่องมือ ในขณะที่โปรแกรมแก้ไขอื่นๆ อาจต้องการการกำหนดค่า LSP ด้วยตนเอง เครื่องมือใช้สถาปัตยกรรมที่แตกต่างจาก Rust Language Server รุ่นเก่า ดังนั้นโครงการและการทำงานอาจต้องการการปรับเปลี่ยนเล็กน้อยระหว่างการย้าย
ทางเลือกที่ใช้งานได้จริงสำหรับนักพัฒนาที่สะดวกกับการตั้งค่าโปรแกรมแก้ไข
rust-analyzer เป็นตัวเลือกที่ใช้งานได้จริงสำหรับนักพัฒนาที่ต้องการแบ็กเอนด์การพัฒนาที่ขับเคลื่อนด้วย LSP ภายในโปรแกรมแก้ไขที่เลือก; มันให้รางวัลแก่ผู้ที่ยินดีที่จะตั้งค่าเครื่องมือ Rust และการรวมโปรแกรมแก้ไข ข้อแลกเปลี่ยนหลักคือการตั้งค่าเบื้องต้นและการปรับเปลี่ยนการย้ายจากเครื่องมือเก่าเป็นครั้งคราว สำหรับทีมที่จัดการกับฐานข้อมูลโค้ด Rust ขนาดใหญ่ ให้กำหนดการวิเคราะห์พื้นที่ทำงานเริ่มต้นในช่วงเวลาที่ไม่ยุ่งเพื่อ ลดการรบกวนในขณะที่เซิร์ฟเวอร์ทำการจัดทำดัชนีโครงการ.
ข้อดี
- ออกแบบมาเพื่อความเร็วในฐานข้อมูล Rust ขนาดใหญ่
- LSP backend ที่ไม่ขึ้นอยู่กับโปรแกรมแก้ไขรองรับ VS Code, Neovim, Emacs, Sublime Text
- เครื่องมือการปรับโครงสร้างรวมถึงการเปลี่ยนชื่อและการแยกฟังก์ชัน
- ใช้ตรรกะส่วนหน้าของคอมไพเลอร์ Rust สำหรับการวินิจฉัยที่แม่นยำ
ข้อเสีย
- ต้องการคอมไพเลอร์ Rust ที่ทำงานได้และติดตั้ง Cargo
- ประสบการณ์ที่ดีที่สุดขึ้นอยู่กับส่วนขยายของโปรแกรมแก้ไขที่มีความละเอียด เช่น VS Code
- สถาปัตยกรรมที่แตกต่างจาก RLS ต้องการการปรับเปลี่ยนการย้ายถิ่น