mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-26 19:06:24 +07:00
PY-31689 Support wrapping options for set literals
GitOrigin-RevId: 6f76a929da4bde150339ab924f4e84f91d70d8a3
This commit is contained in:
committed by
intellij-monorepo-bot
parent
f8a57f7367
commit
b1b0a08fbc
@@ -97,6 +97,7 @@ public class PyBlock implements ASTBlock {
|
||||
private Alignment myDictAlignment = null;
|
||||
private Wrap myDictWrapping = null;
|
||||
private Wrap myListWrapping = null;
|
||||
private Wrap mySetWrapping = null;
|
||||
private Wrap myFromImportWrapping = null;
|
||||
private Wrap myParameterListWrapping = null;
|
||||
private Wrap myArgumentListWrapping = null;
|
||||
@@ -124,6 +125,9 @@ public class PyBlock implements ASTBlock {
|
||||
else if (node.getElementType() == PyElementTypes.LIST_LITERAL_EXPRESSION) {
|
||||
myListWrapping = Wrap.createWrap(pySettings.LIST_WRAPPING, pySettings.LIST_NEW_LINE_AFTER_LEFT_BRACKET);
|
||||
}
|
||||
else if (node.getElementType() == PyElementTypes.SET_LITERAL_EXPRESSION) {
|
||||
mySetWrapping = Wrap.createWrap(pySettings.SET_WRAPPING, pySettings.SET_NEW_LINE_AFTER_LEFT_BRACE);
|
||||
}
|
||||
else if (node.getElementType() == PyElementTypes.FROM_IMPORT_STATEMENT) {
|
||||
myFromImportWrapping = Wrap.createWrap(pySettings.FROM_IMPORT_WRAPPING, false);
|
||||
}
|
||||
@@ -438,6 +442,12 @@ public class PyBlock implements ASTBlock {
|
||||
childType != PyTokenTypes.RBRACKET) {
|
||||
childWrap = myListWrapping;
|
||||
}
|
||||
if (parentType == PyElementTypes.SET_LITERAL_EXPRESSION &&
|
||||
childType != PyTokenTypes.COMMA &&
|
||||
childType != PyTokenTypes.LBRACE &&
|
||||
childType != PyTokenTypes.RBRACE) {
|
||||
childWrap = mySetWrapping;
|
||||
}
|
||||
if (parentType == PyElementTypes.PARAMETER_LIST &&
|
||||
childType != PyTokenTypes.COMMA &&
|
||||
childType != PyTokenTypes.LPAR &&
|
||||
@@ -758,7 +768,9 @@ public class PyBlock implements ASTBlock {
|
||||
&& !(myNode.getElementType() == PyElementTypes.DICT_LITERAL_EXPRESSION &&
|
||||
myContext.getPySettings().DICT_NEW_LINE_AFTER_LEFT_BRACE)
|
||||
&& !(myNode.getElementType() == PyElementTypes.LIST_LITERAL_EXPRESSION &&
|
||||
myContext.getPySettings().LIST_NEW_LINE_AFTER_LEFT_BRACKET);
|
||||
myContext.getPySettings().LIST_NEW_LINE_AFTER_LEFT_BRACKET)
|
||||
&& !(myNode.getElementType() == PyElementTypes.SET_LITERAL_EXPRESSION &&
|
||||
myContext.getPySettings().SET_NEW_LINE_AFTER_LEFT_BRACE);
|
||||
}
|
||||
if (myNode.getElementType() == PyElementTypes.ARGUMENT_LIST) {
|
||||
if (!myContext.getSettings().ALIGN_MULTILINE_PARAMETERS_IN_CALLS || hasHangingIndent(myNode.getPsi())) {
|
||||
|
||||
@@ -79,6 +79,11 @@ public class PyCodeStyleSettings extends CustomCodeStyleSettings {
|
||||
public boolean LIST_NEW_LINE_AFTER_LEFT_BRACKET = false;
|
||||
public boolean LIST_NEW_LINE_BEFORE_RIGHT_BRACKET = false;
|
||||
|
||||
@CommonCodeStyleSettings.WrapConstant
|
||||
public int SET_WRAPPING = WRAP_AS_NEEDED;
|
||||
public boolean SET_NEW_LINE_AFTER_LEFT_BRACE = false;
|
||||
public boolean SET_NEW_LINE_BEFORE_RIGHT_BRACE = false;
|
||||
|
||||
public int BLANK_LINES_AFTER_LOCAL_IMPORTS = 0;
|
||||
/**
|
||||
* Code style for most languages use continuation indent both for parameters in function definition and for arguments in function calls.
|
||||
|
||||
+5
@@ -84,6 +84,11 @@ public class PythonFormattingModelBuilder implements FormattingModelBuilder, Cus
|
||||
.afterInside(LBRACKET, LIST_LITERAL_EXPRESSION)
|
||||
.spaceIf(commonSettings.SPACE_WITHIN_BRACKETS, pySettings.LIST_NEW_LINE_AFTER_LEFT_BRACKET)
|
||||
|
||||
.beforeInside(RBRACE, SET_LITERAL_EXPRESSION)
|
||||
.spaceIf(pySettings.SPACE_WITHIN_BRACES, pySettings.SET_NEW_LINE_BEFORE_RIGHT_BRACE)
|
||||
.afterInside(LBRACE, SET_LITERAL_EXPRESSION)
|
||||
.spaceIf(pySettings.SPACE_WITHIN_BRACES, pySettings.SET_NEW_LINE_AFTER_LEFT_BRACE)
|
||||
|
||||
.between(COMMA, RBRACE).spaceIf(pySettings.SPACE_WITHIN_BRACES || commonSettings.SPACE_AFTER_COMMA)
|
||||
.withinPair(LBRACE, RBRACE).spaceIf(pySettings.SPACE_WITHIN_BRACES)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user