توفر حزمة CodeEditorView Swift عرض Swiftui لتنفيذ محرر رمز غني لنظام التشغيل iOS و VisionOS و MacOS الذي يستوحى أسلوبه البصري من Xcode. تتضمن الوظيفة المدعومة حاليًا تسليط الضوء على بناء الجملة مع السمات القابلة للتكوين ، ورسائل مضمّنة (التحذيرات ، والأخطاء ، وما إلى ذلك) الإبلاغ ، ومطابقة قوسين ، وإدخال قوس مطابق ، وتمييز الخط الحالي ، وصفيحة الحد الأدنى.
تحديث:
CodeEditorView الآن على Textkit 2.CodeEditorView على الإصدار السابق من MacOS أو iOS ، فأنت بحاجة إلى استخدام الإصدار 0.12.0 أو فرع textkit1 لهذا المستودع. (ليس لدي عرض النطاق الترددي لدعم Textkit 2 على إصدارات OS السابقة ، لكن يسعدني قبول PRS التي تضيف دعمًا لها. إنهم بحاجة إلى استخدام Swift 5.9 ، على الرغم من ذلك).CodeEditorView أيضًا (1) عرض معلومات حول المعرفات (مثل معلومات النوع والوثائق المقدمة في Markdown) وكذلك (2) إكمال الكود. وسيتم دعم هذا في النهاية على iOS. هذا هو الموضوع الظلام الافتراضي على MacOS. كما هو الحال في XCode ، حصلت الرسائل على عرض مضمّن على الجانب الأيمن من الشاشة ، والذي يظهر في تراكب أكبر لعرض المزيد من المعلومات. يوفر الحد الأدنى على اليمين مخططًا تفصيليًا للنص المعدل.

ما يلي هو موضوع الضوء الافتراضي على 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 في العمل ، ألق نظرة على ريبو مع تطبيق العرض التجريبي عبر المنصات.
لمزيد من المعلومات ، راجع وثائق الحزمة.
أنا أعتبر هذا جودة ما قبل الإصدار. يكفي بناء شيء ما معه ، لكنه ليس جاهزًا للإنتاج بعد. تدعم عرض CodeEditor بالفعل قدرًا كبيرًا من الوظائف المتقدمة (مثل الرسائل المضمنة ، وإنجاز رمز MinorAp ، و (على MacOS)). لا تزال المكونات الأخرى بسيطة للغاية ، مثل نطاق الرموز المميزة التي يغطيها تكوين اللغة ، ولكن هذا شيء يتم تمديده بسهولة. لا يزال الأداء مشكلة للملفات الأكبر.
حقوق الطبع والنشر [2021..2024] مانويل جبل تشاكرافارتي.
تم توزيعه بموجب ترخيص Apache-2.0-راجع ملف الترخيص للحصول على التفاصيل.