aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard/WireGuard/UI/macOS/View
diff options
context:
space:
mode:
authorRoopesh Chander <roop@roopc.net>2019-01-09 00:41:36 +0530
committerRoopesh Chander <roop@roopc.net>2019-01-14 14:52:35 +0530
commit80977b95dec7224519c0a9b775f4fe4a203f6966 (patch)
treee4c848d6b5e49213263ada66fb727f3d6c7eb5ad /WireGuard/WireGuard/UI/macOS/View
parentHighlighter: Report each key type separately (diff)
downloadwireguard-apple-80977b95dec7224519c0a9b775f4fe4a203f6966.tar.xz
wireguard-apple-80977b95dec7224519c0a9b775f4fe4a203f6966.zip
macOS: Edit view: Update public key as you edit
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to 'WireGuard/WireGuard/UI/macOS/View')
-rw-r--r--WireGuard/WireGuard/UI/macOS/View/ConfTextStorage.swift6
-rw-r--r--WireGuard/WireGuard/UI/macOS/View/ConfTextView.swift4
2 files changed, 10 insertions, 0 deletions
diff --git a/WireGuard/WireGuard/UI/macOS/View/ConfTextStorage.swift b/WireGuard/WireGuard/UI/macOS/View/ConfTextStorage.swift
index 2a9d36d..75c1829 100644
--- a/WireGuard/WireGuard/UI/macOS/View/ConfTextStorage.swift
+++ b/WireGuard/WireGuard/UI/macOS/View/ConfTextStorage.swift
@@ -27,6 +27,7 @@ class ConfTextStorage: NSTextStorage {
private let backingStore: NSMutableAttributedString
private(set) var hasError = false
+ private(set) var privateKeyString: String?
override init() {
backingStore = NSMutableAttributedString(string: "")
@@ -129,6 +130,7 @@ class ConfTextStorage: NSTextStorage {
func highlightSyntax() {
hasError = false
+ privateKeyString = nil
backingStore.beginEditing()
var spans = highlight_config(backingStore.string.cString(using: String.Encoding.utf8))!
@@ -143,6 +145,10 @@ class ConfTextStorage: NSTextStorage {
hasError = true
}
+ if span.type == HighlightPrivateKey {
+ privateKeyString = backingStore.attributedSubstring(from: NSRange(location: span.start, length: span.len)).string
+ }
+
spans = spans.successor()
}
backingStore.endEditing()
diff --git a/WireGuard/WireGuard/UI/macOS/View/ConfTextView.swift b/WireGuard/WireGuard/UI/macOS/View/ConfTextView.swift
index cd91b01..eda5ee9 100644
--- a/WireGuard/WireGuard/UI/macOS/View/ConfTextView.swift
+++ b/WireGuard/WireGuard/UI/macOS/View/ConfTextView.swift
@@ -8,6 +8,7 @@ class ConfTextView: NSTextView {
private let confTextStorage = ConfTextStorage()
var hasError: Bool { return confTextStorage.hasError }
+ @objc dynamic var privateKeyString: String?
override var string: String {
didSet {
@@ -51,6 +52,9 @@ extension ConfTextView: NSTextViewDelegate {
func textDidChange(_ notification: Notification) {
confTextStorage.highlightSyntax()
+ if privateKeyString != confTextStorage.privateKeyString {
+ privateKeyString = confTextStorage.privateKeyString
+ }
needsDisplay = true
}