mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge remote branch 'origin/master'
This commit is contained in:
@@ -508,6 +508,7 @@
|
||||
<lang.substitutor language="TEXT" implementationClass="com.jetbrains.rest.RestLanguageSubstitutor"/>
|
||||
<configurationType implementation="com.jetbrains.rest.run.RestRunConfigurationType"/>
|
||||
<configurationProducer implementation="com.jetbrains.rest.run.docutils.DocutilsConfigurationProducer"/>
|
||||
<configurationProducer implementation="com.jetbrains.rest.run.sphinx.SphinxConfigurationProducer"/>
|
||||
|
||||
<!-- Mako files -->
|
||||
<lang.substitutor language="HTML" implementationClass="com.jetbrains.mako.TemplateLanguageSubstitutor"/>
|
||||
|
||||
@@ -5,7 +5,9 @@ import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.jetbrains.python.PyBundle;
|
||||
import com.jetbrains.python.psi.*;
|
||||
import com.jetbrains.python.psi.PyElementGenerator;
|
||||
import com.jetbrains.python.psi.PyExpression;
|
||||
import com.jetbrains.python.psi.PyStringLiteralExpression;
|
||||
import com.jetbrains.python.psi.impl.PyStringLiteralExpressionImpl;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -41,7 +43,9 @@ public class ConvertDocstringQuickFix implements LocalQuickFix {
|
||||
String content = expression.getText().substring(prefixLength);
|
||||
if (content.startsWith("'''") ) {
|
||||
content = content.substring(3, content.length()-3);
|
||||
} else {
|
||||
} else if (content.startsWith("\"\"\""))
|
||||
return;
|
||||
else {
|
||||
content = content.length() == 1 ? "" : content.substring(1, content.length()-1);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,14 +3,15 @@ package com.jetbrains.python.actions;
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.jetbrains.python.PyBundle;
|
||||
import com.jetbrains.python.psi.PyArgumentList;
|
||||
import com.jetbrains.python.psi.PyExpression;
|
||||
import com.jetbrains.python.psi.PyKeywordArgument;
|
||||
import com.jetbrains.python.psi.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
@@ -36,14 +37,23 @@ public class RemoveArgumentEqualDefaultQuickFix implements LocalQuickFix {
|
||||
|
||||
public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
|
||||
PsiElement element = descriptor.getPsiElement();
|
||||
PyExpression[] arguments = PsiTreeUtil.getParentOfType(element, PyArgumentList.class).getArguments();
|
||||
boolean canDelete = true;
|
||||
for (int i = arguments.length-1; i != -1; --i) {
|
||||
if (myProblemElements.contains(arguments[i])) {
|
||||
if (canDelete)
|
||||
arguments[i].delete();
|
||||
|
||||
PyArgumentList argumentList = PsiTreeUtil.getParentOfType(element, PyArgumentList.class);
|
||||
if (argumentList == null) return;
|
||||
StringBuilder newArgumentList = new StringBuilder("foo(");
|
||||
|
||||
PyExpression[] arguments = argumentList.getArguments();
|
||||
List<String> newArgs = new ArrayList<String>();
|
||||
for (int i = 0; i != arguments.length; ++i) {
|
||||
if (!myProblemElements.contains(arguments[i])) {
|
||||
newArgs.add(arguments[i].getText());
|
||||
}
|
||||
else if (!(arguments[i] instanceof PyKeywordArgument)) canDelete = false;
|
||||
}
|
||||
|
||||
newArgumentList.append(StringUtil.join(newArgs, ", ")).append(")");
|
||||
PyExpression expression = PyElementGenerator.getInstance(project).createFromText(
|
||||
LanguageLevel.forElement(argumentList), PyExpressionStatement.class, newArgumentList.toString()).getExpression();
|
||||
if (expression instanceof PyCallExpression)
|
||||
argumentList.replace(((PyCallExpression)expression).getArgumentList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,6 +69,8 @@ public class PyRedundantParenthesesInspection extends PyInspection {
|
||||
registerProblem(node, "Remove redundant parentheses", new RedundantParenthesesQuickFix());
|
||||
}
|
||||
else if (expression instanceof PyBinaryExpression) {
|
||||
if (node.getParent() instanceof PyPrefixExpression)
|
||||
return;
|
||||
if (((PyBinaryExpression)expression).getOperator() == PyTokenTypes.AND_KEYWORD ||
|
||||
((PyBinaryExpression)expression).getOperator() == PyTokenTypes.OR_KEYWORD) {
|
||||
if (((PyBinaryExpression)expression).getLeftExpression() instanceof PyParenthesizedExpression &&
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.jetbrains.python.run;
|
||||
|
||||
import com.intellij.ui.ComponentWithAnchor;
|
||||
import com.intellij.ui.PanelWithAnchor;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
*/
|
||||
public interface AbstractPyCommonOptionsForm extends AbstractPythonRunConfigurationParams, ComponentWithAnchor {
|
||||
public interface AbstractPyCommonOptionsForm extends AbstractPythonRunConfigurationParams, PanelWithAnchor {
|
||||
JComponent getMainPanel();
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.intellij.openapi.ui.TextFieldWithBrowseButton;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.ui.ComponentWithAnchor;
|
||||
import com.intellij.ui.PanelWithAnchor;
|
||||
import com.intellij.ui.RawCommandLineEditor;
|
||||
import com.intellij.ui.components.JBLabel;
|
||||
|
||||
@@ -18,7 +18,7 @@ import java.awt.*;
|
||||
/**
|
||||
* @author yole
|
||||
*/
|
||||
public class PythonRunConfigurationForm implements PythonRunConfigurationParams, ComponentWithAnchor {
|
||||
public class PythonRunConfigurationForm implements PythonRunConfigurationParams, PanelWithAnchor {
|
||||
private JPanel myRootPanel;
|
||||
private TextFieldWithBrowseButton myScriptTextField;
|
||||
private RawCommandLineEditor myScriptParametersTextField;
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.intellij.openapi.ui.LabeledComponent;
|
||||
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.ui.ComponentWithAnchor;
|
||||
import com.intellij.ui.PanelWithAnchor;
|
||||
import com.intellij.ui.components.JBLabel;
|
||||
import com.jetbrains.python.PyBundle;
|
||||
import com.jetbrains.python.run.AbstractPyCommonOptionsForm;
|
||||
@@ -24,7 +24,7 @@ import static com.jetbrains.python.testing.unittest.PythonUnitTestRunConfigurati
|
||||
/**
|
||||
* @author Leonid Shalupov
|
||||
*/
|
||||
public class PythonTestRunConfigurationForm implements AbstractPythonTestRunConfigurationParams, ComponentWithAnchor {
|
||||
public class PythonTestRunConfigurationForm implements AbstractPythonTestRunConfigurationParams, PanelWithAnchor {
|
||||
private JPanel myRootPanel;
|
||||
private LabeledComponent myTestClassComponent;
|
||||
private LabeledComponent myTestMethodComponent;
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.options.SettingsEditor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
|
||||
import com.intellij.ui.ComponentWithAnchor;
|
||||
import com.intellij.ui.PanelWithAnchor;
|
||||
import com.intellij.ui.components.JBLabel;
|
||||
import com.jetbrains.python.PyBundle;
|
||||
import com.jetbrains.python.run.AbstractPyCommonOptionsForm;
|
||||
@@ -16,12 +16,10 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import static com.intellij.openapi.util.io.FileUtil.toSystemIndependentName;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
*/
|
||||
public class PyTestConfigurationEditor extends SettingsEditor<PyTestRunConfiguration> implements ComponentWithAnchor {
|
||||
public class PyTestConfigurationEditor extends SettingsEditor<PyTestRunConfiguration> implements PanelWithAnchor {
|
||||
private JPanel myMainPanel;
|
||||
private JPanel myCommonOptionsPlaceholder;
|
||||
private JTextField myKeywordsTextField;
|
||||
@@ -51,13 +49,13 @@ public class PyTestConfigurationEditor extends SettingsEditor<PyTestRunConfigura
|
||||
protected void resetEditorFrom(PyTestRunConfiguration s) {
|
||||
AbstractPythonRunConfiguration.copyParams(s, myCommonOptionsForm);
|
||||
myKeywordsTextField.setText(s.getKeywords());
|
||||
myTestScriptTextField.setText(toSystemIndependentName(s.getTestToRun()));
|
||||
myTestScriptTextField.setText(s.getTestToRun());
|
||||
myParamsTextField.setText(s.getParams());
|
||||
}
|
||||
|
||||
protected void applyEditorTo(PyTestRunConfiguration s) throws ConfigurationException {
|
||||
AbstractPythonRunConfiguration.copyParams(myCommonOptionsForm, s);
|
||||
s.setTestToRun(toSystemIndependentName(myTestScriptTextField.getText().trim()));
|
||||
s.setTestToRun(myTestScriptTextField.getText().trim());
|
||||
s.setKeywords(myKeywordsTextField.getText().trim());
|
||||
s.setParams(myParamsTextField.getText().trim());
|
||||
}
|
||||
|
||||
@@ -2,4 +2,5 @@ def foo(a, b = 345, c = 1):
|
||||
pass
|
||||
|
||||
#PY-3261
|
||||
foo(1, <warning descr="Argument equals to default parameter value">345<caret></warning>, c=22)
|
||||
foo(1,
|
||||
<warning descr="Argument equals to default parameter value">345<caret></warning>, c=22)
|
||||
@@ -58,3 +58,12 @@ def bar(a = "qwer"):
|
||||
bar(<warning descr="Argument equals to default parameter value">a = 'qwer'</warning>)
|
||||
|
||||
getattr(bar, "__doc__", None) # None is not highlighted
|
||||
|
||||
class a:
|
||||
def get(self, a, b = None):
|
||||
pass
|
||||
|
||||
kw = a()
|
||||
|
||||
kw['customerPaymentProfileId'] = kw.get("customerPaymentProfileId",
|
||||
<warning descr="Argument equals to default parameter value">None</warning>)
|
||||
|
||||
Reference in New Issue
Block a user