Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py

branch
Py2 comp.
changeset 3058
0a02c433f52d
parent 3057
10516539f238
parent 3022
57179e4cdadd
child 3060
5883ce99ee12
equal deleted inserted replaced
3057:10516539f238 3058:0a02c433f52d
156 self.__lastFileItem.setExpanded(True) 156 self.__lastFileItem.setExpanded(True)
157 self.__lastFileItem.setData(0, self.filenameRole, file) 157 self.__lastFileItem.setData(0, self.filenameRole, file)
158 158
159 fixable = False 159 fixable = False
160 code, message = message.split(None, 1) 160 code, message = message.split(None, 1)
161 itm = QTreeWidgetItem(self.__lastFileItem, 161 itm = QTreeWidgetItem(
162 self.__lastFileItem,
162 ["{0:6}".format(line), code, message]) 163 ["{0:6}".format(line), code, message])
163 if code.startswith("W"): 164 if code.startswith("W"):
164 itm.setIcon(1, UI.PixmapCache.getIcon("warning.png")) 165 itm.setIcon(1, UI.PixmapCache.getIcon("warning.png"))
165 elif code.startswith("N"): 166 elif code.startswith("N"):
166 itm.setIcon(1, UI.PixmapCache.getIcon("namingError.png")) 167 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):

eric ide

mercurial