.../Source/App/Services/History/HistorySearchMode.swift
Line | Count | Source (jump to first uncovered line) |
1 | | // |
2 | | // HistorySearchMode.swift |
3 | | // CutBox |
4 | | // |
5 | | // Created by Jason Milkins on 8/4/18. |
6 | | // Copyright © 2018-2023 ocodo. All rights reserved. |
7 | | // |
8 | | |
9 | | import Foundation |
10 | | |
11 | | enum HistorySearchMode: String, CaseIterable { |
12 | | case fuzzyMatch |
13 | | case regexpAnyCase |
14 | | case regexpStrictCase |
15 | | case substringMatch |
16 | | |
17 | 199 | var name: String { |
18 | 199 | switch self { |
19 | 199 | case .fuzzyMatch: |
20 | 194 | return "searchmode_fuzzy".l7n |
21 | 199 | case .regexpAnyCase: |
22 | 2 | return "searchmode_regexp".l7n |
23 | 199 | case .regexpStrictCase: |
24 | 1 | return "searchmode_regexp_strict".l7n |
25 | 199 | case .substringMatch: |
26 | 2 | return "searchmode_substring".l7n |
27 | 199 | } |
28 | 199 | } |
29 | | |
30 | 97 | var toolTip: String { |
31 | 97 | self.name + "_tooltip" |
32 | 97 | } |
33 | | |
34 | 24 | static func searchMode(from string: String) -> HistorySearchMode { |
35 | 24 | return HistorySearchMode(rawValue: string) ?? .fuzzyMatch |
36 | 24 | } |
37 | | |
38 | 3 | var next: HistorySearchMode { |
39 | 3 | guard let currentIndex = Self.allCases.firstIndex(of: self) else { |
40 | 0 | return .fuzzyMatch |
41 | 3 | } |
42 | 3 | let nextIndex = (currentIndex + 1) % Self.allCases.count |
43 | 3 | return Self.allCases[nextIndex] |
44 | 3 | } |
45 | | } |