154 self.__lastFileItem.setExpanded(True) |
154 self.__lastFileItem.setExpanded(True) |
155 self.__lastFileItem.setData(0, self.filenameRole, file) |
155 self.__lastFileItem.setData(0, self.filenameRole, file) |
156 |
156 |
157 fixable = False |
157 fixable = False |
158 code, message = message.split(None, 1) |
158 code, message = message.split(None, 1) |
159 itm = QTreeWidgetItem(self.__lastFileItem, |
159 itm = QTreeWidgetItem( |
|
160 self.__lastFileItem, |
160 ["{0:6}".format(line), code, message]) |
161 ["{0:6}".format(line), code, message]) |
161 if code.startswith("W"): |
162 if code.startswith("W"): |
162 itm.setIcon(1, UI.PixmapCache.getIcon("warning.png")) |
163 itm.setIcon(1, UI.PixmapCache.getIcon("warning.png")) |
163 elif code.startswith("N"): |
164 elif code.startswith("N"): |
164 itm.setIcon(1, UI.PixmapCache.getIcon("namingError.png")) |
165 itm.setIcon(1, UI.PixmapCache.getIcon("namingError.png")) |
393 try: |
394 try: |
394 source, encoding = Utilities.readEncodedFile(file) |
395 source, encoding = Utilities.readEncodedFile(file) |
395 source = source.splitlines(True) |
396 source = source.splitlines(True) |
396 except (UnicodeError, IOError) as msg: |
397 except (UnicodeError, IOError) as msg: |
397 self.noResults = False |
398 self.noResults = False |
398 self.__createResultItem(file, "1", "1", |
399 self.__createResultItem( |
|
400 file, "1", "1", |
399 self.trUtf8("Error: {0}").format(str(msg))\ |
401 self.trUtf8("Error: {0}").format(str(msg))\ |
400 .rstrip()[1:-1], False, False) |
402 .rstrip()[1:-1], False, False) |
401 progress += 1 |
403 progress += 1 |
402 continue |
404 continue |
403 |
405 |
404 stats = {} |
406 stats = {} |
405 flags = Utilities.extractFlags(source) |
407 flags = Utilities.extractFlags(source) |
406 ext = os.path.splitext(file)[1] |
408 ext = os.path.splitext(file)[1] |
407 if fixIssues: |
409 if fixIssues: |
408 from .CodeStyleFixer import CodeStyleFixer |
410 from .CodeStyleFixer import CodeStyleFixer |
409 fixer = CodeStyleFixer(self.__project, file, source, |
411 fixer = CodeStyleFixer( |
410 fixCodes, noFixCodes, maxLineLength, |
412 self.__project, file, source, fixCodes, noFixCodes, |
411 True) # always fix in place |
413 maxLineLength, True) # always fix in place |
412 else: |
414 else: |
413 fixer = None |
415 fixer = None |
414 if ("FileType" in flags and |
416 if ("FileType" in flags and |
415 flags["FileType"] in ["Python", "Python2"]) or \ |
417 flags["FileType"] in ["Python", "Python2"]) or \ |
416 file in py2files or \ |
418 file in py2files or \ |
419 self.__project.isOpen() and \ |
421 self.__project.isOpen() and \ |
420 self.__project.isProjectFile(file) and \ |
422 self.__project.isProjectFile(file) and \ |
421 self.__project.getProjectLanguage() in ["Python", |
423 self.__project.getProjectLanguage() in ["Python", |
422 "Python2"]): |
424 "Python2"]): |
423 from .CodeStyleChecker import CodeStyleCheckerPy2 |
425 from .CodeStyleChecker import CodeStyleCheckerPy2 |
424 report = CodeStyleCheckerPy2(file, [], |
426 report = CodeStyleCheckerPy2( |
|
427 file, [], |
425 repeat=repeatMessages, |
428 repeat=repeatMessages, |
426 select=includeMessages, |
429 select=includeMessages, |
427 ignore=excludeMessages, |
430 ignore=excludeMessages, |
428 max_line_length=maxLineLength, |
431 max_line_length=maxLineLength, |
429 hang_closing=hangClosing, |
432 hang_closing=hangClosing, |
736 def on_storeDefaultButton_clicked(self): |
739 def on_storeDefaultButton_clicked(self): |
737 """ |
740 """ |
738 Private slot to store the current configuration values as |
741 Private slot to store the current configuration values as |
739 default values. |
742 default values. |
740 """ |
743 """ |
741 Preferences.Prefs.settings.setValue("PEP8/ExcludeFilePatterns", |
744 Preferences.Prefs.settings.setValue( |
742 self.excludeFilesEdit.text()) |
745 "PEP8/ExcludeFilePatterns", self.excludeFilesEdit.text()) |
743 Preferences.Prefs.settings.setValue("PEP8/ExcludeMessages", |
746 Preferences.Prefs.settings.setValue( |
744 self.excludeMessagesEdit.text()) |
747 "PEP8/ExcludeMessages", self.excludeMessagesEdit.text()) |
745 Preferences.Prefs.settings.setValue("PEP8/IncludeMessages", |
748 Preferences.Prefs.settings.setValue( |
746 self.includeMessagesEdit.text()) |
749 "PEP8/IncludeMessages", self.includeMessagesEdit.text()) |
747 Preferences.Prefs.settings.setValue("PEP8/RepeatMessages", |
750 Preferences.Prefs.settings.setValue( |
748 self.repeatCheckBox.isChecked()) |
751 "PEP8/RepeatMessages", self.repeatCheckBox.isChecked()) |
749 Preferences.Prefs.settings.setValue("PEP8/FixCodes", |
752 Preferences.Prefs.settings.setValue( |
750 self.fixIssuesEdit.text()) |
753 "PEP8/FixCodes", self.fixIssuesEdit.text()) |
751 Preferences.Prefs.settings.setValue("PEP8/NoFixCodes", |
754 Preferences.Prefs.settings.setValue( |
752 self.noFixIssuesEdit.text()) |
755 "PEP8/NoFixCodes", self.noFixIssuesEdit.text()) |
753 Preferences.Prefs.settings.setValue("PEP8/FixIssues", |
756 Preferences.Prefs.settings.setValue( |
754 self.fixIssuesCheckBox.isChecked()) |
757 "PEP8/FixIssues", self.fixIssuesCheckBox.isChecked()) |
755 Preferences.Prefs.settings.setValue("PEP8/MaxLineLength", |
758 Preferences.Prefs.settings.setValue( |
756 self.lineLengthSpinBox.value()) |
759 "PEP8/MaxLineLength", self.lineLengthSpinBox.value()) |
757 Preferences.Prefs.settings.setValue("PEP8/HangClosing", |
760 Preferences.Prefs.settings.setValue( |
758 self.hangClosingCheckBox.isChecked()) |
761 "PEP8/HangClosing", self.hangClosingCheckBox.isChecked()) |
759 Preferences.Prefs.settings.setValue("PEP8/DocstringType", |
762 Preferences.Prefs.settings.setValue( |
760 self.docTypeComboBox.itemData( |
763 "PEP8/DocstringType", self.docTypeComboBox.itemData( |
761 self.docTypeComboBox.currentIndex())) |
764 self.docTypeComboBox.currentIndex())) |
762 |
765 |
763 @pyqtSlot() |
766 @pyqtSlot() |
764 def on_resetDefaultButton_clicked(self): |
767 def on_resetDefaultButton_clicked(self): |
765 """ |
768 """ |
766 Private slot to reset the configuration values to their default values. |
769 Private slot to reset the configuration values to their default values. |
767 """ |
770 """ |
768 Preferences.Prefs.settings.setValue("PEP8/ExcludeFilePatterns", "") |
771 Preferences.Prefs.settings.setValue("PEP8/ExcludeFilePatterns", "") |
769 Preferences.Prefs.settings.setValue("PEP8/ExcludeMessages", |
772 Preferences.Prefs.settings.setValue( |
770 pep8.DEFAULT_IGNORE) |
773 "PEP8/ExcludeMessages", pep8.DEFAULT_IGNORE) |
771 Preferences.Prefs.settings.setValue("PEP8/IncludeMessages", "") |
774 Preferences.Prefs.settings.setValue("PEP8/IncludeMessages", "") |
772 Preferences.Prefs.settings.setValue("PEP8/RepeatMessages", False) |
775 Preferences.Prefs.settings.setValue("PEP8/RepeatMessages", False) |
773 Preferences.Prefs.settings.setValue("PEP8/FixCodes", "") |
776 Preferences.Prefs.settings.setValue("PEP8/FixCodes", "") |
774 Preferences.Prefs.settings.setValue("PEP8/NoFixCodes", "E501") |
777 Preferences.Prefs.settings.setValue("PEP8/NoFixCodes", "E501") |
775 Preferences.Prefs.settings.setValue("PEP8/FixIssues", False) |
778 Preferences.Prefs.settings.setValue("PEP8/FixIssues", False) |
776 Preferences.Prefs.settings.setValue("PEP8/MaxLineLength", |
779 Preferences.Prefs.settings.setValue( |
777 pep8.MAX_LINE_LENGTH) |
780 "PEP8/MaxLineLength", pep8.MAX_LINE_LENGTH) |
778 Preferences.Prefs.settings.setValue("PEP8/HangClosing", False) |
781 Preferences.Prefs.settings.setValue("PEP8/HangClosing", False) |
779 Preferences.Prefs.settings.setValue("PEP8/DocstringType", "pep257") |
782 Preferences.Prefs.settings.setValue("PEP8/DocstringType", "pep257") |
780 |
783 |
781 @pyqtSlot(QAbstractButton) |
784 @pyqtSlot(QAbstractButton) |
782 def on_buttonBox_clicked(self, button): |
785 def on_buttonBox_clicked(self, button): |
847 # skip silently because that should not happen |
850 # skip silently because that should not happen |
848 progress += 1 |
851 progress += 1 |
849 continue |
852 continue |
850 |
853 |
851 deferredFixes = {} |
854 deferredFixes = {} |
852 fixer = CodeStyleFixer(self.__project, file, source, |
855 fixer = CodeStyleFixer( |
853 fixCodes, noFixCodes, maxLineLength, |
856 self.__project, file, source, fixCodes, noFixCodes, |
854 True) # always fix in place |
857 maxLineLength, True) # always fix in place |
855 errors = fixesDict[file] |
858 errors = fixesDict[file] |
856 errors.sort(key=lambda a: a[0][0]) |
859 errors.sort(key=lambda a: a[0][0]) |
857 for error in errors: |
860 for error in errors: |
858 (lineno, position, text), itm = error |
861 (lineno, position, text), itm = error |
859 if lineno > len(source): |
862 if lineno > len(source): |