Skip to content

krzyzanowskim/STTextView-Plugin-Neon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 STPluginNeon

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

SwiftUI:

import SwiftUI
import STTextViewUI
import STPluginNeon

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)
    }
}