Fix PY-8938 PEP 8: line too long quick fix doesn't exist (at least for strings)
authorValentina Kiryushkina <valentina.kiryushkina@jetbrains.com>
Wed, 7 Sep 2016 15:49:54 +0000 (18:49 +0300)
committerValentina Kiryushkina <valentina.kiryushkina@jebtrains.com>
Tue, 25 Oct 2016 11:36:04 +0000 (14:36 +0300)
Use "Fill Paragraph" action instead of "Reformat File" for too long lines

python/src/com/jetbrains/python/inspections/quickfix/PyFillParagraphFix.java [new file with mode: 0644]
python/src/com/jetbrains/python/validation/Pep8ExternalAnnotator.java

diff --git a/python/src/com/jetbrains/python/inspections/quickfix/PyFillParagraphFix.java b/python/src/com/jetbrains/python/inspections/quickfix/PyFillParagraphFix.java
new file mode 100644 (file)
index 0000000..0ef2b71
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2000-2016 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.jetbrains.python.inspections.quickfix;
+
+import com.intellij.codeInsight.editorActions.fillParagraph.FillParagraphAction;
+import com.intellij.codeInsight.intention.HighPriorityAction;
+import com.intellij.codeInsight.intention.impl.BaseIntentionAction;
+import com.intellij.openapi.editor.Editor;
+import com.intellij.openapi.project.Project;
+import com.intellij.psi.PsiFile;
+import com.intellij.util.IncorrectOperationException;
+import org.jetbrains.annotations.Nls;
+import org.jetbrains.annotations.NotNull;
+
+public class PyFillParagraphFix extends BaseIntentionAction implements  HighPriorityAction {
+
+  public PyFillParagraphFix() {
+    setText("Fill paragraph");
+  }
+
+  @Nls
+  @NotNull
+  @Override
+  public String getFamilyName() {
+    return getText();
+  }
+
+  @Override
+  public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) {
+    return true;
+  }
+
+  @Override
+  public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
+    final FillParagraphAction action = new FillParagraphAction();
+    action.actionPerformedImpl(project, editor);
+  }
+}
index a2c56c075c327520e0ca00cc75c038fd417abfa2..02c0f7e22a97f91653a6e52f8da98a1be46c8ea6 100644 (file)
@@ -56,6 +56,7 @@ import com.jetbrains.python.PythonLanguage;
 import com.jetbrains.python.codeInsight.imports.OptimizeImportsQuickFix;
 import com.jetbrains.python.formatter.PyCodeStyleSettings;
 import com.jetbrains.python.inspections.PyPep8Inspection;
 import com.jetbrains.python.codeInsight.imports.OptimizeImportsQuickFix;
 import com.jetbrains.python.formatter.PyCodeStyleSettings;
 import com.jetbrains.python.inspections.PyPep8Inspection;
+import com.jetbrains.python.inspections.quickfix.PyFillParagraphFix;
 import com.jetbrains.python.inspections.quickfix.ReformatFix;
 import com.jetbrains.python.inspections.quickfix.RemoveTrailingBlankLinesFix;
 import com.jetbrains.python.psi.*;
 import com.jetbrains.python.inspections.quickfix.ReformatFix;
 import com.jetbrains.python.inspections.quickfix.RemoveTrailingBlankLinesFix;
 import com.jetbrains.python.psi.*;
@@ -317,6 +318,9 @@ public class Pep8ExternalAnnotator extends ExternalAnnotator<Pep8ExternalAnnotat
         else if (problem.myCode.equals("W391")) {
           annotation.registerUniversalFix(new RemoveTrailingBlankLinesFix(), null, null);
         }
         else if (problem.myCode.equals("W391")) {
           annotation.registerUniversalFix(new RemoveTrailingBlankLinesFix(), null, null);
         }
+        else if (problem.myCode.equals("E501")) {
+          annotation.registerFix(new PyFillParagraphFix());
+        }
         else {
           annotation.registerUniversalFix(new ReformatFix(), null, null);
         }
         else {
           annotation.registerUniversalFix(new ReformatFix(), null, null);
         }