|
|
@@ -94,18 +94,26 @@ class ViewController: NSViewController, NSTextViewDelegate, NSUserNotificationCe |
|
|
|
formatText(with: "_\(getSelectedText())_", offset: 1) |
|
|
|
} |
|
|
|
|
|
|
|
func addLink() { |
|
|
|
let text = getSelectedText() |
|
|
|
formatText(with: "[\(text)](http://)", offset: text == "" ? 1 : (text.characters.count + 10), alwaysOffset: true) |
|
|
|
} |
|
|
|
|
|
|
|
fileprivate func getSelectedText() -> String { |
|
|
|
let selectedRange = writerText.selectedRange() |
|
|
|
return (self.writerText.textStorage?.string as! NSString).substring(with: selectedRange) |
|
|
|
} |
|
|
|
|
|
|
|
fileprivate func formatText(with: String, offset: Int) { |
|
|
|
formatText(with: with, offset: offset, alwaysOffset: false) |
|
|
|
} |
|
|
|
fileprivate func formatText(with: String, offset: Int, alwaysOffset: Bool) { |
|
|
|
let selectedRange = writerText.selectedRange() |
|
|
|
let selString = getSelectedText() |
|
|
|
if self.writerText.shouldChangeText(in: selectedRange, replacementString: with) { |
|
|
|
self.writerText.replaceCharacters(in: NSRange(location: selectedRange.location, length: selectedRange.length), with: with) |
|
|
|
self.writerText.didChangeText() |
|
|
|
if selString == "" { |
|
|
|
if selString == "" || alwaysOffset { |
|
|
|
writerText.setSelectedRange(NSRange(location: selectedRange.location + offset, length: 0)) |
|
|
|
} |
|
|
|
} |
|
|
|