Plugins/CheckerPlugins/Pep8/Pep8Dialog.py

changeset 2866
c77e08c38a5c
parent 2864
d973dab8b715
child 2867
eb325d7f7335
--- a/Plugins/CheckerPlugins/Pep8/Pep8Dialog.py	Sat Aug 24 12:22:40 2013 +0200
+++ b/Plugins/CheckerPlugins/Pep8/Pep8Dialog.py	Sat Aug 24 14:44:55 2013 +0200
@@ -203,8 +203,7 @@
         
         self.__data = self.__project.getData("CHECKERSPARMS", "Pep8Checker")
         if self.__data is None or \
-           "ExcludeFiles" not in self.__data or \
-           len(self.__data) != 6:
+           len(self.__data) < 6:
             # initialize the data structure
             self.__data = {
                 "ExcludeFiles": "",
@@ -214,12 +213,19 @@
                 "FixCodes": "",
                 "FixIssues": False,
             }
+        if "MaxLineLength" not in self.__data:
+            self.__data["MaxLineLength"] = pep8.MAX_LINE_LENGTH,
+        if "HangClosing" not in self.__data:
+            self.__data["HangClosing"] = False
+        
         self.excludeFilesEdit.setText(self.__data["ExcludeFiles"])
         self.excludeMessagesEdit.setText(self.__data["ExcludeMessages"])
         self.includeMessagesEdit.setText(self.__data["IncludeMessages"])
         self.repeatCheckBox.setChecked(self.__data["RepeatMessages"])
         self.fixIssuesEdit.setText(self.__data["FixCodes"])
         self.fixIssuesCheckBox.setChecked(self.__data["FixIssues"])
+        self.lineLengthSpinBox.setValue(self.__data["MaxLineLength"])
+        self.hangClosingCheckBox.setChecked(self.__data["HangClosing"])
     
     def start(self, fn, save=False, repeat=None):
         """
@@ -290,6 +296,8 @@
             repeatMessages = self.repeatCheckBox.isChecked()
             fixCodes = self.fixIssuesEdit.text()
             fixIssues = self.fixIssuesCheckBox.isChecked() and repeatMessages
+            maxLineLength = self.lineLengthSpinBox.value()
+            hangClosing = self.hangClosingCheckBox.isChecked()
             
             try:
                 # disable updates of the list for speed
@@ -341,8 +349,8 @@
                             repeat=repeatMessages,
                             select=includeMessages,
                             ignore=excludeMessages,
-                            max_line_length=79,     # TODO: make configurable
-                            hang_closing=False,     # TODO: make configurable
+                            max_line_length=maxLineLength,
+                            hang_closing=hangClosing,
                         )
                         report.errors.sort(key=lambda a: a[1])
                     else:
@@ -361,8 +369,8 @@
                             repeat=repeatMessages,
                             select=select,
                             ignore=ignore,
-                            max_line_length=79,     # TODO: make configurable
-                            hang_closing=False,     # TODO: make configurable
+                            max_line_length=maxLineLength,
+                            hang_closing=hangClosing,
                         )
                         report = styleGuide.check_files([file])
                         report.errors.sort(key=lambda a: a[1])
@@ -433,6 +441,8 @@
                 "RepeatMessages": self.repeatCheckBox.isChecked(),
                 "FixCodes": self.fixIssuesEdit.text(),
                 "FixIssues": self.fixIssuesCheckBox.isChecked(),
+                "MaxLineLength": self.lineLengthSpinBox.value(),
+                "HangClosing": self.hangClosingCheckBox.isChecked(),
             }
             if data != self.__data:
                 self.__data = data
@@ -565,6 +575,10 @@
             "PEP8/FixCodes"))
         self.fixIssuesCheckBox.setChecked(Preferences.toBool(
             Preferences.Prefs.settings.value("PEP8/FixIssues")))
+        self.lineLengthSpinBox.setValue(int(Preferences.Prefs.settings.value(
+            "PEP8/MaxLineLength", pep8.MAX_LINE_LENGTH)))
+        self.hangClosingCheckBox.setChecked(Preferences.toBool(
+            Preferences.Prefs.settings.value("PEP8/HangClosing")))
     
     @pyqtSlot()
     def on_storeDefaultButton_clicked(self):
@@ -582,6 +596,11 @@
             self.fixIssuesEdit.text())
         Preferences.Prefs.settings.setValue("PEP8/FixIssues",
             self.fixIssuesCheckBox.isChecked())
+        # TODO: extend for max_line_length and hang_closing
+        Preferences.Prefs.settings.setValue("PEP8/MaxLineLength",
+            self.lineLengthSpinBox.value())
+        Preferences.Prefs.settings.setValue("PEP8/HangClosing",
+            self.hangClosingCheckBox.isChecked())
     
     @pyqtSlot(QAbstractButton)
     def on_buttonBox_clicked(self, button):

eric ide

mercurial