mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-08-28 04:37:32 +07:00
java: IdeJavaFoldingBuilderBase on frontend (part of java folding builder which doesn't depend on resolve) IJPL-185110
GitOrigin-RevId: 1932afe8a0a18e0a475d047461bf5e158761e35a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
3f520e829a
commit
210b056678
@@ -64,6 +64,9 @@
|
||||
|
||||
<lang.lineWrapStrategy language="JAVA" implementationClass="com.intellij.psi.formatter.java.JavaLineWrapPositionStrategy"/>
|
||||
|
||||
<applicationService serviceInterface="com.intellij.codeInsight.folding.JavaCodeFoldingSettings"
|
||||
serviceImplementation="com.intellij.codeInsight.folding.impl.JavaCodeFoldingSettingsImpl"/>
|
||||
|
||||
<registryKey key="java.formatter.chained.calls.pre212.compatibility"
|
||||
defaultValue="false"
|
||||
description="Format chained calls as in versions prior to 2021.2"/>
|
||||
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.codeInsight.folding.impl
|
||||
|
||||
import com.intellij.lang.java.JavaLanguage
|
||||
import com.intellij.openapi.editor.colors.EditorColors
|
||||
import com.intellij.openapi.editor.ex.util.EditorUtil
|
||||
import com.intellij.psi.*
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettings
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
|
||||
@ApiStatus.Internal
|
||||
open class IdeJavaFoldingBuilderBase: JavaFoldingBuilderBase() {
|
||||
override fun isBelowRightMargin(file: PsiFile, lineLength: Int): Boolean {
|
||||
val settings: CodeStyleSettings = com.intellij.application.options.CodeStyle.getSettings(file)
|
||||
return lineLength <= settings.getRightMargin(JavaLanguage.INSTANCE)
|
||||
}
|
||||
|
||||
protected open override fun shouldShowExplicitLambdaType(anonymousClass: PsiAnonymousClass, expression: PsiNewExpression): Boolean {
|
||||
val parent = expression.getParent()
|
||||
return parent is PsiReferenceExpression || parent is PsiAssignmentExpression
|
||||
}
|
||||
|
||||
protected override fun rightArrow(): String {
|
||||
return getRightArrow()
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun getRightArrow(): String {
|
||||
return EditorUtil.displayCharInEditor('\u2192', EditorColors.FOLDED_TEXT_ATTRIBUTES, "->")
|
||||
}
|
||||
}
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.codeInsight.folding.impl;
|
||||
|
||||
import com.intellij.openapi.components.PersistentStateComponent;
|
||||
import com.intellij.openapi.components.SettingsCategory;
|
||||
import com.intellij.openapi.components.State;
|
||||
import com.intellij.openapi.components.Storage;
|
||||
import com.intellij.util.xmlb.XmlSerializerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@State(name = "JavaCodeFoldingSettings", storages = @Storage("editor.xml"), category = SettingsCategory.CODE)
|
||||
public final class JavaCodeFoldingSettingsImpl extends JavaCodeFoldingSettingsBase implements PersistentStateComponent<JavaCodeFoldingSettingsImpl> {
|
||||
@Override
|
||||
public JavaCodeFoldingSettingsImpl getState() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadState(final @NotNull JavaCodeFoldingSettingsImpl state) {
|
||||
XmlSerializerUtil.copyBean(state, this);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user