mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Minor Cleanup
This commit is contained in:
@@ -22,6 +22,7 @@ import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.jetbrains.python.PyElementTypes;
|
||||
import com.jetbrains.python.PythonStringUtil;
|
||||
import com.jetbrains.python.inspections.PyStringFormatParser;
|
||||
import com.jetbrains.python.psi.*;
|
||||
import com.jetbrains.python.psi.impl.PyBuiltinCache;
|
||||
@@ -127,11 +128,11 @@ public class PyReplaceExpressionUtil implements PyElementTypes {
|
||||
final Pair<String, String> quotes = detectedQuotes != null ? detectedQuotes : Pair.create("'", "'");
|
||||
final String prefix = fullText.substring(0, textRange.getStartOffset());
|
||||
final String suffix = fullText.substring(textRange.getEndOffset(), oldExpression.getTextLength());
|
||||
final PyExpression formatValue = PyStringFormatParser.getFormatValueExpression(oldExpression);
|
||||
final PyArgumentList newStyleFormatValue = PyStringFormatParser.getNewStyleFormatValueExpression(oldExpression);
|
||||
final PyExpression formatValue = getFormatValueExpression(oldExpression);
|
||||
final PyArgumentList newStyleFormatValue = getNewStyleFormatValueExpression(oldExpression);
|
||||
final String newText = newExpression.getText();
|
||||
|
||||
final List<PyStringFormatParser.SubstitutionChunk> substitutions;
|
||||
final List<SubstitutionChunk> substitutions;
|
||||
if (newStyleFormatValue != null) {
|
||||
substitutions = filterSubstitutions(parseNewStyleFormat(fullText));
|
||||
}
|
||||
@@ -188,7 +189,7 @@ public class PyReplaceExpressionUtil implements PyElementTypes {
|
||||
String suffix,
|
||||
PyExpression formatValue,
|
||||
String newText,
|
||||
List<PyStringFormatParser.SubstitutionChunk> substitutions) {
|
||||
List<SubstitutionChunk> substitutions) {
|
||||
// 'foo%s' % value if value is not tuple or mapping -> '%s%s' % (s, value)
|
||||
final PyElementGenerator generator = PyElementGenerator.getInstance(oldExpression.getProject());
|
||||
final LanguageLevel languageLevel = LanguageLevel.forElement(oldExpression);
|
||||
@@ -197,7 +198,7 @@ public class PyReplaceExpressionUtil implements PyElementTypes {
|
||||
oldExpression.replace(newLiteralExpression);
|
||||
final StringBuilder builder = new StringBuilder();
|
||||
builder.append("(");
|
||||
final int i = getPositionInRanges(PyStringFormatParser.substitutionsToRanges(substitutions), textRange);
|
||||
final int i = getPositionInRanges(substitutionsToRanges(substitutions), textRange);
|
||||
final int pos;
|
||||
if (i == 0) {
|
||||
pos = builder.toString().length();
|
||||
@@ -256,7 +257,7 @@ public class PyReplaceExpressionUtil implements PyElementTypes {
|
||||
String prefix,
|
||||
String suffix,
|
||||
PyTupleExpression tupleFormatValue,
|
||||
List<PyStringFormatParser.SubstitutionChunk> substitutions) {
|
||||
List<SubstitutionChunk> substitutions) {
|
||||
// 'foo%s' % (x,) -> '%s%s' % (s, x)
|
||||
final String newLiteralText = prefix + "%s" + suffix;
|
||||
final PyElementGenerator generator = PyElementGenerator.getInstance(oldExpression.getProject());
|
||||
@@ -265,7 +266,7 @@ public class PyReplaceExpressionUtil implements PyElementTypes {
|
||||
|
||||
final PyExpression[] members = tupleFormatValue.getElements();
|
||||
final int n = members.length;
|
||||
final int i = Math.min(n, Math.max(0, getPositionInRanges(PyStringFormatParser.substitutionsToRanges(substitutions), textRange)));
|
||||
final int i = Math.min(n, Math.max(0, getPositionInRanges(substitutionsToRanges(substitutions), textRange)));
|
||||
final boolean last = i == n;
|
||||
final PsiElement trailingComma = PyPsiUtils.getNextComma(members[n - 1]);
|
||||
if (trailingComma != null) {
|
||||
@@ -342,13 +343,13 @@ public class PyReplaceExpressionUtil implements PyElementTypes {
|
||||
@NotNull String suffix,
|
||||
@NotNull PyArgumentList newStyleFormatValue,
|
||||
@NotNull String newText,
|
||||
@NotNull List<PyStringFormatParser.SubstitutionChunk> substitutions) {
|
||||
@NotNull List<SubstitutionChunk> substitutions) {
|
||||
final PyElementGenerator generator = PyElementGenerator.getInstance(oldExpression.getProject());
|
||||
final LanguageLevel languageLevel = LanguageLevel.forElement(oldExpression);
|
||||
final PyExpression[] arguments = newStyleFormatValue.getArguments();
|
||||
boolean hasKeywords = false;
|
||||
int maxPosition = -1;
|
||||
for (PyStringFormatParser.SubstitutionChunk substitution : substitutions) {
|
||||
for (SubstitutionChunk substitution : substitutions) {
|
||||
if (substitution.getMappingKey() != null) {
|
||||
hasKeywords = true;
|
||||
}
|
||||
@@ -382,7 +383,7 @@ public class PyReplaceExpressionUtil implements PyElementTypes {
|
||||
final String newLiteralText = prefix + "{}" + suffix;
|
||||
final PyStringLiteralExpression newLiteralExpression = generator.createStringLiteralAlreadyEscaped(newLiteralText);
|
||||
oldExpression.replace(newLiteralExpression);
|
||||
final int i = getPositionInRanges(PyStringFormatParser.substitutionsToRanges(substitutions), textRange);
|
||||
final int i = getPositionInRanges(substitutionsToRanges(substitutions), textRange);
|
||||
final PyExpression arg = generator.createExpressionFromText(languageLevel, newText);
|
||||
if (i == 0) {
|
||||
newStyleFormatValue.addArgumentFirst(arg);
|
||||
@@ -409,9 +410,9 @@ public class PyReplaceExpressionUtil implements PyElementTypes {
|
||||
return size;
|
||||
}
|
||||
|
||||
private static boolean containsStringFormatting(@NotNull List<PyStringFormatParser.SubstitutionChunk> substitutions,
|
||||
private static boolean containsStringFormatting(@NotNull List<SubstitutionChunk> substitutions,
|
||||
@NotNull TextRange range) {
|
||||
final List<TextRange> ranges = PyStringFormatParser.substitutionsToRanges(substitutions);
|
||||
final List<TextRange> ranges = substitutionsToRanges(substitutions);
|
||||
for (TextRange r : ranges) {
|
||||
if (range.contains(r)) {
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user