src/eric7/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py

Sat, 25 Nov 2023 18:19:21 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 25 Nov 2023 18:19:21 +0100
branch
eric7
changeset 10341
3fdffd9cc21d
parent 10304
ff7d3d6b952d
child 10439
21c28b0f9e41
permissions
-rw-r--r--

Syntax Checker
- Re-introduced the JavaScript syntax checker. This time it is based on the `esprima` package.

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
9653
e67609152c5e Updated copyright for 2023.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9646
diff changeset
3 # Copyright (c) 2003 - 2023 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
8943
23f9c7b9e18e Implemented some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
10 import fnmatch
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import os
8943
23f9c7b9e18e Implemented some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
12 import time
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
14 from PyQt6.QtCore import Qt, QTimer, pyqtSlot
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
15 from PyQt6.QtWidgets import (
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
16 QApplication,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
17 QDialog,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
18 QDialogButtonBox,
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
19 QHeaderView,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
20 QTreeWidgetItem,
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
21 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
23 from eric7 import Utilities
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
24 from eric7.EricGui import EricPixmapCache
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9336
diff changeset
25 from eric7.EricWidgets.EricApplication import ericApp
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9508
diff changeset
26 from eric7.SystemUtilities import FileSystemUtilities
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
28 from .Ui_SyntaxCheckerDialog import Ui_SyntaxCheckerDialog
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 915
diff changeset
30
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 class SyntaxCheckerDialog(QDialog, Ui_SyntaxCheckerDialog):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 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
34 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
35
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
36 filenameRole = Qt.ItemDataRole.UserRole + 1
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
37 lineRole = Qt.ItemDataRole.UserRole + 2
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
38 indexRole = Qt.ItemDataRole.UserRole + 3
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
39 errorRole = Qt.ItemDataRole.UserRole + 4
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
40 warningRole = Qt.ItemDataRole.UserRole + 5
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
41
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 915
diff changeset
42 def __init__(self, parent=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
45
9508
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
46 @param parent reference to the parent widget
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
47 @type QWidget
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
49 super().__init__(parent)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.setupUi(self)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
51 self.setWindowFlags(Qt.WindowType.Window)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
52
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 500
diff changeset
53 self.showButton = self.buttonBox.addButton(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
54 self.tr("Show"), QDialogButtonBox.ButtonRole.ActionRole
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
55 )
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 500
diff changeset
56 self.showButton.setToolTip(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
57 self.tr("Press to show all files containing an issue")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
58 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
59 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(False)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
60 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setDefault(True)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
61
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 self.resultList.headerItem().setText(self.resultList.columnCount(), "")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
63 self.resultList.header().setSortIndicator(0, Qt.SortOrder.AscendingOrder)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
64
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 self.noResults = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 self.cancelled = False
90
6de42151f9e6 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
67 self.__lastFileItem = None
5609
5bf0aaa818e9 Added code to safe-guard against self.__batch not being defined in the sytax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5597
diff changeset
68 self.__batch = False
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
69 self.__finished = True
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
70 self.__errorItem = None
8943
23f9c7b9e18e Implemented some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
71 self.__timenow = time.monotonic()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
72
571
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
73 self.__fileList = []
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
74 self.__project = None
9926
6222ddc7e1bd Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9925
diff changeset
75 self.__arguments = ()
10304
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
76 self.__statistics = self.__defaultStatistics()
571
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
77 self.filterFrame.setVisible(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
78
3091
8239cae3f947 Made the progress bar of the syntax and indentation checker dialogs only visible, while it is checking and only if more than 1 file are being checked.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3064
diff changeset
79 self.checkProgress.setVisible(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
80
3972
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
81 try:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
82 self.syntaxCheckService = ericApp().getObject("SyntaxCheckService")
3972
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
83 self.syntaxCheckService.syntaxChecked.connect(self.__processResult)
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
84 self.syntaxCheckService.batchFinished.connect(self.__batchFinished)
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
85 self.syntaxCheckService.error.connect(self.__processError)
3972
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
86 except KeyError:
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
87 self.syntaxCheckService = None
3412
9364dab2d472 Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3241
diff changeset
88 self.filename = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
89
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 def __resort(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 Private method to resort the tree.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
94 self.resultList.sortItems(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
95 self.resultList.sortColumn(), self.resultList.header().sortIndicatorOrder()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
96 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
97
10304
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
98 def __defaultStatistics(self):
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
99 """
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
100 Private method to return the default statistics entry.
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
101
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
102 @return dictionary with default statistics entry
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
103 @rtype dict
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
104 """
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
105 return {
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
106 "files_checked": 0,
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
107 "files_issues": 0,
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
108 "errors": 0,
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
109 "py_warnings": 0,
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
110 "warnings": 0,
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
111 }
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
112
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
113 def __updateStatistics(self, fileStatistics):
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
114 """
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
115 Private method to update the statistics.
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
116
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
117 @param fileStatistics dictionary containing the file statistics
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
118 @type dict
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
119 """
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
120 self.__statistics["files_checked"] += 1
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
121 if any(fileStatistics.values()):
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
122 self.__statistics["files_issues"] += 1
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
123 self.__statistics["errors"] += fileStatistics["errors"]
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
124 self.__statistics["py_warnings"] += fileStatistics["py_warnings"]
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
125 self.__statistics["warnings"] += fileStatistics["warnings"]
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
126
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
127 def __resetStatistics(self, skipped):
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
128 """
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
129 Private method to reset the statistics data.
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
130
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
131 @param skipped number of files not being checked
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
132 @type int
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
133 """
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
134 self.__statistics["files_checked"] = 0
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
135 self.__statistics["files_skipped"] = skipped
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
136 self.__statistics["files_issues"] = 0
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
137 self.__statistics["errors"] = 0
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
138 self.__statistics["py_warnings"] = 0
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
139 self.__statistics["warnings"] = 0
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
140
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
141 def __createFileStatistics(self, problems):
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
142 """
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
143 Private method to return the file statistics entry.
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
144
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
145 @param problems dictionary with the keys 'error', 'py_warnings' and
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
146 'warnings' which hold a list of issues each
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
147 @type dict
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
148 @return dictionary with the file statistics
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
149 @rtype dict
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
150 """
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
151 return {
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
152 "errors": 1 if problems.get("error") else 0,
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
153 "py_warnings": len(problems.get("py_warnings", [])),
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
154 "warnings": len(problems.get("warnings", [])),
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
155 }
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
156
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
157 def __createErrorItem(self, filename, message):
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
158 """
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
159 Private slot to create a new error item in the result list.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
160
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
161 @param filename name of the file
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
162 @type str
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
163 @param message error message
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
164 @type str
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
165 """
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
166 if self.__errorItem is None:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
167 self.__errorItem = QTreeWidgetItem(self.resultList, [self.tr("Errors")])
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
168 self.__errorItem.setExpanded(True)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
169 self.__errorItem.setForeground(0, Qt.GlobalColor.red)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
170
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
171 msg = "{0} ({1})".format(self.__project.getRelativePath(filename), message)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
172 if not self.resultList.findItems(msg, Qt.MatchFlag.MatchExactly):
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
173 itm = QTreeWidgetItem(self.__errorItem, [msg])
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
174 itm.setForeground(0, Qt.GlobalColor.red)
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
175 itm.setFirstColumnSpanned(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
176
10304
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
177 def __createHeaderItem(self, filename, fileStatistics=None):
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
178 """
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
179 Private method to create a header item in the result list.
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
180
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
181 @param filename file name of file
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
182 @type str
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
183 @param fileStatistics dictionary containing statistical data of the check
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
184 result (defaults to None)
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
185 @type dict (optional)
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
186 """
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
187 itemText = self.__project.getRelativePath(filename)
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
188
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
189 if fileStatistics:
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
190 statisticsTextList = []
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
191 if fileStatistics["errors"]:
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
192 statisticsTextList.append(
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
193 self.tr("Errors: {0}").format(fileStatistics["errors"])
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
194 )
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
195 if fileStatistics["py_warnings"]:
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
196 statisticsTextList.append(
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
197 self.tr("Python Warnings: {0}").format(
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
198 fileStatistics["py_warnings"]
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
199 )
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
200 )
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
201 if fileStatistics["warnings"]:
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
202 statisticsTextList.append(
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
203 self.tr("Warnings: {0}").format(fileStatistics["warnings"])
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
204 )
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
205 if statisticsTextList:
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
206 itemText += "{0}\n{1}".format(itemText, ", ".join(statisticsTextList))
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
207
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
208 self.__lastFileItem = QTreeWidgetItem(self.resultList, [itemText])
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
209 self.__lastFileItem.setFirstColumnSpanned(True)
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
210 self.__lastFileItem.setExpanded(True)
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
211 self.__lastFileItem.setData(0, self.filenameRole, filename)
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
212
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
213 def __createResultItem(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
214 self, filename, line, index, error, sourcecode, isWarning=False
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
215 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 Private method to create an entry in the result list.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
218
9508
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
219 @param filename file name of file
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
220 @type str
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
221 @param line line number of faulty source
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
222 @type int or str
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
223 @param index index number of fault
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
224 @type int
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
225 @param error error text
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
226 @type str
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
227 @param sourcecode faulty line of code
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
228 @type str
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
229 @param isWarning flag indicating a warning message
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
230 @type bool
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 """
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
232 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
233 self.__lastFileItem is None
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
234 or self.__lastFileItem.data(0, self.filenameRole) != filename
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
235 ):
90
6de42151f9e6 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
236 # It's a new file
10304
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
237 self.__createHeaderItem(filename)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
238
1640
1699d46026cd Fixed a compatibility issue with Qt 4.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
239 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
240 if isWarning:
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9336
diff changeset
241 itm.setIcon(0, EricPixmapCache.getIcon("warning"))
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
242 else:
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9336
diff changeset
243 itm.setIcon(0, EricPixmapCache.getIcon("syntaxError"))
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
244 itm.setData(0, Qt.ItemDataRole.DisplayRole, line)
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
245 itm.setData(1, Qt.ItemDataRole.DisplayRole, error)
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
246 itm.setData(2, Qt.ItemDataRole.DisplayRole, sourcecode)
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
247 itm.setData(0, self.filenameRole, filename)
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 466
diff changeset
248 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
249 itm.setData(0, self.indexRole, index)
90
6de42151f9e6 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
250 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
251 itm.setData(0, self.warningRole, isWarning)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
252
9925
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
253 def setArguments(self, args):
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
254 """
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
255 Public method to set additional arguments to be used by the syntax check.
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
256
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
257 @param args tuple containing the additional arguments
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
258 @type tuple of Any
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
259 """
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
260 self.__arguments = args
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
261
571
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
262 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
263 """
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
264 Public method to prepare the dialog with a list of filenames.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
265
9508
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
266 @param fileList list of filenames
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
267 @type list of str
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
268 @param project reference to the project object
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
269 @type Project
571
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
270 """
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
271 self.__fileList = fileList[:]
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
272 self.__project = project
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
273
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
274 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(True)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
275 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setEnabled(False)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
276 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
277
571
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
278 self.filterFrame.setVisible(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
279
571
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
280 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
281 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
282 self.__data = {"ExcludeFiles": ""}
9925
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
283 if "AdditionalBuiltins" not in self.__data:
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
284 self.__data["AdditionalBuiltins"] = ""
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
285
571
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
286 self.excludeFilesEdit.setText(self.__data["ExcludeFiles"])
9925
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
287 self.builtinsEdit.setText(self.__data["AdditionalBuiltins"])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
288
9508
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
289 def startForBrowser(self, fn):
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
290 """
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
291 Public slot to start the syntax check for the project sources browser.
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
292
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
293 @param fn file or list of files or directory to be checked
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
294 @type str or list of str
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
295 """
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
296 if isinstance(fn, list):
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
297 files = fn
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
298 elif os.path.isdir(fn):
9646
ab5678db972f Modernize the code by using os.scandir() instead of os.listdir().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
299 files = FileSystemUtilities.direntries(
ab5678db972f Modernize the code by using os.scandir() instead of os.listdir().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
300 fn,
ab5678db972f Modernize the code by using os.scandir() instead of os.listdir().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
301 filesonly=True,
ab5678db972f Modernize the code by using os.scandir() instead of os.listdir().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
302 pattern=[
ab5678db972f Modernize the code by using os.scandir() instead of os.listdir().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
303 "*{0}".format(ext)
ab5678db972f Modernize the code by using os.scandir() instead of os.listdir().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
304 for ext in self.syntaxCheckService.getExtensions()
ab5678db972f Modernize the code by using os.scandir() instead of os.listdir().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
305 ],
ab5678db972f Modernize the code by using os.scandir() instead of os.listdir().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
306 followsymlinks=False,
ab5678db972f Modernize the code by using os.scandir() instead of os.listdir().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
307 )
9508
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
308 else:
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
309 files = [fn]
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
310
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
311 if files:
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
312 if self.__project is None:
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
313 self.__project = ericApp().getObject("Project")
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
314
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
315 self.__fileList = files[:]
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
316
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
317 self.filterFrame.setVisible(True)
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
318
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
319 self.__data = self.__project.getData("CHECKERSPARMS", "SyntaxChecker")
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
320 if self.__data is None or "ExcludeFiles" not in self.__data:
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
321 self.__data = {"ExcludeFiles": ""}
9925
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
322 if "AdditionalBuiltins" not in self.__data:
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
323 self.__data["AdditionalBuiltins"] = ""
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
324
9508
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
325 self.excludeFilesEdit.setText(self.__data["ExcludeFiles"])
9925
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
326 self.builtinsEdit.setText(self.__data["AdditionalBuiltins"])
9508
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
327
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
328 self.on_startButton_clicked() # press the start button
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
329
10304
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
330 def start(self, fn, codestring="", skipped=0):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
331 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332 Public slot to start the syntax check.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
333
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 @param fn file or list of files or directory to be checked
9508
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
335 @type str or list of str
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
336 @param codestring string containing the code to be checked. If this is given,
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
337 fn must be a single file name.
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
338 @type str
10304
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
339 @param skipped number of files not being checked
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
340 @type int
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 """
5609
5bf0aaa818e9 Added code to safe-guard against self.__batch not being defined in the sytax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5597
diff changeset
342 self.__batch = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
343
3972
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
344 if self.syntaxCheckService is not None:
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
345 if self.__project is None:
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: 8318
diff changeset
346 self.__project = ericApp().getObject("Project")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
347
3972
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
348 self.cancelled = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
349 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
350 False
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
351 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
352 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setEnabled(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
353 True
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
354 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
355 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setDefault(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
356 True
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
357 )
5828
c8deff89c20c Fixed a little issue in the syntax checker dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5609
diff changeset
358 self.showButton.setEnabled(False)
3972
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
359 self.checkProgress.setVisible(True)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
360 QApplication.processEvents()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
361
3972
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
362 if isinstance(fn, list):
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
363 self.files = fn
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
364 elif os.path.isdir(fn):
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
365 self.files = []
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
366 for ext in self.syntaxCheckService.getExtensions():
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
367 self.files.extend(
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9508
diff changeset
368 FileSystemUtilities.direntries(fn, True, "*{0}".format(ext), 0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
369 )
3972
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
370 else:
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
371 self.files = [fn]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
372
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
373 self.__errorItem = None
3972
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
374 self.__clearErrors(self.files)
10304
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
375 self.__resetStatistics(skipped)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
376
3972
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
377 if codestring or len(self.files) > 0:
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
378 self.checkProgress.setMaximum(max(1, len(self.files)))
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
379 self.checkProgress.setVisible(len(self.files) > 1)
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
380 QApplication.processEvents()
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
381
3972
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
382 # now go through all the files
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
383 self.progress = 0
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
384 self.files.sort()
8943
23f9c7b9e18e Implemented some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
385 self.__timenow = time.monotonic()
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
386 if codestring or len(self.files) == 1:
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
387 self.__batch = False
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
388 self.check(codestring)
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
389 else:
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
390 self.__batch = True
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
391 self.checkBatch()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
392
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
393 def check(self, codestring=""):
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
394 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
395 Public method to start a check for one file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
396
3209
c5432abceb25 CodeStyleChecker moved to background service and done a little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3177
diff changeset
397 The results are reported to the __processResult slot.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
398
9508
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
399 @param codestring optional sourcestring
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
400 @type str
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
401 """
3972
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
402 if self.syntaxCheckService is None or not self.files:
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
403 self.checkProgress.setMaximum(1)
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
404 self.checkProgress.setValue(1)
3618
49e7fbd66ef9 Fixed behavior and output if a file is deleted outside eric.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3591
diff changeset
405 self.__finish()
49e7fbd66ef9 Fixed behavior and output if a file is deleted outside eric.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3591
diff changeset
406 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
407
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
408 self.filename = self.files.pop(0)
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
409 self.checkProgress.setValue(self.progress)
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
410 QApplication.processEvents()
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
411 self.__resort()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
412
3173
1fb284abe46e Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3159
diff changeset
413 if self.cancelled:
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
414 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
415
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
416 self.__lastFileItem = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
417
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
418 if codestring:
9507
1f39839655ea Refactored the syntax checker code to get rid of redundancies.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
419 self.source = Utilities.normalizeCode(codestring)
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
420 else:
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
421 try:
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
422 self.source = Utilities.readEncodedFile(self.filename)[0]
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
423 self.source = Utilities.normalizeCode(self.source)
10050
3750abc45d5e Corrected some code style issues detected by the extended checkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
424 except (OSError, UnicodeError) as msg:
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
425 self.noResults = False
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
426 self.__createResultItem(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
427 self.filename,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
428 1,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
429 0,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
430 self.tr("Error: {0}").format(str(msg)).rstrip(),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
431 "",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
432 )
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
433 self.progress += 1
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
434 # Continue with next file
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
435 self.check()
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
436 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
437
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
438 self.__finished = False
9925
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
439 self.syntaxCheckService.syntaxCheck(
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
440 None, self.filename, self.source, *self.__arguments
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
441 )
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
442
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
443 def checkBatch(self):
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
444 """
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
445 Public method to start a style check batch job.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
446
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
447 The results are reported to the __processResult slot.
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
448 """
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
449 self.__lastFileItem = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
450
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
451 argumentsList = []
8220
006ee31b4835 Applied some more code simplifications suggested by the new Simplify checker (Y113: use enumerate()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
452 for progress, filename in enumerate(self.files, start=1):
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
453 self.checkProgress.setValue(progress)
8943
23f9c7b9e18e Implemented some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
454 if time.monotonic() - self.__timenow > 0.01:
23f9c7b9e18e Implemented some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
455 QApplication.processEvents()
23f9c7b9e18e Implemented some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
456 self.__timenow = time.monotonic()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
457
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
458 try:
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
459 source = Utilities.readEncodedFile(filename)[0]
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
460 source = Utilities.normalizeCode(source)
10050
3750abc45d5e Corrected some code style issues detected by the extended checkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
461 except (OSError, UnicodeError) as msg:
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
462 self.noResults = False
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
463 self.__createResultItem(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
464 self.filename,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
465 1,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
466 0,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
467 self.tr("Error: {0}").format(str(msg)).rstrip(),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
468 "",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
469 )
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
470 continue
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
471
9925
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
472 argumentsList.append((filename, source, *self.__arguments))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
473
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
474 # reset the progress bar to the checked files
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
475 self.checkProgress.setValue(self.progress)
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
476 QApplication.processEvents()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
477
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
478 self.__finished = False
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
479 self.syntaxCheckService.syntaxBatchCheck(argumentsList)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
480
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
481 def __batchFinished(self):
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
482 """
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
483 Private slot handling the completion of a batch job.
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
484 """
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
485 self.checkProgress.setMaximum(1)
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
486 self.checkProgress.setValue(1)
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
487 self.__finish()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
488
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
489 def __processError(self, fn, msg):
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
490 """
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
491 Private slot to process an error indication from the service.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
492
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
493 @param fn filename of the file
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
494 @type str
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
495 @param msg error message
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
496 @type str
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
497 """
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
498 self.__createErrorItem(fn, msg)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
499
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
500 if not self.__batch:
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4501
diff changeset
501 self.check()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
502
3412
9364dab2d472 Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3241
diff changeset
503 def __processResult(self, fn, problems):
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
504 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
505 Private slot to display the reported messages.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
506
9508
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
507 @param fn filename of the checked file
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
508 @type str
10341
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10304
diff changeset
509 @param problems list of dictionaries with the keys 'error', 'py_warnings' and
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10304
diff changeset
510 'warnings' which contain a tuple with details about the syntax error or a
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10304
diff changeset
511 list of tuples with details about Python warnings and PyFlakes warnings.
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10304
diff changeset
512 Each tuple contains the file name, line number, column, code string (only
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10304
diff changeset
513 for syntax errors), the message and an optional list with arguments for
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10304
diff changeset
514 the message.
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10304
diff changeset
515 @type list of dict
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
516 """
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
517 if self.__finished:
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
518 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
519
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
520 # Check if it's the requested file, otherwise ignore signal if not
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
521 # in batch mode
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
522 if not self.__batch and fn != self.filename:
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
523 return
3412
9364dab2d472 Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3241
diff changeset
524
10304
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
525 fileStatistics = self.__createFileStatistics(problems)
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
526 self.__updateStatistics(fileStatistics)
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
527 if any(fileStatistics.values()):
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
528 self.__createHeaderItem(fn, fileStatistics)
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
529
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
530 error = problems.get("error")
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
531 if error:
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
532 self.noResults = False
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
533 filename, lineno, col, code, msg = error
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
534 self.__createResultItem(filename, lineno, col, msg, code, False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
535
10304
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
536 warnings = problems.get("py_warnings", []) + problems.get("warnings", [])
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
537 if warnings:
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
538 if self.__batch:
4524
5543f4dec8f7 Fixed an issue in the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4522
diff changeset
539 try:
10304
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
540 source = Utilities.readEncodedFile(fn)[0]
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
541 source = Utilities.normalizeCode(source)
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
542 source = source.splitlines()
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
543 except (OSError, UnicodeError):
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
544 source = ""
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
545 else:
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
546 source = self.source.splitlines()
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
547 for filename, lineno, col, _code, msg in warnings:
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
548 self.noResults = False
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
549 if source:
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
550 try:
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
551 src_line = source[lineno - 1].strip()
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
552 except IndexError:
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
553 src_line = ""
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
554 else:
10188
0f873791d67e Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
555 src_line = ""
10304
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
556 self.__createResultItem(filename, lineno, col, msg, src_line, True)
3412
9364dab2d472 Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3241
diff changeset
557
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
558 self.progress += 1
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
559 self.checkProgress.setValue(self.progress)
8943
23f9c7b9e18e Implemented some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
560 if time.monotonic() - self.__timenow > 0.01:
23f9c7b9e18e Implemented some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
561 QApplication.processEvents()
23f9c7b9e18e Implemented some performance improvements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
562 self.__timenow = time.monotonic()
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
563 self.__resort()
2574
9d6b6cf31ec6 Fix for SyntaxCheckDialog and eflags evaluation.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2525
diff changeset
564
4231
0b38613388c9 Implemented the batch check mode for the syntax checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
565 if not self.__batch:
3159
02cb2adb4868 First implementation for the BackgroundService.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
566 self.check()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
567
10304
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
568 def __updateStatisticsArea(self):
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
569 """
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
570 Private method to update the statistics area of the dialog.
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
571 """
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
572 self.totalLabel.setText(
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
573 str(self.__statistics["files_skipped"] + self.__statistics["files_checked"])
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
574 )
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
575 self.skippedLabel.setText(str(self.__statistics["files_skipped"]))
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
576 self.checkedLabel.setText(str(self.__statistics["files_checked"]))
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
577 self.issuesLabel.setText(str(self.__statistics["files_issues"]))
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
578 self.errorsLabel.setText(str(self.__statistics["errors"]))
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
579 self.warningsLabel.setText(str(self.__statistics["warnings"]))
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
580 self.pyWarningsLabel.setText(str(self.__statistics["py_warnings"]))
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
581
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
582 def __finish(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
583 """
830
6caa4436dee2 Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 804
diff changeset
584 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
585 pressed the button.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
586 """
4235
81278aff6af9 Fixed an issue in the batch checker cancel function leading to the function not working if the background jobs had finished already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4234
diff changeset
587 if not self.__finished:
81278aff6af9 Fixed an issue in the batch checker cancel function leading to the function not working if the background jobs had finished already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4234
diff changeset
588 self.__finished = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
589
4235
81278aff6af9 Fixed an issue in the batch checker cancel function leading to the function not working if the background jobs had finished already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4234
diff changeset
590 self.cancelled = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
591 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
592 True
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
593 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
594 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setEnabled(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
595 False
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
596 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
597 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
598 True
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
599 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
600
4235
81278aff6af9 Fixed an issue in the batch checker cancel function leading to the function not working if the background jobs had finished already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4234
diff changeset
601 if self.noResults:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
602 QTreeWidgetItem(self.resultList, [self.tr("No issues found.")])
4235
81278aff6af9 Fixed an issue in the batch checker cancel function leading to the function not working if the background jobs had finished already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4234
diff changeset
603 QApplication.processEvents()
81278aff6af9 Fixed an issue in the batch checker cancel function leading to the function not working if the background jobs had finished already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4234
diff changeset
604 self.showButton.setEnabled(False)
81278aff6af9 Fixed an issue in the batch checker cancel function leading to the function not working if the background jobs had finished already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4234
diff changeset
605 else:
81278aff6af9 Fixed an issue in the batch checker cancel function leading to the function not working if the background jobs had finished already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4234
diff changeset
606 self.showButton.setEnabled(True)
4236
8d4e498a7af8 Fixed a few coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4235
diff changeset
607 self.resultList.header().resizeSections(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
608 QHeaderView.ResizeMode.ResizeToContents
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
609 )
4235
81278aff6af9 Fixed an issue in the batch checker cancel function leading to the function not working if the background jobs had finished already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4234
diff changeset
610 self.resultList.header().setStretchLastSection(True)
10304
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
611 self.__updateStatisticsArea()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
612
4235
81278aff6af9 Fixed an issue in the batch checker cancel function leading to the function not working if the background jobs had finished already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4234
diff changeset
613 self.checkProgress.setVisible(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
614
10068
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
615 def __cancel(self):
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
616 """
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
617 Private method to cancel the current check run.
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
618 """
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
619 if self.__batch:
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
620 self.syntaxCheckService.cancelSyntaxBatchCheck()
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
621 QTimer.singleShot(1000, self.__finish)
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
622 else:
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
623 self.__finish()
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
624
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
625 def closeEvent(self, evt):
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
626 """
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
627 Protected method to handle a close event.
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
628
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
629 @param evt reference to the close event
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
630 @type QCloseEvent
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
631 """
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
632 self.__cancel()
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
633
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
634 def on_buttonBox_clicked(self, button):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
635 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
636 Private slot called by a button of the button box clicked.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
637
9508
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
638 @param button button that was clicked
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
639 @type QAbstractButton
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
640 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
641 if button == self.buttonBox.button(QDialogButtonBox.StandardButton.Close):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
642 self.close()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
643 elif button == self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel):
10068
7febcdccb2a1 Syntax Checker Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
644 self.__cancel()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
645 elif button == self.showButton:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
646 self.on_showButton_clicked()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
647
571
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
648 @pyqtSlot()
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
649 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
650 """
830
6caa4436dee2 Fixed a few smaller issues and some source code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 804
diff changeset
651 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
652 """
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
653 fileList = self.__fileList[:]
10304
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
654 totalLen = len(fileList)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
655
571
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
656 filterString = self.excludeFilesEdit.text()
9925
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
657 self.__data["ExcludeFiles"] = filterString
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
658 self.__data["AdditionalBuiltins"] = self.builtinsEdit.text().strip()
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
659 if self.__data != self.__project.getData("CHECKERSPARMS", "SyntaxChecker"):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
660 self.__project.setData("CHECKERSPARMS", "SyntaxChecker", self.__data)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
661 filterList = [f.strip() for f in filterString.split(",") 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
662 if filterList:
5597
3d88d53f8c2b Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
663 for fileFilter in filterList:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
664 fileList = [f for f in fileList if not fnmatch.fnmatch(f, fileFilter)]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
665
571
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
666 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
667 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
668 self.cancelled = False
9925
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
669 self.setArguments((self.__data["AdditionalBuiltins"].split(),))
10304
ff7d3d6b952d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10302
diff changeset
670 self.start(fileList, skipped=totalLen - len(fileList))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
671
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10068
diff changeset
672 @pyqtSlot(QTreeWidgetItem, int)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
673 def on_resultList_itemActivated(self, itm, col):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
674 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 915
diff changeset
675 Private slot to handle the activation of an item.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
676
9508
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
677 @param itm reference to the activated item
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
678 @type QTreeWidgetItem
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
679 @param col column the item was activated in
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
680 @type int
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
681 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
682 if self.noResults:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
683 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
684
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: 8318
diff changeset
685 vm = ericApp().getObject("ViewManager")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
686
90
6de42151f9e6 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
687 if itm.parent():
7849
70e464748aaa Utilities: removed some obsolete functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
688 fn = os.path.abspath(itm.data(0, self.filenameRole))
90
6de42151f9e6 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
689 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
690 index = itm.data(0, self.indexRole)
90
6de42151f9e6 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
691 error = itm.data(0, self.errorRole)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
692
90
6de42151f9e6 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
693 vm.openSourceFile(fn, lineno)
6de42151f9e6 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
694 editor = vm.getOpenEditor(fn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
695
90
6de42151f9e6 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
696 if itm.data(0, self.warningRole):
3412
9364dab2d472 Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3241
diff changeset
697 editor.toggleWarning(lineno, 0, True, error)
90
6de42151f9e6 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
698 else:
915
c1e052773c08 Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 831
diff changeset
699 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
700 else:
7849
70e464748aaa Utilities: removed some obsolete functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
701 fn = os.path.abspath(itm.data(0, self.filenameRole))
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
702 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
703 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
704 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
705 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
706 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
707 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
708 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
709 if citm.data(0, self.warningRole):
3412
9364dab2d472 Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3241
diff changeset
710 editor.toggleWarning(lineno, 0, True, error)
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
711 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
712 editor.toggleSyntaxError(lineno, index, True, error, show=True)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
713
4433
7ab862396a8a Workaround for missing lines at vertical scroll bar caused by annotations.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4278
diff changeset
714 editor = vm.activeWindow()
7ab862396a8a Workaround for missing lines at vertical scroll bar caused by annotations.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4278
diff changeset
715 editor.updateVerticalScrollBar()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
716
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
717 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
718 def on_showButton_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
719 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
720 Private slot to handle the "Show" button press.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
721 """
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: 8318
diff changeset
722 vm = ericApp().getObject("ViewManager")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
723
3064
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
724 selectedIndexes = []
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
725 for index in range(self.resultList.topLevelItemCount()):
3064
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
726 if self.resultList.topLevelItem(index).isSelected():
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
727 selectedIndexes.append(index)
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
728 if len(selectedIndexes) == 0:
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
729 selectedIndexes = list(range(self.resultList.topLevelItemCount()))
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
730 for index in selectedIndexes:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
731 itm = self.resultList.topLevelItem(index)
7849
70e464748aaa Utilities: removed some obsolete functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
732 fn = os.path.abspath(itm.data(0, self.filenameRole))
90
6de42151f9e6 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
733 vm.openSourceFile(fn, 1)
3064
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
734 editor = vm.getOpenEditor(fn)
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
735 editor.clearSyntaxError()
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
736 editor.clearFlakesWarnings()
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
737 for cindex in range(itm.childCount()):
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
738 citm = itm.child(cindex)
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
739 lineno = citm.data(0, self.lineRole)
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
740 index = citm.data(0, self.indexRole)
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
741 error = citm.data(0, self.errorRole)
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
742 if citm.data(0, self.warningRole):
3412
9364dab2d472 Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3241
diff changeset
743 editor.toggleWarning(lineno, 0, True, error)
3064
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
744 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
745 editor.toggleSyntaxError(lineno, index, True, error, show=True)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
746
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 915
diff changeset
747 # go through the list again to clear syntax error and
3064
2e7054d62218 Fixed an issue with the syntax check dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3062
diff changeset
748 # flakes warning markers for files, that are ok
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
749 openFiles = vm.getOpenFilenames()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
750 errorFiles = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
751 for index in range(self.resultList.topLevelItemCount()):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
752 itm = self.resultList.topLevelItem(index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
753 errorFiles.append(os.path.abspath(itm.data(0, self.filenameRole)))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
754 for file in openFiles:
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3618
diff changeset
755 if file not in errorFiles:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
756 editor = vm.getOpenEditor(file)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
757 editor.clearSyntaxError()
90
6de42151f9e6 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 89
diff changeset
758 editor.clearFlakesWarnings()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
759
4433
7ab862396a8a Workaround for missing lines at vertical scroll bar caused by annotations.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4278
diff changeset
760 editor = vm.activeWindow()
7ab862396a8a Workaround for missing lines at vertical scroll bar caused by annotations.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4278
diff changeset
761 editor.updateVerticalScrollBar()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
762
3175
1a6638ccce9d Fixed an issue in the syntax and code style checker dialogs causing markers of open files not to be checked being cleared.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
763 def __clearErrors(self, files):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
764 """
3175
1a6638ccce9d Fixed an issue in the syntax and code style checker dialogs causing markers of open files not to be checked being cleared.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
765 Private method to clear all error and warning markers of
1a6638ccce9d Fixed an issue in the syntax and code style checker dialogs causing markers of open files not to be checked being cleared.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
766 open editors to be checked.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
767
9508
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
768 @param files list of files to be checked
5a02bdb1dcba Harmonized the naming of some code in the syntax checker plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9507
diff changeset
769 @type list of str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
770 """
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: 8318
diff changeset
771 vm = ericApp().getObject("ViewManager")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
772 openFiles = vm.getOpenFilenames()
3175
1a6638ccce9d Fixed an issue in the syntax and code style checker dialogs causing markers of open files not to be checked being cleared.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
773 for file in [f for f in openFiles if f in files]:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
774 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
775 editor.clearSyntaxError()
571
1a4101cb87eb Added filename filters to the syntax checker and tabnanny dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
776 editor.clearFlakesWarnings()

eric ide

mercurial