mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
WEB-54300 fixed renaming variables holding return value of useState
GitOrigin-RevId: c14b119252619d34a0da7efb49a10a3a2c43b1bb
This commit is contained in:
committed by
intellij-monorepo-bot
parent
26c540e7d1
commit
09cda97111
+28
-4
@@ -5,6 +5,7 @@ package com.intellij.codeInsight.template;
|
||||
import com.intellij.codeInsight.template.impl.ConstantNode;
|
||||
import com.intellij.codeInsight.template.impl.NonInteractiveTemplateUtil;
|
||||
import com.intellij.codeInsight.template.impl.TemplateImpl;
|
||||
import com.intellij.codeInsight.template.impl.Variable;
|
||||
import com.intellij.lang.injection.InjectedLanguageManager;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
@@ -25,11 +26,9 @@ import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.util.DocumentUtil;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
import java.util.*;
|
||||
|
||||
public class TemplateBuilderImpl implements TemplateBuilder {
|
||||
private final RangeMarker myContainerElement;
|
||||
@@ -44,6 +43,8 @@ public class TemplateBuilderImpl implements TemplateBuilder {
|
||||
private RangeMarker mySelection;
|
||||
private final Document myDocument;
|
||||
private final PsiFile myFile;
|
||||
private Comparator<? super Variable> myVariableComparator;
|
||||
|
||||
private static final Logger LOG = Logger.getInstance(TemplateBuilderImpl.class);
|
||||
|
||||
public TemplateBuilderImpl(@NotNull PsiElement element) {
|
||||
@@ -176,6 +177,10 @@ public class TemplateBuilderImpl implements TemplateBuilder {
|
||||
myElements.add(mySelection);
|
||||
}
|
||||
|
||||
public void setVariableOrdering(@Nullable Comparator<? super Variable> comparator) {
|
||||
myVariableComparator = comparator;
|
||||
}
|
||||
|
||||
public Template buildInlineTemplate() {
|
||||
return initInlineTemplate(buildTemplate());
|
||||
}
|
||||
@@ -270,8 +275,27 @@ public class TemplateBuilderImpl implements TemplateBuilder {
|
||||
template.setToIndent(false);
|
||||
template.setToReformat(false);
|
||||
|
||||
orderTemplateVariables(template);
|
||||
|
||||
return template;
|
||||
}
|
||||
|
||||
private void orderTemplateVariables(Template template) {
|
||||
if (myVariableComparator == null || !(template instanceof TemplateImpl)) {
|
||||
return;
|
||||
}
|
||||
|
||||
TemplateImpl templateImpl = ((TemplateImpl)template);
|
||||
List<Variable> variables = new ArrayList<>(templateImpl.getVariables());
|
||||
variables.sort(myVariableComparator);
|
||||
for (int i = variables.size() - 1; i >= 0; i--) {
|
||||
templateImpl.removeVariable(i);
|
||||
}
|
||||
for (Variable variable : variables) {
|
||||
templateImpl.addVariable(variable);
|
||||
}
|
||||
}
|
||||
|
||||
private String getDocumentTextFragment(final int startOffset, final int endOffset) {
|
||||
return myDocument.getCharsSequence().subSequence(startOffset, endOffset).toString();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user