Plugins/CheckerPlugins/Pep8/Pep8Dialog.py

changeset 2928
4f74d3f595ce
parent 2920
054ac3c88754
child 2929
28ab0bc63d69
--- a/Plugins/CheckerPlugins/Pep8/Pep8Dialog.py	Sun Sep 22 16:03:25 2013 +0200
+++ b/Plugins/CheckerPlugins/Pep8/Pep8Dialog.py	Sun Sep 22 19:47:04 2013 +0200
@@ -88,6 +88,9 @@
         super().__init__(parent)
         self.setupUi(self)
         
+        self.docTypeComboBox.addItem(self.trUtf8("PEP-257"), "pep257")
+        self.docTypeComboBox.addItem(self.trUtf8("Eric"), "eric")
+        
         self.statisticsButton = self.buttonBox.addButton(
             self.trUtf8("Statistics..."), QDialogButtonBox.ActionRole)
         self.statisticsButton.setToolTip(
@@ -269,6 +272,8 @@
             self.__data["HangClosing"] = False
         if "NoFixCodes" not in self.__data:
             self.__data["NoFixCodes"] = "E501"
+        if "DocstringType" not in self.__data:
+            self.__data["DocstringType"] = "pep257"
         
         self.excludeFilesEdit.setText(self.__data["ExcludeFiles"])
         self.excludeMessagesEdit.setText(self.__data["ExcludeMessages"])
@@ -279,6 +284,8 @@
         self.fixIssuesCheckBox.setChecked(self.__data["FixIssues"])
         self.lineLengthSpinBox.setValue(self.__data["MaxLineLength"])
         self.hangClosingCheckBox.setChecked(self.__data["HangClosing"])
+        self.docTypeComboBox.setCurrentIndex(
+            self.docTypeComboBox.findData(self.__data["DocstringType"]))
     
     def start(self, fn, save=False, repeat=None):
         """
@@ -354,6 +361,8 @@
             fixIssues = self.fixIssuesCheckBox.isChecked() and repeatMessages
             maxLineLength = self.lineLengthSpinBox.value()
             hangClosing = self.hangClosingCheckBox.isChecked()
+            docType = self.docTypeComboBox.itemData(
+                self.docTypeComboBox.currentIndex())
             
             try:
                 # disable updates of the list for speed
@@ -403,6 +412,7 @@
                         self.__project.getProjectLanguage() in ["Python",
                                                                 "Python2"]):
                         from .Pep8Checker import Pep8Py2Checker
+                        # TODO: add the docType into the Py2 variant
                         report = Pep8Py2Checker(file, [],
                             repeat=repeatMessages,
                             select=includeMessages,
@@ -439,7 +449,7 @@
                         # check PEP-257
                         pep257Checker = Pep257Checker(
                             source, file, select, ignore, [], repeatMessages,
-                            maxLineLength=maxLineLength)
+                            maxLineLength=maxLineLength, docType=docType)
                         pep257Checker.run()
                         stats.update(pep257Checker.counters)
                         
@@ -537,6 +547,8 @@
                 "FixIssues": self.fixIssuesCheckBox.isChecked(),
                 "MaxLineLength": self.lineLengthSpinBox.value(),
                 "HangClosing": self.hangClosingCheckBox.isChecked(),
+                "DocstringType": self.docTypeComboBox.itemData(
+                    self.docTypeComboBox.currentIndex()),
             }
             if data != self.__data:
                 self.__data = data
@@ -698,6 +710,8 @@
             "PEP8/MaxLineLength", pep8.MAX_LINE_LENGTH)))
         self.hangClosingCheckBox.setChecked(Preferences.toBool(
             Preferences.Prefs.settings.value("PEP8/HangClosing")))
+        self.docTypeComboBox.setCurrentIndex(self.docTypeComboBox.findData(
+            Preferences.Prefs.settings.value("PEP8/DocstringType", "pep257")))
     
     @pyqtSlot()
     def on_storeDefaultButton_clicked(self):
@@ -723,13 +737,15 @@
             self.lineLengthSpinBox.value())
         Preferences.Prefs.settings.setValue("PEP8/HangClosing",
             self.hangClosingCheckBox.isChecked())
+        Preferences.Prefs.settings.setValue("PEP8/DocstringType",
+            self.docTypeComboBox.itemData(
+                self.docTypeComboBox.currentIndex()))
     
     @pyqtSlot()
     def on_resetDefaultButton_clicked(self):
         """
-        Slot documentation goes here.
+        Private slot to reset the configuration values to their default values.
         """
-        raise NotImplementedError
         Preferences.Prefs.settings.setValue("PEP8/ExcludeFilePatterns", "")
         Preferences.Prefs.settings.setValue("PEP8/ExcludeMessages",
             pep8.DEFAULT_IGNORE)
@@ -741,6 +757,7 @@
         Preferences.Prefs.settings.setValue("PEP8/MaxLineLength",
             pep8.MAX_LINE_LENGTH)
         Preferences.Prefs.settings.setValue("PEP8/HangClosing", False)
+        Preferences.Prefs.settings.setValue("PEP8/DocstringType", "pep257")
     
     @pyqtSlot(QAbstractButton)
     def on_buttonBox_clicked(self, button):
@@ -813,6 +830,7 @@
                     continue
                 
                 deferredFixes = {}
+                # TODO: add docstring type
                 fixer = Pep8Fixer(self.__project, file, source,
                                   fixCodes, noFixCodes, maxLineLength,
                                   True)  # always fix in place

eric ide

mercurial