STTextView Source Code Syntax Highlighting with TreeSitter and Neon.
Notepad.exe.mp4
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)
}
}