Swiftpack.co -  Package - ICToolkit/SwiftyMonaco
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
ICToolkit/SwiftyMonaco
SwiftyMonaco is a wrapper for Monaco Editor from Microsoft
.package(url: "https://github.com/ICToolkit/SwiftyMonaco.git", from: "v0.1.1")

SwiftyMonaco

SwiftyMonaco is a wrapper for Monaco Editor from Microsoft.

image

How to use?

There is a simple example of how to use SwiftyMonaco

import SwiftUI

struct EditorView: View {
    @State var text: String
    
    var body: some View {
        SwiftyMonaco(text: $text)
    }
}

Syntax Highlighting

Also you can use SwiftyMonaco with syntax highlighting by passing SyntaxHighlight rule:

import SwiftUI

struct EditorView: View {
    @State var text: String
    
    var body: some View {
        SwiftyMonaco(text: $text)
            .syntaxHighlight(.systemVerilog)
    }
}

Default SyntaxHighlights

SyntaxHighlight Language
.swift Swift
.cpp C++
.systemVerilog Verilog/SystemVerilog

How to create your own SyntaxHighlight?

To create your own SyntaxHighlight you can use available initializers:

// With JS file containing syntax definition for Monarch
let syntax = SyntaxHighlight(title: "My custom language", fileURL: Bundle.module.url(forResource: "lang", withExtension: "js", subdirectory: "Languages")!)
// With a String containing syntax definition for Monarch
let syntax = SyntaxHighlight(title: "My custom language", configuration: "...")

You can create your own syntax at Monaco Editor Monarch website

Interface theme detection

SwiftyMonaco automatically detects interface theme changes and updates Monaco Editor theme according to it without dropping the current state of the editor. image image

GitHub

link
Stars: 1
Last commit: 2 weeks ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco