Thu, 10 Oct 2013 19:03:45 +0200
Continued to shorten the code lines to max. 79 characters.
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
2302
f29e9405c851
Updated copyright for 2013.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2223
diff
changeset
|
3 | # Copyright (c) 2003 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a simple Python syntax checker. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | import os |
571
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
11 | import fnmatch |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | |
1112
8a7d1b9d18db
Improved code quality by getting rid of star imports. That way pyflakes can do its job. A few bugs fixed found by flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
13 | from PyQt4.QtCore import pyqtSlot, Qt |
3004
c4bf32c791d0
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2404
diff
changeset
|
14 | from PyQt4.QtGui import QDialog, QDialogButtonBox, QTreeWidgetItem, \ |
c4bf32c791d0
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2404
diff
changeset
|
15 | QApplication, QHeaderView |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
53
diff
changeset
|
17 | from E5Gui.E5Application import e5App |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
19 | from .Ui_SyntaxCheckerDialog import Ui_SyntaxCheckerDialog |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | import Utilities |
40
c2e5472b112c
Changed some code to adjust eric5 to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
28
diff
changeset
|
22 | import Preferences |
88
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
23 | import UI.PixmapCache |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
25 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | class SyntaxCheckerDialog(QDialog, Ui_SyntaxCheckerDialog): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | Class implementing a dialog to display the results of a syntax check run. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
88
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
30 | filenameRole = Qt.UserRole + 1 |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
31 | lineRole = Qt.UserRole + 2 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
32 | indexRole = Qt.UserRole + 3 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
33 | errorRole = Qt.UserRole + 4 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
34 | warningRole = Qt.UserRole + 5 |
88
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
35 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
36 | def __init__(self, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | Constructor |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | @param parent The parent widget. (QWidget) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | """ |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
42 | super().__init__(parent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | self.setupUi(self) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
45 | self.showButton = self.buttonBox.addButton( |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | self.trUtf8("Show"), QDialogButtonBox.ActionRole) |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
47 | self.showButton.setToolTip( |
90
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
48 | self.trUtf8("Press to show all files containing an issue")) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | self.resultList.headerItem().setText(self.resultList.columnCount(), "") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | self.resultList.header().setSortIndicator(0, Qt.AscendingOrder) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | self.noResults = True |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | self.cancelled = False |
90
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
57 | self.__lastFileItem = None |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | |
571
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
59 | self.__fileList = [] |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
60 | self.__project = None |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
61 | self.filterFrame.setVisible(False) |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
62 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | def __resort(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | Private method to resort the tree. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
67 | self.resultList.sortItems(self.resultList.sortColumn(), |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
68 | self.resultList.header().sortIndicatorOrder() |
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
69 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
71 | def __createResultItem(self, file, line, index, error, sourcecode, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
72 | isWarning=False): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | Private method to create an entry in the result list. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
831
diff
changeset
|
76 | @param file file name of file (string) |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
831
diff
changeset
|
77 | @param line line number of faulty source (integer or string) |
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
831
diff
changeset
|
78 | @param index index number of fault (integer) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | @param error error text (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | @param sourcecode faulty line of code (string) |
88
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
81 | @param isWarning flag indicating a warning message (boolean) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | """ |
90
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
83 | if self.__lastFileItem is None: |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
84 | # It's a new file |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
85 | self.__lastFileItem = QTreeWidgetItem(self.resultList, [file]) |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
86 | self.__lastFileItem.setFirstColumnSpanned(True) |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
87 | self.__lastFileItem.setExpanded(True) |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
88 | self.__lastFileItem.setData(0, self.filenameRole, file) |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
89 | |
1640
1699d46026cd
Fixed a compatibility issue with Qt 4.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
90 | itm = QTreeWidgetItem(self.__lastFileItem) |
88
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
91 | if isWarning: |
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
92 | itm.setIcon(0, UI.PixmapCache.getIcon("warning.png")) |
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
93 | else: |
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
94 | itm.setIcon(0, UI.PixmapCache.getIcon("syntaxError.png")) |
1640
1699d46026cd
Fixed a compatibility issue with Qt 4.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
95 | itm.setData(0, Qt.DisplayRole, line) |
1699d46026cd
Fixed a compatibility issue with Qt 4.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
96 | itm.setData(1, Qt.DisplayRole, error) |
1699d46026cd
Fixed a compatibility issue with Qt 4.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
97 | itm.setData(2, Qt.DisplayRole, sourcecode) |
88
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
98 | itm.setData(0, self.filenameRole, file) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
466
diff
changeset
|
99 | itm.setData(0, self.lineRole, int(line)) |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
831
diff
changeset
|
100 | itm.setData(0, self.indexRole, index) |
90
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
101 | itm.setData(0, self.errorRole, error) |
88
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
102 | itm.setData(0, self.warningRole, isWarning) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | |
571
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
104 | def prepare(self, fileList, project): |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
105 | """ |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
106 | Public method to prepare the dialog with a list of filenames. |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
107 | |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
108 | @param fileList list of filenames (list of strings) |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
109 | @param project reference to the project object (Project) |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
110 | """ |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
111 | self.__fileList = fileList[:] |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
112 | self.__project = project |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
113 | |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
114 | self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
115 | self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
116 | self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
117 | |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
118 | self.filterFrame.setVisible(True) |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
119 | |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
120 | self.__data = self.__project.getData("CHECKERSPARMS", "SyntaxChecker") |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
121 | if self.__data is None or "ExcludeFiles" not in self.__data: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
122 | self.__data = {"ExcludeFiles": ""} |
571
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
123 | self.excludeFilesEdit.setText(self.__data["ExcludeFiles"]) |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
124 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
125 | def start(self, fn, codestring=""): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | Public slot to start the syntax check. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | @param fn file or list of files or directory to be checked |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | (string or list of strings) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | @param codestring string containing the code to be checked (string). |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | If this is given, file must be a single file name. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | """ |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
134 | if self.__project is None: |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
135 | self.__project = e5App().getObject("Project") |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
136 | |
571
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
137 | self.cancelled = False |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
138 | self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
139 | self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True) |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
140 | self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
141 | QApplication.processEvents() |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
142 | |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
143 | if isinstance(fn, list): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | files = fn |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | elif os.path.isdir(fn): |
40
c2e5472b112c
Changed some code to adjust eric5 to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
28
diff
changeset
|
146 | files = [] |
c2e5472b112c
Changed some code to adjust eric5 to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
28
diff
changeset
|
147 | for ext in Preferences.getPython("Python3Extensions"): |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
148 | files.extend( |
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
149 | Utilities.direntries(fn, 1, '*{0}'.format(ext), 0)) |
804
3465556892de
Fixed an issue in the syntax checker dialog (it didn't pick up Python2 files in some situations).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
802
diff
changeset
|
150 | for ext in Preferences.getPython("PythonExtensions"): |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
151 | files.extend( |
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
152 | Utilities.direntries(fn, 1, '*{0}'.format(ext), 0)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | files = [fn] |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
155 | py3files = [f for f in files \ |
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
156 | if f.endswith( |
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
157 | tuple(Preferences.getPython("Python3Extensions")))] |
795
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
794
diff
changeset
|
158 | py2files = [f for f in files \ |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
159 | if f.endswith( |
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
160 | tuple(Preferences.getPython("PythonExtensions")))] |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
162 | if (codestring and len(py3files) == 1) or \ |
795
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
794
diff
changeset
|
163 | (codestring and len(py2files) == 1) or \ |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
164 | (not codestring and len(py3files) + len(py2files) > 0): |
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
165 | self.checkProgress.setMaximum(len(py3files) + len(py2files)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | QApplication.processEvents() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
168 | ignoreStarImportWarnings = \ |
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
169 | Preferences.getFlakes("IgnoreStarImportWarnings") |
795
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
794
diff
changeset
|
170 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | # now go through all the files |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | progress = 0 |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
173 | for file in py3files + py2files: |
793
cd183f89874b
Changed the syntac checker dialog and the tabnanny dialog to use the new eflag: marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
174 | self.checkProgress.setValue(progress) |
cd183f89874b
Changed the syntac checker dialog and the tabnanny dialog to use the new eflag: marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
175 | QApplication.processEvents() |
cd183f89874b
Changed the syntac checker dialog and the tabnanny dialog to use the new eflag: marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
176 | self.__resort() |
cd183f89874b
Changed the syntac checker dialog and the tabnanny dialog to use the new eflag: marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
177 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | if self.cancelled: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | |
90
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
181 | self.__lastFileItem = None |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
182 | |
88
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
183 | if codestring: |
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
184 | source = codestring |
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
185 | else: |
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
186 | try: |
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
187 | source = Utilities.readEncodedFile(file)[0] |
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
188 | # convert eols |
466
e6a4bc9e1043
Fixed a bug in the syntax checker dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
415
diff
changeset
|
189 | source = Utilities.convertLineEnds(source, "\n") |
793
cd183f89874b
Changed the syntac checker dialog and the tabnanny dialog to use the new eflag: marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
190 | except (UnicodeError, IOError) as msg: |
cd183f89874b
Changed the syntac checker dialog and the tabnanny dialog to use the new eflag: marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
191 | self.noResults = False |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
192 | self.__createResultItem(file, "1", 0, |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
193 | self.trUtf8("Error: {0}").format(str(msg))\ |
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
194 | .rstrip()[1:-1], "") |
793
cd183f89874b
Changed the syntac checker dialog and the tabnanny dialog to use the new eflag: marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
195 | progress += 1 |
cd183f89874b
Changed the syntac checker dialog and the tabnanny dialog to use the new eflag: marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
196 | continue |
cd183f89874b
Changed the syntac checker dialog and the tabnanny dialog to use the new eflag: marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
197 | |
cd183f89874b
Changed the syntac checker dialog and the tabnanny dialog to use the new eflag: marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
198 | flags = Utilities.extractFlags(source) |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
199 | ext = os.path.splitext(file)[1] |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
200 | if ("FileType" in flags and |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
201 | flags["FileType"] in ["Python", "Python2"]) or \ |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
202 | file in py2files or \ |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
203 | (ext in [".py", ".pyw"] and \ |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
204 | Preferences.getProject("DeterminePyFromProject") and \ |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
205 | self.__project.isOpen() and \ |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
206 | self.__project.isProjectFile(file) and \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
207 | self.__project.getProjectLanguage() in ["Python", |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
208 | "Python2"]): |
795
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
794
diff
changeset
|
209 | isPy3 = False |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
831
diff
changeset
|
210 | nok, fname, line, index, code, error, warnings = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
211 | Utilities.py2compile(file, |
3004
c4bf32c791d0
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2404
diff
changeset
|
212 | checkFlakes=Preferences.getFlakes( |
c4bf32c791d0
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2404
diff
changeset
|
213 | "IncludeInSyntaxCheck")) |
795
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
794
diff
changeset
|
214 | else: |
917f1945355c
Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
794
diff
changeset
|
215 | isPy3 = True |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
831
diff
changeset
|
216 | nok, fname, line, index, code, error = \ |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
217 | Utilities.compile(file, source) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | if nok: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | self.noResults = False |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
831
diff
changeset
|
220 | self.__createResultItem(fname, line, index, error, code) |
88
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
221 | else: |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
222 | if Preferences.getFlakes("IncludeInSyntaxCheck"): |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
223 | if isPy3: |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
224 | try: |
2404
cba0ff902c2b
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
225 | from Utilities.py3flakes.checker import Checker |
3004
c4bf32c791d0
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2404
diff
changeset
|
226 | from Utilities.py3flakes.messages import \ |
c4bf32c791d0
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2404
diff
changeset
|
227 | ImportStarUsed |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
228 | sourceLines = source.splitlines() |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
229 | warnings = Checker(source, file) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
230 | warnings.messages.sort(key=lambda a: a.lineno) |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
231 | for warning in warnings.messages: |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
232 | if ignoreStarImportWarnings and \ |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
233 | isinstance(warning, ImportStarUsed): |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
234 | continue |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
235 | fname, lineno, message = \ |
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
236 | warning.getMessageData() |
1308
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
237 | if "__IGNORE_WARNING__" not in \ |
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
238 | Utilities.extractLineFlags( |
2b602a1521e7
Made the check for line flags like __IGNORE_WARNING__ more flexible and extensible.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
239 | sourceLines[lineno - 1].strip()): |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
240 | self.noResults = False |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
241 | self.__createResultItem( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
242 | fname, lineno, 0, message, "", |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
243 | isWarning=True) |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
244 | except SyntaxError as err: |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
245 | if err.text.strip(): |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
246 | msg = err.text.strip() |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
247 | else: |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
248 | msg = err.msg |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
249 | self.__createResultItem( |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
831
diff
changeset
|
250 | err.filename, err.lineno, 0, msg, "") |
802
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
251 | else: |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
252 | for warning in warnings: |
e8882d16384c
Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
795
diff
changeset
|
253 | self.noResults = False |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
254 | self.__createResultItem( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
255 | warning[0], int(warning[1]), 0, |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
256 | warning[2], "", isWarning=True) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | progress += 1 |
793
cd183f89874b
Changed the syntac checker dialog and the tabnanny dialog to use the new eflag: marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
258 | self.checkProgress.setValue(progress) |
cd183f89874b
Changed the syntac checker dialog and the tabnanny dialog to use the new eflag: marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
259 | QApplication.processEvents() |
cd183f89874b
Changed the syntac checker dialog and the tabnanny dialog to use the new eflag: marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
260 | self.__resort() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | self.checkProgress.setMaximum(1) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263 | self.checkProgress.setValue(1) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | self.__finish() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | def __finish(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | """ |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
268 | Private slot called when the syntax check finished or the user |
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
269 | pressed the button. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | self.cancelled = True |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | if self.noResults: |
90
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
277 | QTreeWidgetItem(self.resultList, [self.trUtf8('No issues found.')]) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | QApplication.processEvents() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | self.showButton.setEnabled(False) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | self.__clearErrors() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | self.showButton.setEnabled(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | self.resultList.header().resizeSections(QHeaderView.ResizeToContents) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | self.resultList.header().setStretchLastSection(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | def on_buttonBox_clicked(self, button): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | Private slot called by a button of the button box clicked. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | @param button button that was clicked (QAbstractButton) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
292 | if button == self.buttonBox.button(QDialogButtonBox.Close): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | self.close() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | elif button == self.buttonBox.button(QDialogButtonBox.Cancel): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
295 | self.__finish() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
296 | elif button == self.showButton: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
297 | self.on_showButton_clicked() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | |
571
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
299 | @pyqtSlot() |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
300 | def on_startButton_clicked(self): |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
301 | """ |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
302 | Private slot to start a syntax check run. |
571
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
303 | """ |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
304 | fileList = self.__fileList[:] |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
305 | |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
306 | filterString = self.excludeFilesEdit.text() |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
307 | if "ExcludeFiles" not in self.__data or \ |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
308 | filterString != self.__data["ExcludeFiles"]: |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
309 | self.__data["ExcludeFiles"] = filterString |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
310 | self.__project.setData("CHECKERSPARMS", "SyntaxChecker", |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
311 | self.__data) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
312 | filterList = [f.strip() for f in filterString.split(",") |
831
f046b97785db
Little optimisation in the syntax and indentation checker dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
830
diff
changeset
|
313 | if f.strip()] |
571
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
314 | if filterList: |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
315 | for filter in filterList: |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
316 | fileList = \ |
831
f046b97785db
Little optimisation in the syntax and indentation checker dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
830
diff
changeset
|
317 | [f for f in fileList if not fnmatch.fnmatch(f, filter)] |
571
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
318 | |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
319 | self.resultList.clear() |
793
cd183f89874b
Changed the syntac checker dialog and the tabnanny dialog to use the new eflag: marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
320 | self.noResults = True |
cd183f89874b
Changed the syntac checker dialog and the tabnanny dialog to use the new eflag: marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
321 | self.cancelled = False |
571
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
322 | self.start(fileList) |
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
323 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
324 | def on_resultList_itemActivated(self, itm, col): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
325 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
326 | Private slot to handle the activation of an item. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328 | @param itm reference to the activated item (QTreeWidgetItem) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
329 | @param col column the item was activated in (integer) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
330 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
331 | if self.noResults: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332 | return |
90
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
333 | |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
334 | if itm.parent(): |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
335 | fn = Utilities.normabspath(itm.data(0, self.filenameRole)) |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
336 | lineno = itm.data(0, self.lineRole) |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
831
diff
changeset
|
337 | index = itm.data(0, self.indexRole) |
90
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
338 | error = itm.data(0, self.errorRole) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
339 | |
90
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
340 | vm = e5App().getObject("ViewManager") |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
341 | vm.openSourceFile(fn, lineno) |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
342 | editor = vm.getOpenEditor(fn) |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
343 | |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
344 | if itm.data(0, self.warningRole): |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
345 | editor.toggleFlakesWarning(lineno, True, error) |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
346 | else: |
915
c1e052773c08
Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
831
diff
changeset
|
347 | editor.toggleSyntaxError(lineno, index, True, error, show=True) |
2195
d6cbd81fb692
Added capability to the syntax checker dialog to show all errors/warnings in an editor when the file entry is double activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
348 | else: |
d6cbd81fb692
Added capability to the syntax checker dialog to show all errors/warnings in an editor when the file entry is double activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
349 | fn = Utilities.normabspath(itm.data(0, self.filenameRole)) |
d6cbd81fb692
Added capability to the syntax checker dialog to show all errors/warnings in an editor when the file entry is double activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
350 | vm = e5App().getObject("ViewManager") |
d6cbd81fb692
Added capability to the syntax checker dialog to show all errors/warnings in an editor when the file entry is double activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
351 | vm.openSourceFile(fn) |
d6cbd81fb692
Added capability to the syntax checker dialog to show all errors/warnings in an editor when the file entry is double activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
352 | editor = vm.getOpenEditor(fn) |
d6cbd81fb692
Added capability to the syntax checker dialog to show all errors/warnings in an editor when the file entry is double activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
353 | for index in range(itm.childCount()): |
d6cbd81fb692
Added capability to the syntax checker dialog to show all errors/warnings in an editor when the file entry is double activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
354 | citm = itm.child(index) |
d6cbd81fb692
Added capability to the syntax checker dialog to show all errors/warnings in an editor when the file entry is double activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
355 | lineno = citm.data(0, self.lineRole) |
d6cbd81fb692
Added capability to the syntax checker dialog to show all errors/warnings in an editor when the file entry is double activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
356 | index = citm.data(0, self.indexRole) |
d6cbd81fb692
Added capability to the syntax checker dialog to show all errors/warnings in an editor when the file entry is double activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
357 | error = citm.data(0, self.errorRole) |
d6cbd81fb692
Added capability to the syntax checker dialog to show all errors/warnings in an editor when the file entry is double activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
358 | if citm.data(0, self.warningRole): |
d6cbd81fb692
Added capability to the syntax checker dialog to show all errors/warnings in an editor when the file entry is double activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
359 | editor.toggleFlakesWarning(lineno, True, error) |
d6cbd81fb692
Added capability to the syntax checker dialog to show all errors/warnings in an editor when the file entry is double activated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
360 | else: |
3004
c4bf32c791d0
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2404
diff
changeset
|
361 | editor.toggleSyntaxError( |
c4bf32c791d0
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2404
diff
changeset
|
362 | lineno, index, True, error, show=True) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | @pyqtSlot() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | def on_showButton_clicked(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | Private slot to handle the "Show" button press. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | """ |
90
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
369 | vm = e5App().getObject("ViewManager") |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
370 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | for index in range(self.resultList.topLevelItemCount()): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | itm = self.resultList.topLevelItem(index) |
90
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
373 | fn = Utilities.normabspath(itm.data(0, self.filenameRole)) |
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
374 | vm.openSourceFile(fn, 1) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
915
diff
changeset
|
376 | # go through the list again to clear syntax error and |
90
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
377 | # py3flakes warning markers for files, that are ok |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
378 | openFiles = vm.getOpenFilenames() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | errorFiles = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380 | for index in range(self.resultList.topLevelItemCount()): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
381 | itm = self.resultList.topLevelItem(index) |
830
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
382 | errorFiles.append( |
6caa4436dee2
Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
804
diff
changeset
|
383 | Utilities.normabspath(itm.data(0, self.filenameRole))) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384 | for file in openFiles: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385 | if not file in errorFiles: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
386 | editor = vm.getOpenEditor(file) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
387 | editor.clearSyntaxError() |
90
6de42151f9e6
Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
89
diff
changeset
|
388 | editor.clearFlakesWarnings() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
389 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
390 | def __clearErrors(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | Private method to clear all error markers of open editors. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393 | """ |
53
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
40
diff
changeset
|
394 | vm = e5App().getObject("ViewManager") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
395 | openFiles = vm.getOpenFilenames() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
396 | for file in openFiles: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397 | editor = vm.getOpenEditor(file) |
88
3701923bccf2
Added my own Python3 port of pyflakes and integrated py3flakes into syntax checker dialog and editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
55
diff
changeset
|
398 | editor.clearSyntaxError() |
571
1a4101cb87eb
Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
399 | editor.clearFlakesWarnings() |