O Pacote Swift CodeEditorView fornece uma visualização SwiftUi implementando um editor de código rico para iOS, Visionos e MacOS cujo estilo visual é inspirado no Xcode. A funcionalidade atualmente suportada inclui destaque de sintaxe com temas configuráveis, mensagem embutida (avisos, erros, etc.) relatórios, correspondência de suporte, inserção de suporte correspondente, destaque da linha atual e um minimap.
Atualizar:
CodeEditorView agora é baseado no TextKit 2.CodeEditorView na versão anterior do MacOS ou iOS, precisará usar a Release 0.12.0 ou a filial textkit1 deste repositório. (Não tenho a largura de banda para apoiar o TextKit 2 nas versões anteriores do sistema operacional, mas estou feliz em aceitar o PRS que adiciona suporte a ele. Eles precisam usar o Swift 5.9, no entanto.)CodeEditorView também suporta (1) exibindo informações sobre identificadores (como informações de tipo e documentação fornecidas no Markdown), bem como (2) conclusão do código. Isso também será apoiado no iOS. Este é o tema sombrio padrão no macOS. Como no Xcode, as mensagens têm uma exibição em linha no lado direito da tela, que aparece em uma sobreposição maior para exibir mais informações. O minimap à direita fornece um esboço do texto editado.

A seguir, o tema da luz padrão no iOS.

O uso típico da visão é o seguinte.
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 o CodeEditorView em ação, dê uma olhada no repositório com um aplicativo de demonstração de plataforma cruzada.
Para mais informações, consulte a documentação do pacote.
Considero que isso é uma qualidade de pré-lançamento. É suficiente construir algo com ele, mas ainda não está pronto para a produção. A visualização CodeEditor já suporta um pouco de funcionalidade avançada (como as mensagens embutidas, um minimap e (no macOS) conclusão do código). Outros componentes ainda são bastante simples, como a gama de tokens cobertos pela configuração do idioma, mas isso também é algo que é facilmente estendido. O desempenho ainda é um problema para arquivos maiores.
Direitos autorais [2021..2024] Manuel Mt Chakravarty.
Distribuído sob a licença Apache-2.0-consulte o arquivo de licença para obter detalhes.