Skip to content

Commit 28e60fe

Browse files
committed
YankingManager per instance
1 parent a0e64ad commit 28e60fe

File tree

4 files changed

+13
-14
lines changed

4 files changed

+13
-14
lines changed

Sources/STTextViewMac/STTextView+Delete.swift

+9-9
Original file line numberDiff line numberDiff line change
@@ -8,55 +8,55 @@ extension STTextView {
88

99
open override func deleteForward(_ sender: Any?) {
1010
if let deletedString = delete(direction: .forward, destination: .character, allowsDecomposition: false) {
11-
YankingManager.shared.kill(action: .delete, string: deletedString)
11+
_yankingManager.kill(action: .delete, string: deletedString)
1212
}
1313
}
1414

1515
open override func deleteBackward(_ sender: Any?) {
1616
if let deletedString = delete(direction: .backward, destination: .character, allowsDecomposition: false) {
17-
YankingManager.shared.kill(action: .delete, string: deletedString)
17+
_yankingManager.kill(action: .delete, string: deletedString)
1818
}
1919
}
2020

2121
open override func deleteBackwardByDecomposingPreviousCharacter(_ sender: Any?) {
2222
if let deletedString = delete(direction: .backward, destination: .character, allowsDecomposition: true) {
23-
YankingManager.shared.kill(action: .delete, string: deletedString)
23+
_yankingManager.kill(action: .delete, string: deletedString)
2424
}
2525
}
2626

2727
open override func deleteWordBackward(_ sender: Any?) {
2828
if let deletedString = delete(direction: .backward, destination: .word, allowsDecomposition: false) {
29-
YankingManager.shared.kill(action: .deleteWordBackward, string: deletedString)
29+
_yankingManager.kill(action: .deleteWordBackward, string: deletedString)
3030
}
3131
}
3232

3333
open override func deleteWordForward(_ sender: Any?) {
3434
if let deletedString = delete(direction: .forward, destination: .word, allowsDecomposition: false) {
35-
YankingManager.shared.kill(action: .deleteWordForward, string: deletedString)
35+
_yankingManager.kill(action: .deleteWordForward, string: deletedString)
3636
}
3737
}
3838

3939
open override func deleteToBeginningOfLine(_ sender: Any?) {
4040
if let deletedString = delete(direction: .backward, destination: .line, allowsDecomposition: false) {
41-
YankingManager.shared.kill(action: .deleteToBeginningOfLine, string: deletedString)
41+
_yankingManager.kill(action: .deleteToBeginningOfLine, string: deletedString)
4242
}
4343
}
4444

4545
open override func deleteToEndOfLine(_ sender: Any?) {
4646
if let deletedString = delete(direction: .forward, destination: .line, allowsDecomposition: false) {
47-
YankingManager.shared.kill(action: .deleteToEndOfLine, string: deletedString)
47+
_yankingManager.kill(action: .deleteToEndOfLine, string: deletedString)
4848
}
4949
}
5050

5151
open override func deleteToBeginningOfParagraph(_ sender: Any?) {
5252
if let deletedString = delete(direction: .backward, destination: .paragraph, allowsDecomposition: false) {
53-
YankingManager.shared.kill(action: .deleteToBeginningOfLine, string: deletedString)
53+
_yankingManager.kill(action: .deleteToBeginningOfLine, string: deletedString)
5454
}
5555
}
5656

5757
open override func deleteToEndOfParagraph(_ sender: Any?) {
5858
if let deletedString = delete(direction: .forward, destination: .paragraph, allowsDecomposition: false) {
59-
YankingManager.shared.kill(action: .deleteToEndOfParagraph, string: deletedString)
59+
_yankingManager.kill(action: .deleteToEndOfParagraph, string: deletedString)
6060
}
6161
}
6262

Sources/STTextViewMac/STTextView+Yank.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ extension STTextView {
1111
open override func yank(_ sender: Any?) {
1212
replaceCharacters(
1313
in: textLayoutManager.insertionPointSelections.flatMap(\.textRanges),
14-
with: YankingManager.shared.yank(),
14+
with: _yankingManager.yank(),
1515
useTypingAttributes: true,
1616
allowsTypingCoalescing: false
1717
)

Sources/STTextViewMac/STTextView.swift

+3-2
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,7 @@ import AVFoundation
356356
/// `true` if the receiver allows undo, otherwise `false`. Default `true`.
357357
@objc dynamic open var allowsUndo: Bool
358358
internal var _undoManager: UndoManager?
359+
internal var _yankingManager = YankingManager()
359360

360361
internal class MarkedText: CustomDebugStringConvertible {
361362
var markedText: NSAttributedString
@@ -620,7 +621,7 @@ import AVFoundation
620621
NotificationCenter.default.addObserver(forName: STTextLayoutManager.didChangeSelectionNotification, object: textLayoutManager, queue: .main) { [weak self] notification in
621622
guard let self = self else { return }
622623

623-
YankingManager.shared.selectionChanged()
624+
_yankingManager.selectionChanged()
624625

625626
let textViewNotification = Notification(name: Self.didChangeSelectionNotification, object: self, userInfo: notification.userInfo)
626627

@@ -1214,7 +1215,7 @@ import AVFoundation
12141215
let notification = Notification(name: STTextView.textDidChangeNotification, object: self, userInfo: nil)
12151216
NotificationCenter.default.post(notification)
12161217
delegateProxy.textViewDidChangeText(notification)
1217-
YankingManager.shared.textChanged()
1218+
_yankingManager.textChanged()
12181219

12191220
needsDisplay = true
12201221
}

Sources/STTextViewMac/YankingManager.swift

-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import Foundation
77
/// https://www.gnu.org/software/emacs/manual/html_node/emacs/Yanking.html
88
final class YankingManager {
99

10-
static let shared = YankingManager()
11-
1210
enum DeleteAction {
1311
case delete
1412
case deleteToMark

0 commit comments

Comments
 (0)