Add "add link" shortcut
This commit is contained in:
parent
81aa1bed98
commit
5ed52f4eb2
@ -95,6 +95,11 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
|||||||
wc?.emphasize()
|
wc?.emphasize()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@IBAction func formatAddLink(_ sender: Any) {
|
||||||
|
let wc = NSApplication.shared().mainWindow?.windowController as? WindowController
|
||||||
|
wc?.addLink()
|
||||||
|
}
|
||||||
|
|
||||||
@IBAction func setFontSerif(_ sender: NSMenuItem) {
|
@IBAction func setFontSerif(_ sender: NSMenuItem) {
|
||||||
deselectAllFonts()
|
deselectAllFonts()
|
||||||
sender.state = NSOnState
|
sender.state = NSOnState
|
||||||
|
@ -333,6 +333,12 @@ DQ
|
|||||||
<action selector="formatEmphasis:" target="Voe-Tx-rLC" id="uTS-Jh-2A2"/>
|
<action selector="formatEmphasis:" target="Voe-Tx-rLC" id="uTS-Jh-2A2"/>
|
||||||
</connections>
|
</connections>
|
||||||
</menuItem>
|
</menuItem>
|
||||||
|
<menuItem isSeparatorItem="YES" id="SmR-t9-22S"/>
|
||||||
|
<menuItem title="Add Link" keyEquivalent="k" id="GUY-qo-vEn">
|
||||||
|
<connections>
|
||||||
|
<action selector="formatAddLink:" target="Voe-Tx-rLC" id="0Le-n0-qwE"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
</items>
|
</items>
|
||||||
</menu>
|
</menu>
|
||||||
</menuItem>
|
</menuItem>
|
||||||
|
@ -94,18 +94,26 @@ class ViewController: NSViewController, NSTextViewDelegate, NSUserNotificationCe
|
|||||||
formatText(with: "_\(getSelectedText())_", offset: 1)
|
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 {
|
fileprivate func getSelectedText() -> String {
|
||||||
let selectedRange = writerText.selectedRange()
|
let selectedRange = writerText.selectedRange()
|
||||||
return (self.writerText.textStorage?.string as! NSString).substring(with: selectedRange)
|
return (self.writerText.textStorage?.string as! NSString).substring(with: selectedRange)
|
||||||
}
|
}
|
||||||
|
|
||||||
fileprivate func formatText(with: String, offset: Int) {
|
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 selectedRange = writerText.selectedRange()
|
||||||
let selString = getSelectedText()
|
let selString = getSelectedText()
|
||||||
if self.writerText.shouldChangeText(in: selectedRange, replacementString: with) {
|
if self.writerText.shouldChangeText(in: selectedRange, replacementString: with) {
|
||||||
self.writerText.replaceCharacters(in: NSRange(location: selectedRange.location, length: selectedRange.length), with: with)
|
self.writerText.replaceCharacters(in: NSRange(location: selectedRange.location, length: selectedRange.length), with: with)
|
||||||
self.writerText.didChangeText()
|
self.writerText.didChangeText()
|
||||||
if selString == "" {
|
if selString == "" || alwaysOffset {
|
||||||
writerText.setSelectedRange(NSRange(location: selectedRange.location + offset, length: 0))
|
writerText.setSelectedRange(NSRange(location: selectedRange.location + offset, length: 0))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,4 +34,7 @@ class WindowController: NSWindowController {
|
|||||||
func emphasize() {
|
func emphasize() {
|
||||||
vc?.emphasize()
|
vc?.emphasize()
|
||||||
}
|
}
|
||||||
|
func addLink() {
|
||||||
|
vc?.addLink()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user