Le package Swift CodeEditorView fournit une vue Swiftui implémentant un éditeur de code riche pour iOS, VisionOS et macOS dont le style visuel est inspiré par Xcode. La fonctionnalité actuellement prise en charge comprend la mise en évidence de la syntaxe avec des thèmes configurables, le message en ligne (avertissements, les erreurs, etc.), les rapports, l'appariement du support, l'insertion du support de correspondance, la mise en évidence actuelle de la ligne et un minimap.
Mise à jour:
CodeEditorView est désormais basé sur TextKit 2.CodeEditorView sur la version antérieure de MacOS ou iOS, vous devez utiliser la version 0.12.0 ou la branche textkit1 de ce référentiel. (Je n'ai pas la bande passante pour prendre en charge TextKit 2 sur les versions antérieures du système d'exploitation, mais je suis heureux d'accepter les PR qui en ajoutent une prise en charge. Ils doivent utiliser Swift 5.9, cependant.)CodeEditorView prend également en charge (1) l'affichage d'informations sur les identifiants (tels que les informations de type et la documentation fournies dans Markdown) ainsi que (2) l'achèvement du code. Cela sera finalement pris en charge sur iOS. Il s'agit du thème sombre par défaut sur macOS. Comme dans Xcode, les messages ont une vue en ligne sur le côté droit de l'écran, qui apparaît dans une superposition plus grande pour afficher plus d'informations. Le minimap à droite fournit un aperçu du texte édité.

Ce qui suit est le thème lumineux par défaut sur iOS.

L'utilisation typique de la vue est la suivante.
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 )
}
} Pour voir le CodeEditorView en action, jetez un œil au dépôt avec une application de démonstration multiplateforme.
Pour plus d'informations, consultez la documentation du package.
Je considère que c'est la qualité pré-libération. Il suffit de construire quelque chose avec, mais il n'est pas encore prêt pour la production. La vue CodeEditor prend déjà en charge pas mal de fonctionnalités avancées (telles que les messages en ligne, un minimap et (sur macOS) l'achèvement du code). Les autres composants sont encore assez simples, comme la plage de jetons couverts par la configuration du langage, mais c'est aussi quelque chose qui est facilement étendu. Les performances sont toujours un problème pour les fichiers plus grands.
Copyright [2021..2024] Manuel Mt Chakravarty.
Distribué sous la licence Apache-2.0 - Voir le fichier de licence pour plus de détails.