|
3 | 3 |
|
4 | 4 | from .color import AnsiColor
|
5 | 5 | from .color import colorize
|
| 6 | +from detect_secrets.exceptions import SecretNotFoundOnSpecifiedLineError |
6 | 7 |
|
7 | 8 |
|
8 | 9 | def get_code_snippet(
|
@@ -71,16 +72,19 @@ def highlight_line(self, payload: str) -> 'CodeSnippet':
|
71 | 72 | """
|
72 | 73 | :param payload: string to highlight, on chosen line
|
73 | 74 | """
|
74 |
| - index_of_payload = self.target_line.lower().index(payload.lower()) |
75 |
| - end_of_payload = index_of_payload + len(payload) |
76 |
| - |
77 |
| - self.target_line = u'{}{}{}'.format( |
78 |
| - self.target_line[:index_of_payload], |
79 |
| - self.apply_highlight(self.target_line[index_of_payload:end_of_payload]), |
80 |
| - self.target_line[end_of_payload:], |
81 |
| - ) |
| 75 | + try: |
| 76 | + index_of_payload = self.target_line.lower().index(payload.lower()) |
| 77 | + end_of_payload = index_of_payload + len(payload) |
| 78 | + |
| 79 | + self.target_line = u'{}{}{}'.format( |
| 80 | + self.target_line[:index_of_payload], |
| 81 | + self.apply_highlight(self.target_line[index_of_payload:end_of_payload]), |
| 82 | + self.target_line[end_of_payload:], |
| 83 | + ) |
82 | 84 |
|
83 |
| - return self |
| 85 | + return self |
| 86 | + except ValueError: |
| 87 | + raise SecretNotFoundOnSpecifiedLineError(self.target_index) |
84 | 88 |
|
85 | 89 | def get_line_number(self, line_number: int) -> str:
|
86 | 90 | """Broken out, for custom colorization."""
|
|
0 commit comments