@@ -200,43 +200,46 @@ extension TextViewController {
200200
201201 // Only handle commands if this is the key window and text view is first responder
202202 guard isKeyWindow && isFirstResponder else { return event }
203- let modifierFlags = event. modifierFlags. intersection ( . deviceIndependentFlagsMask)
203+ return handleEvent ( event: event)
204+ }
205+ }
204206
205- switch event. type {
206- case . keyDown:
207- let tabKey : UInt16 = 0x30
207+ func handleEvent( event: NSEvent ) -> NSEvent ? {
208+ let modifierFlags = event. modifierFlags. intersection ( . deviceIndependentFlagsMask)
209+ switch event. type {
210+ case . keyDown:
211+ let tabKey : UInt16 = 0x30
208212
209- if event. keyCode == tabKey {
210- return self . handleTab ( event: event, modifierFalgs : modifierFlags. rawValue)
211- } else {
212- return self . handleCommand ( event: event, modifierFlags: modifierFlags. rawValue)
213- }
214- case . flagsChanged:
215- if modifierFlags. contains ( . command) ,
216- let coords = view. window? . convertPoint ( fromScreen: NSEvent . mouseLocation) {
217- self . jumpToDefinitionModel? . mouseHovered ( windowCoordinates: coords)
218- }
213+ if event. keyCode == tabKey {
214+ return self . handleTab ( event: event, modifierFlags : modifierFlags. rawValue)
215+ } else {
216+ return self . handleCommand ( event: event, modifierFlags: modifierFlags. rawValue)
217+ }
218+ case . flagsChanged:
219+ if modifierFlags. contains ( . command) ,
220+ let coords = view. window? . convertPoint ( fromScreen: NSEvent . mouseLocation) {
221+ self . jumpToDefinitionModel? . mouseHovered ( windowCoordinates: coords)
222+ }
219223
220- if !modifierFlags. contains ( . command) {
221- self . jumpToDefinitionModel? . cancelHover ( )
222- }
223- return event
224- case . mouseMoved:
225- guard modifierFlags. contains ( . command) else {
226- self . jumpToDefinitionModel? . cancelHover ( )
227- return event
228- }
229- self . jumpToDefinitionModel? . mouseHovered ( windowCoordinates: event. locationInWindow)
230- return event
231- case . leftMouseUp:
232- if let range = jumpToDefinitionModel? . hoveredRange {
233- self . jumpToDefinitionModel? . performJump ( at: range)
234- return nil
235- }
236- return event
237- default :
224+ if !modifierFlags. contains ( . command) {
225+ self . jumpToDefinitionModel? . cancelHover ( )
226+ }
227+ return event
228+ case . mouseMoved:
229+ guard modifierFlags. contains ( . command) else {
230+ self . jumpToDefinitionModel? . cancelHover ( )
238231 return event
239232 }
233+ self . jumpToDefinitionModel? . mouseHovered ( windowCoordinates: event. locationInWindow)
234+ return event
235+ case . leftMouseUp:
236+ if let range = jumpToDefinitionModel? . hoveredRange {
237+ self . jumpToDefinitionModel? . performJump ( at: range)
238+ return nil
239+ }
240+ return event
241+ default :
242+ return event
240243 }
241244 }
242245
@@ -277,10 +280,10 @@ extension TextViewController {
277280 /// are highlighted and handles indenting accordingly.
278281 ///
279282 /// - Returns: The original event if it should be passed on, or `nil` to indicate handling within the method.
280- func handleTab( event: NSEvent , modifierFalgs : UInt ) -> NSEvent ? {
283+ func handleTab( event: NSEvent , modifierFlags : UInt ) -> NSEvent ? {
281284 let shiftKey = NSEvent . ModifierFlags. shift. rawValue
282285
283- if modifierFalgs == shiftKey {
286+ if modifierFlags == shiftKey {
284287 handleIndent ( inwards: true )
285288 } else {
286289 // Only allow tab to work if multiple lines are selected
0 commit comments