Skip to content

Latest commit

 

History

History
48 lines (39 loc) · 1.22 KB

README.md

File metadata and controls

48 lines (39 loc) · 1.22 KB

STTextView Source Code Syntax Highlighting with TreeSitter and Neon.

Notepad.exe.mp4

Installation

Add the plugin package as a dependency of your application, then register/add it to the STTextView instance:

import NeonPlugin

textView.addPlugin(
    NeonPlugin(
        theme: .default,
        language: .swift
    )
)

SwiftUI:

import SwiftUI
import STTextViewUI
import NeonPlugin

struct ContentView: View {
    @State private var text: AttributedString = ""
    @State private var selection: NSRange?
    var body: some View {
        STTextViewUI.TextView(
            text: $text,
            selection: $selection,
            options: [.wrapLines, .highlightSelectedLine],
            plugins: [NeonPlugin(theme: .default, language: .swift)]
        )
        .textViewFont(.monospacedDigitSystemFont(ofSize: NSFont.systemFontSize, weight: .regular))
        .onAppear {
            loadContent()
        }
    }

    private func loadContent() {
        // (....)
        self.text = AttributedString(string)
    }
}