El paquete CodeEditorView Swift proporciona una visión Swiftui que implementa un editor de código rico para iOS, Visisos y MacOS cuyo estilo visual está inspirado en XCode. La funcionalidad actualmente compatible incluye resaltar sintaxis con temas configurables, mensajes en línea (advertencias, errores, etc.) Informes, coincidencia de soporte, inserción de soporte de correspondencia, resaltado de línea actual y un minimap.
Actualizar:
CodeEditorView ahora se basa en TextKit 2.CodeEditorView en la versión anterior de MacOS o iOS, debe usar la versión 0.12.0 o la rama textkit1 de este repositorio. (No tengo el ancho de banda para admitir TextKit 2 en versiones del sistema operativo anteriores, pero estoy feliz de aceptar PRS que agregan apoyo. Sin embargo, necesitan usar Swift 5.9).CodeEditorView también admite (1) mostrar información sobre identificadores (como la información de tipo y la documentación proporcionada en Markdown), así como (2) finalización del código. Esto eventualmente también será apoyado en iOS. Este es el tema oscuro predeterminado en MacOS. Al igual que en Xcode, los mensajes tienen una vista en línea en el lado derecho de la pantalla, que aparece en una superposición más grande para mostrar más información. El minimap a la derecha proporciona un esquema del texto editado.

El siguiente es el tema de luz predeterminado en iOS.

El uso típico de la vista es el siguiente.
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 )
}
} Para ver el CodeEditorView en acción, eche un vistazo al repositorio con una aplicación de demostración multiplataforma.
Para obtener más información, consulte la documentación del paquete.
Considero que esto es la calidad previa al lanzamiento. Es suficiente construir algo con él, pero aún no está listo para la producción. La vista CodeEditor ya admite un poco de funcionalidad avanzada (como los mensajes en línea, un minimap y (en macOS) la finalización del código). Otros componentes siguen siendo bastante simples, como el rango de tokens cubiertos por la configuración del idioma, pero eso también es algo que se extiende fácilmente. El rendimiento sigue siendo un problema para archivos más grandes.
Copyright [2021..2024] Manuel Mt Chakravarty.
Distribuido bajo la licencia Apache-2.0: consulte el archivo de licencia para obtener más detalles.