mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 02:59:33 +07:00
[kotlin] Convert UpdateKotlinCopyright to Kotlin
^KTIJ-16705 GitOrigin-RevId: 6280f37fefe9a3ee748cfb69d0d6b1355d2c4ab0
This commit is contained in:
committed by
intellij-monorepo-bot
parent
3b9c1c7fd9
commit
9481ea9954
@@ -1,55 +1,45 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.kotlin.idea.copyright
|
||||
|
||||
package org.jetbrains.kotlin.idea.copyright;
|
||||
import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.psi.*
|
||||
import com.intellij.util.containers.TreeTraversal
|
||||
import com.maddyhome.idea.copyright.CopyrightProfile
|
||||
import com.maddyhome.idea.copyright.psi.UpdatePsiFileCopyright
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||
import org.jetbrains.kotlin.kdoc.psi.api.KDoc
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiComment;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiWhiteSpace;
|
||||
import com.intellij.psi.SyntaxTraverser;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.TreeTraversal;
|
||||
import com.maddyhome.idea.copyright.CopyrightProfile;
|
||||
import com.maddyhome.idea.copyright.psi.UpdatePsiFileCopyright;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType;
|
||||
import org.jetbrains.kotlin.kdoc.psi.api.KDoc;
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration;
|
||||
class UpdateKotlinCopyright(
|
||||
project: Project?,
|
||||
module: Module?,
|
||||
root: VirtualFile?,
|
||||
copyrightProfile: CopyrightProfile?
|
||||
) : UpdatePsiFileCopyright(project, module, root, copyrightProfile) {
|
||||
|
||||
import java.util.List;
|
||||
override fun accept(): Boolean =
|
||||
file.fileType === KotlinFileType.INSTANCE
|
||||
|
||||
public class UpdateKotlinCopyright extends UpdatePsiFileCopyright {
|
||||
UpdateKotlinCopyright(Project project, Module module, VirtualFile root, CopyrightProfile copyrightProfile) {
|
||||
super(project, module, root, copyrightProfile);
|
||||
override fun scanFile() {
|
||||
val comments = getExistentComments(file)
|
||||
checkComments(comments.lastOrNull(), true, comments)
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean accept() {
|
||||
return getFile().getFileType() == KotlinFileType.INSTANCE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void scanFile() {
|
||||
List<PsiComment> comments = getExistentComments(getFile());
|
||||
checkComments(ContainerUtil.getLastItem(comments), true, comments);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static List<PsiComment> getExistentComments(@NotNull PsiFile psiFile) {
|
||||
return SyntaxTraverser.psiTraverser(psiFile)
|
||||
companion object {
|
||||
fun getExistentComments(psiFile: PsiFile): List<PsiComment> =
|
||||
SyntaxTraverser.psiTraverser(psiFile)
|
||||
.withTraversal(TreeTraversal.LEAVES_DFS)
|
||||
.traverse()
|
||||
.takeWhile(
|
||||
element ->
|
||||
(element instanceof PsiComment && !(element.getParent() instanceof KtDeclaration)) ||
|
||||
element instanceof PsiWhiteSpace ||
|
||||
element.getText().isEmpty() ||
|
||||
element.getParent() instanceof KDoc
|
||||
)
|
||||
.map(e -> e.getParent() instanceof KDoc ? e.getParent() : e)
|
||||
.filter(PsiComment.class)
|
||||
.toList();
|
||||
.takeWhile { element: PsiElement ->
|
||||
(element is PsiComment && element.getParent() !is KtDeclaration) ||
|
||||
element is PsiWhiteSpace ||
|
||||
element.text.isEmpty() ||
|
||||
element.parent is KDoc
|
||||
}
|
||||
.map { element: PsiElement -> if (element.parent is KDoc) element.parent else element }
|
||||
.filterIsInstance<PsiComment>()
|
||||
.toList()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user