Sat, 22 May 2021 18:51:46 +0200
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
4109
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
3 | # Copyright (c) 2015 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
4109
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a syntax highlighter for unified and context diff outputs. |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
10 | from E5Gui.EricGenericDiffHighlighter import TERMINAL, EricGenericDiffHighlighter |
4109
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
13 | class DiffHighlighter(EricGenericDiffHighlighter): |
4109
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | """ |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | Class implementing a diff highlighter for Git. |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | """ |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | def __init__(self, doc): |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | """ |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | Constructor |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | @param doc reference to the text document (QTextDocument) |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
23 | super().__init__(doc) |
4109
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | def generateRules(self): |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | """ |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | Public method to generate the rule set. |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | """ |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | diffHeaderBold = self.makeFormat(fg=self.textColor, |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | bg=self.headerColor, |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | bold=True) |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | diffContext = self.makeFormat(fg=self.textColor, |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | bg=self.contextColor) |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | diffAdded = self.makeFormat(fg=self.textColor, |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | bg=self.addedColor) |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | diffRemoved = self.makeFormat(fg=self.textColor, |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | bg=self.removedColor) |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | diffReplaced = self.makeFormat(fg=self.textColor, |
4110
5a106c734527
Added diff syntax highlighters to the various VCS interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4109
diff
changeset
|
40 | bg=self.replacedColor) |
4109
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | diffBarRegex = TERMINAL(r'^\*+$') |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | diffOldRegex = TERMINAL(r'^--- ') |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | diffNewRegex = TERMINAL(r'^\+\+\+ |^\*\*\*') |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | diffContextRegex = TERMINAL(r'^@@ ') |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | diffAddedRegex = TERMINAL(r'^[+>]') |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | diffRemovedRegex = TERMINAL(r'^[-<]') |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | diffReplacedRegex = TERMINAL(r'^!') |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | self.createRules((diffBarRegex, diffHeaderBold), |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | (diffOldRegex, diffRemoved), |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | (diffNewRegex, diffAdded), |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | (diffContextRegex, diffContext), |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | (diffAddedRegex, diffAdded), |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | (diffRemovedRegex, diffRemoved), |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | (diffReplacedRegex, diffReplaced), |
809b8268183d
Changed the diff dialog to use the new diff highlighter logic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | ) |