Rename: Fix renaming of .kts file to .kt and vice versa

#KT-14814 Fixed
This commit is contained in:
Alexey Sedunov
2016-11-21 20:38:43 +03:00
parent ddb5308993
commit 740f769487
2 changed files with 16 additions and 0 deletions
+1
View File
@@ -336,6 +336,7 @@ These artifacts include extensions for the types available in the latter JDKs, s
- [`KT-14583`](https://youtrack.jetbrains.com/issue/KT-14583) Change Signature: Use new signature when looking for redeclaration conflicts
- [`KT-14854`](https://youtrack.jetbrains.com/issue/KT-14854) Extract Interface: Fix NPE on dialog opening
- [`KT-14814`](https://youtrack.jetbrains.com/issue/KT-14814) Rename: Fix renaming of .kts file to .kt and vice versa
## 1.0.5
@@ -21,9 +21,12 @@ import com.intellij.lang.ASTNode;
import com.intellij.lang.FileASTNode;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.*;
import com.intellij.psi.stubs.StubElement;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.util.FileContentUtilCore;
import com.intellij.util.IncorrectOperationException;
import kotlin.collections.ArraysKt;
import kotlin.jvm.functions.Function1;
import org.jetbrains.annotations.NotNull;
@@ -32,9 +35,11 @@ import org.jetbrains.kotlin.KtNodeTypes;
import org.jetbrains.kotlin.idea.KotlinFileType;
import org.jetbrains.kotlin.idea.KotlinLanguage;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.parsing.KotlinParserDefinition;
import org.jetbrains.kotlin.psi.stubs.KotlinFileStub;
import org.jetbrains.kotlin.psi.stubs.elements.KtPlaceHolderStubElementType;
import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes;
import org.jetbrains.kotlin.utils.CollectionsKt;
import java.util.Arrays;
import java.util.Collections;
@@ -268,4 +273,14 @@ public class KtFile extends PsiFileBase implements KtDeclarationContainer, KtAnn
}
});
}
@Override
public PsiElement setName(@NotNull String name) throws IncorrectOperationException {
PsiElement result = super.setName(name);
boolean willBeScript = name.endsWith(KotlinParserDefinition.STD_SCRIPT_EXT);
if (isScript() != willBeScript) {
FileContentUtilCore.reparseFiles(CollectionsKt.<VirtualFile>singletonOrEmptyList(getVirtualFile()));
}
return result;
}
}