diff --git a/Classes/Systems/Autocomplete/AutocompleteController.swift b/Classes/Systems/Autocomplete/AutocompleteController.swift index bb55e613..3d695826 100644 --- a/Classes/Systems/Autocomplete/AutocompleteController.swift +++ b/Classes/Systems/Autocomplete/AutocompleteController.swift @@ -66,7 +66,7 @@ MessageAutocompleteControllerDelegate { prefix: messageAutocompleteController.selection?.prefix, indexPath: indexPath ) { - messageAutocompleteController.accept(autocomplete: accepted + " ", keepPrefix: false) + messageAutocompleteController.accept(autocomplete: accepted, keepPrefix: false) } } @@ -79,6 +79,10 @@ MessageAutocompleteControllerDelegate { func didChangeStore(autocomplete: IssueCommentAutocomplete) { for prefix in autocomplete.prefixes { messageAutocompleteController.register(prefix: prefix) + + if let attributes = autocomplete.highlightAttributes(prefix: prefix) { + messageAutocompleteController.registerAutocomplete(prefix: prefix, attributes: attributes) + } } messageAutocompleteController.tableView.reloadData() } diff --git a/Classes/Systems/Autocomplete/AutocompleteType.swift b/Classes/Systems/Autocomplete/AutocompleteType.swift index 8207e3de..004f6649 100644 --- a/Classes/Systems/Autocomplete/AutocompleteType.swift +++ b/Classes/Systems/Autocomplete/AutocompleteType.swift @@ -20,4 +20,6 @@ protocol AutocompleteType { func accept(index: Int) -> String? + var highlightAttributes: [NSAttributedStringKey: Any]? { get } + } diff --git a/Classes/Systems/Autocomplete/EmojiAutocomplete.swift b/Classes/Systems/Autocomplete/EmojiAutocomplete.swift index 1d21710f..8bde33be 100644 --- a/Classes/Systems/Autocomplete/EmojiAutocomplete.swift +++ b/Classes/Systems/Autocomplete/EmojiAutocomplete.swift @@ -57,4 +57,6 @@ final class EmojiAutocomplete: AutocompleteType { return results[index].emoji } + var highlightAttributes: [NSAttributedStringKey : Any]? { return nil } + } diff --git a/Classes/Systems/Autocomplete/IssueCommentAutocomplete.swift b/Classes/Systems/Autocomplete/IssueCommentAutocomplete.swift index 836cd6c2..027b7332 100644 --- a/Classes/Systems/Autocomplete/IssueCommentAutocomplete.swift +++ b/Classes/Systems/Autocomplete/IssueCommentAutocomplete.swift @@ -46,6 +46,10 @@ final class IssueCommentAutocomplete { return map.map { $0.key } } + func highlightAttributes(prefix: String) -> [NSAttributedStringKey: Any]? { + return map[prefix]?.highlightAttributes + } + func resultCount(prefix: String?) -> Int { guard let prefix = prefix, let autocomplete = map[prefix] else { return 0 } return autocomplete.resultsCount diff --git a/Classes/Systems/Autocomplete/UserAutocomplete.swift b/Classes/Systems/Autocomplete/UserAutocomplete.swift index accabbab..09c9b99b 100644 --- a/Classes/Systems/Autocomplete/UserAutocomplete.swift +++ b/Classes/Systems/Autocomplete/UserAutocomplete.swift @@ -63,4 +63,12 @@ final class UserAutocomplete: AutocompleteType { return prefix + results[index].login } + var highlightAttributes: [NSAttributedStringKey : Any]? { + return [ + .font: Styles.Text.body.preferredFont, + .foregroundColor: Styles.Colors.Blue.medium.color, + .backgroundColor: Styles.Colors.Blue.medium.color.withAlphaComponent(0.1), + ] + } + }