aboutsummaryrefslogtreecommitdiff
path: root/QuickLook/PreviewViewController.swift
diff options
context:
space:
mode:
Diffstat (limited to 'QuickLook/PreviewViewController.swift')
-rw-r--r--QuickLook/PreviewViewController.swift113
1 files changed, 0 insertions, 113 deletions
diff --git a/QuickLook/PreviewViewController.swift b/QuickLook/PreviewViewController.swift
index 9dbc5f2..8a3467f 100644
--- a/QuickLook/PreviewViewController.swift
+++ b/QuickLook/PreviewViewController.swift
@@ -1,9 +1,6 @@
import Cocoa
import Quartz
-import SwiftTreeSitter
-import SwiftTreeSitterLayer
import SwiftUI
-import TreeSitterWmap
import WmapParser
class PreviewViewController: NSViewController, QLPreviewingController {
@@ -99,113 +96,3 @@ class PreviewViewController: NSViewController, QLPreviewingController {
}
}
}
-
-// A SwiftUI view specifically for QuickLook preview
-struct MapPreviewView: View {
- let parsedMap: WmapParser.Map
- @State private var selectedEvolution: StageType = .general
-
- var body: some View {
- GeometryReader { geometry in
- let mapSize = Dimensions.Map.size
- let padding = Dimensions.Map.padding
- let totalWidth = mapSize.width + 2 * padding
- let totalHeight = mapSize.height + 2 * padding
-
- // Calculate scale to fit the available space
- let scaleX = geometry.size.width / totalWidth
- let scaleY = geometry.size.height / totalHeight
- let scale = min(scaleX, scaleY, 1.0) // Don't scale up, only down
-
- ScrollView([.horizontal, .vertical]) {
- MapRenderView(
- parsedMap: parsedMap,
- evolution: $selectedEvolution
- )
- .drawingGroup(opaque: false)
- .scaleEffect(scale)
- .frame(
- width: totalWidth * scale,
- height: totalHeight * scale
- )
- }
- .frame(maxWidth: .infinity, maxHeight: .infinity)
- .background(Color.white)
- }
- }
-}
-
-// A read-only text editor for QuickLook that shows syntax highlighting
-struct QuickLookTextEditor: NSViewRepresentable {
- let content: String
-
- func makeNSView(context: Context) -> NSScrollView {
- let scrollView = NSTextView.scrollableTextView()
- let textView = scrollView.documentView as! NSTextView
-
- // Configure the scroll view
- scrollView.hasVerticalScroller = true
- scrollView.hasHorizontalScroller = true
- scrollView.autohidesScrollers = false
-
- // Configure the text view for read-only display
- textView.isEditable = false
- textView.isSelectable = true
- textView.backgroundColor = NSColor.textBackgroundColor
- textView.font = NSFont.monospacedSystemFont(ofSize: 13, weight: .regular)
- textView.string = content
- textView.isVerticallyResizable = true
- textView.isHorizontallyResizable = true
- textView.textContainer?.widthTracksTextView = false
- textView.textContainer?.containerSize = NSSize(
- width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude)
-
- // Apply syntax highlighting using tree-sitter
- if let textStorage = textView.textStorage {
- applyTreeSitterHighlighting(textStorage: textStorage, content: content)
- }
-
- return scrollView
- }
-
- func updateNSView(_ nsView: NSScrollView, context: Context) {
- // No updates needed for read-only view
- }
-
- private func applyTreeSitterHighlighting(textStorage: NSTextStorage, content: String) {
- // Set up tree-sitter language layer
- guard let wmapConfiguration = try? LanguageConfiguration(tree_sitter_wmap(), name: "wmap")
- else { return }
-
- let languageConfiguration = LanguageLayer.Configuration(languageProvider: { name in
- switch name {
- case "wmap": return wmapConfiguration
- default: return nil
- }
- })
-
- guard
- let rootLayer = try? LanguageLayer(
- languageConfig: wmapConfiguration, configuration: languageConfiguration)
- else { return }
-
- // Update layer with content
- rootLayer.replaceContent(with: content)
-
- // Set default text color
- let fullRange = NSRange(location: 0, length: textStorage.length)
- textStorage.addAttribute(.foregroundColor, value: NSColor.textColor, range: fullRange)
-
- // Apply tree-sitter highlighting
- guard
- let highlights = try? rootLayer.highlights(
- in: fullRange, provider: content.predicateTextProvider)
- else { return }
-
- for highlight in highlights {
- let color = NSColor.Theme.Syntax.colorForSyntax(highlight.name)
- textStorage.addAttribute(.foregroundColor, value: color, range: highlight.range)
- }
- }
-
-}