Do not insert explicit visibility modifier if it's default
This commit is contained in:
@@ -22,7 +22,6 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.JetNodeTypes;
|
||||
import org.jetbrains.kotlin.kdoc.psi.api.KDoc;
|
||||
import org.jetbrains.kotlin.lexer.JetModifierKeywordToken;
|
||||
import org.jetbrains.kotlin.lexer.JetTokens;
|
||||
import org.jetbrains.kotlin.psi.addRemoveModifier.AddRemoveModifierPackage;
|
||||
import org.jetbrains.kotlin.psi.findDocComment.FindDocCommentPackage;
|
||||
|
||||
@@ -48,7 +47,7 @@ abstract class JetDeclarationImpl extends JetExpressionImpl implements JetDeclar
|
||||
|
||||
@Override
|
||||
public void addModifier(@NotNull JetModifierKeywordToken modifier) {
|
||||
AddRemoveModifierPackage.addModifier(this, modifier, JetTokens.DEFAULT_VISIBILITY_KEYWORD);
|
||||
AddRemoveModifierPackage.addModifier(this, modifier);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -22,7 +22,6 @@ import com.intellij.psi.stubs.StubElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.lexer.JetModifierKeywordToken;
|
||||
import org.jetbrains.kotlin.lexer.JetTokens;
|
||||
import org.jetbrains.kotlin.psi.addRemoveModifier.AddRemoveModifierPackage;
|
||||
import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes;
|
||||
|
||||
@@ -52,7 +51,7 @@ public class JetModifierListOwnerStub<T extends StubElement<?>> extends JetEleme
|
||||
|
||||
@Override
|
||||
public void addModifier(@NotNull JetModifierKeywordToken modifier) {
|
||||
AddRemoveModifierPackage.addModifier(this, modifier, JetTokens.DEFAULT_VISIBILITY_KEYWORD);
|
||||
AddRemoveModifierPackage.addModifier(this, modifier);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -39,7 +39,7 @@ public class JetPrimaryConstructor : JetConstructor<JetPrimaryConstructor> {
|
||||
override fun addModifier(modifier: JetModifierKeywordToken) {
|
||||
val modifierList = modifierList
|
||||
if (modifierList != null) {
|
||||
addModifier(modifierList, modifier, JetTokens.PUBLIC_KEYWORD)
|
||||
addModifier(modifierList, modifier)
|
||||
if (this.modifierList == null) {
|
||||
getConstructorKeyword()?.delete()
|
||||
}
|
||||
|
||||
@@ -33,14 +33,13 @@ private fun createModifierList(text: String, owner: JetModifierListOwner): JetMo
|
||||
return owner.addBefore(newModifierList, anchor) as JetModifierList
|
||||
}
|
||||
|
||||
internal fun addModifier(owner: JetModifierListOwner, modifier: JetModifierKeywordToken, defaultVisibilityModifier: JetModifierKeywordToken) {
|
||||
internal fun addModifier(owner: JetModifierListOwner, modifier: JetModifierKeywordToken) {
|
||||
val modifierList = owner.modifierList
|
||||
if (modifierList == null) {
|
||||
if (modifier == defaultVisibilityModifier) return
|
||||
createModifierList(modifier.value, owner)
|
||||
}
|
||||
else {
|
||||
addModifier(modifierList, modifier, defaultVisibilityModifier)
|
||||
addModifier(modifierList, modifier)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +53,7 @@ internal fun addAnnotationEntry(owner: JetModifierListOwner, annotationEntry: Je
|
||||
}
|
||||
}
|
||||
|
||||
internal fun addModifier(modifierList: JetModifierList, modifier: JetModifierKeywordToken, defaultVisibilityModifier: JetModifierKeywordToken) {
|
||||
internal fun addModifier(modifierList: JetModifierList, modifier: JetModifierKeywordToken) {
|
||||
if (modifierList.hasModifier(modifier)) return
|
||||
|
||||
val newModifier = JetPsiFactory(modifierList).createModifier(modifier)
|
||||
@@ -63,15 +62,6 @@ internal fun addModifier(modifierList: JetModifierList, modifier: JetModifierKey
|
||||
?.filterNotNull()
|
||||
?.firstOrNull()
|
||||
|
||||
if (modifier == defaultVisibilityModifier) { // do not insert explicit 'internal' keyword (or 'public' for primary constructor)
|
||||
//TODO: code style option
|
||||
modifierToReplace?.delete()
|
||||
if (modifierList.firstChild == null) {
|
||||
modifierList.delete()
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
if (modifierToReplace != null) {
|
||||
modifierToReplace.replace(newModifier)
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.intellij.psi.PsiWhiteSpace
|
||||
import com.intellij.psi.stubs.StubElement
|
||||
import com.intellij.psi.util.PsiTreeUtil
|
||||
import org.jetbrains.kotlin.JetNodeTypes
|
||||
import org.jetbrains.kotlin.lexer.JetModifierKeywordToken
|
||||
import org.jetbrains.kotlin.lexer.JetTokens
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
@@ -394,3 +395,10 @@ public fun JetFunctionLiteralArgument.getFunctionLiteralArgumentName(bindingCont
|
||||
public fun JetExpression.asAssignment(): JetBinaryExpression? =
|
||||
if (JetPsiUtil.isAssignment(this)) this as JetBinaryExpression else null
|
||||
|
||||
public fun JetDeclaration.visibilityModifier(): PsiElement? {
|
||||
val modifierList = modifierList ?: return null
|
||||
return JetTokens.VISIBILITY_MODIFIERS.types
|
||||
.asSequence()
|
||||
.map { modifierList.getModifier(it as JetModifierKeywordToken) }
|
||||
.firstOrNull { it != null }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user