แพ็คเกจ CodeEditorView Swift ให้มุมมอง Swiftui ที่ใช้โปรแกรมแก้ไขรหัสที่หลากหลายสำหรับ iOS, VisionOS และ MacOS ซึ่งรูปแบบการมองเห็นได้รับแรงบันดาลใจจาก XCode ฟังก์ชั่นที่ได้รับการสนับสนุนในปัจจุบันรวมถึงการเน้นไวยากรณ์ด้วยธีมที่กำหนดค่าได้ข้อความอินไลน์ (คำเตือนข้อผิดพลาด ฯลฯ ) การรายงานการจับคู่วงเล็บ
อัปเดต:
CodeEditorView ตอนนี้ขึ้นอยู่กับ TextKit 2CodeEditorView ใน MACOS หรือ iOS รุ่นก่อนหน้าคุณต้องใช้รีลีส 0.12.0 หรือสาขา textkit1 ของที่เก็บนี้ (ฉันไม่มีแบนด์วิดท์เพื่อรองรับ TextKit 2 ในเวอร์ชันระบบปฏิบัติการก่อนหน้านี้ แต่ฉันยินดีที่จะรับ PRS ที่เพิ่มการสนับสนุนพวกเขาต้องใช้ Swift 5.9)CodeEditorView ยังรองรับ (1) การแสดงข้อมูลเกี่ยวกับตัวระบุ (เช่นข้อมูลประเภทและเอกสารที่มีให้ใน Markdown) เช่นเดียวกับ (2) รหัสเสร็จสมบูรณ์ ในที่สุดสิ่งนี้ก็จะได้รับการสนับสนุนบน iOS นี่คือธีมมืดเริ่มต้นบน MacOS เช่นเดียวกับใน Xcode ข้อความมีมุมมองแบบอินไลน์ทางด้านขวามือของหน้าจอซึ่งปรากฏขึ้นในการซ้อนทับที่ใหญ่กว่าเพื่อแสดงข้อมูลเพิ่มเติม Minimap ทางด้านขวามีโครงร่างของข้อความที่แก้ไข

ต่อไปนี้เป็นธีมไฟเริ่มต้นบน iOS

การใช้งานทั่วไปของมุมมองมีดังนี้
import SwiftUI
import CodeEditor
import LanguageSupport
struct ContentView : View {
@ State private var text : String = " My awesome code... "
@ State private var position : CodeEditor . Position = CodeEditor . Position ( )
@ State private var messages : Set < TextLocated < Message > > = Set ( )
@ Environment ( . colorScheme ) private var colorScheme : ColorScheme
var body : some View {
CodeEditor ( text : $text , position : $position , messages : $messages , language : . swift )
. environment ( . codeEditorTheme ,
colorScheme == . dark ? Theme . defaultDark : Theme . defaultLight )
}
} หากต้องการดูการดำเนินการ CodeEditorView ให้ดูที่ repo ด้วยแอพสาธิตข้ามแพลตฟอร์ม
สำหรับข้อมูลเพิ่มเติมดูเอกสารประกอบแพ็คเกจ
ฉันคิดว่าสิ่งนี้มีคุณภาพล่วงหน้า มันเพียงพอที่จะสร้างบางสิ่งบางอย่างกับมัน แต่ยังไม่พร้อมสำหรับการผลิต มุมมอง CodeEditor รองรับฟังก์ชั่นขั้นสูงเล็กน้อย (เช่นข้อความอินไลน์, minimap และ (บน MacOS) เสร็จสิ้นรหัส) ส่วนประกอบอื่น ๆ ยังคงค่อนข้างง่ายเช่นช่วงของโทเค็นที่ครอบคลุมโดยการกำหนดค่าภาษา แต่นั่นก็เป็นสิ่งที่ขยายได้ง่าย ประสิทธิภาพยังคงเป็นปัญหาสำหรับไฟล์ขนาดใหญ่
ลิขสิทธิ์ [2021..2024] Manuel Mt Chakravarty
แจกจ่ายภายใต้ใบอนุญาต Apache-2.0-ดูไฟล์ใบอนุญาตสำหรับรายละเอียด