@@ -90,7 +90,7 @@ public struct SourceEditor: NSViewControllerRepresentable {
9090 string: " " ,
9191 language: language,
9292 configuration: configuration,
93- cursorPositions: state. cursorPositions,
93+ cursorPositions: state. cursorPositions ?? [ ] ,
9494 highlightProviders: context. coordinator. highlightProviders,
9595 undoManager: undoManager,
9696 coordinators: coordinators
@@ -104,8 +104,8 @@ public struct SourceEditor: NSViewControllerRepresentable {
104104 if controller. textView == nil {
105105 controller. loadView ( )
106106 }
107- if !state. cursorPositions. isEmpty {
108- controller. setCursorPositions ( state. cursorPositions)
107+ if !( state. cursorPositions? . isEmpty ?? true ) {
108+ controller. setCursorPositions ( state. cursorPositions ?? [ ] )
109109 }
110110
111111 context. coordinator. setController ( controller)
@@ -124,7 +124,9 @@ public struct SourceEditor: NSViewControllerRepresentable {
124124 context. coordinator. isUpdateFromTextView = false
125125 } else {
126126 context. coordinator. isUpdatingFromRepresentable = true
127- controller. setCursorPositions ( state. cursorPositions)
127+ if let cursorPositions = state. cursorPositions {
128+ controller. setCursorPositions ( cursorPositions)
129+ }
128130
129131 if let scrollPosition = state. scrollPosition {
130132 controller. scrollView. scroll ( controller. scrollView. contentView, to: scrollPosition)
@@ -136,11 +138,12 @@ public struct SourceEditor: NSViewControllerRepresentable {
136138 controller. findViewController? . viewModel. findText = findText
137139 }
138140
139- if let findController = controller. findViewController,
140- findController. viewModel. isShowingFindPanel != state. findPanelVisible {
141+ if let findPanelVisible = state. findPanelVisible,
142+ let findController = controller. findViewController,
143+ findController. viewModel. isShowingFindPanel != findPanelVisible {
141144 // Needs to be on the next runloop, not many great ways to do this besides a dispatch...
142145 DispatchQueue . main. async {
143- if state . findPanelVisible {
146+ if findPanelVisible {
144147 findController. showFindPanel ( )
145148 } else {
146149 findController. hideFindPanel ( )
0 commit comments