diff options
Diffstat (limited to 'platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle')
3 files changed, 15 insertions, 12 deletions
diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeFormatterFacade.java b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeFormatterFacade.java index e76aecfa1e0b..fa1dd9e86b4a 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeFormatterFacade.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeFormatterFacade.java @@ -78,10 +78,12 @@ public class CodeFormatterFacade { private final CodeStyleSettings mySettings; private final FormatterTagHandler myTagHandler; + private final int myRightMargin; - public CodeFormatterFacade(CodeStyleSettings settings) { + public CodeFormatterFacade(CodeStyleSettings settings, @Nullable Language language) { mySettings = settings; myTagHandler = new FormatterTagHandler(settings); + myRightMargin = mySettings.getRightMargin(language); } public ASTNode processElement(ASTNode element) { @@ -637,8 +639,8 @@ public class CodeFormatterFacade { } private int wrapPositionForTextWithoutTabs(int startLineOffset, int endLineOffset, int targetRangeEndOffset) { - if (Math.min(endLineOffset, targetRangeEndOffset) - startLineOffset > mySettings.RIGHT_MARGIN) { - return startLineOffset + mySettings.RIGHT_MARGIN - FormatConstants.RESERVED_LINE_WRAP_WIDTH_IN_COLUMNS; + if (Math.min(endLineOffset, targetRangeEndOffset) - startLineOffset > myRightMargin) { + return startLineOffset + myRightMargin - FormatConstants.RESERVED_LINE_WRAP_WIDTH_IN_COLUMNS; } return -1; } @@ -659,13 +661,13 @@ public class CodeFormatterFacade { case '\t': symbolWidth = tabSize - (width % tabSize); break; default: symbolWidth = 1; } - if (width + symbolWidth + FormatConstants.RESERVED_LINE_WRAP_WIDTH_IN_COLUMNS >= mySettings.RIGHT_MARGIN + if (width + symbolWidth + FormatConstants.RESERVED_LINE_WRAP_WIDTH_IN_COLUMNS >= myRightMargin && (Math.min(endLineOffset, targetRangeEndOffset) - i) >= FormatConstants.RESERVED_LINE_WRAP_WIDTH_IN_COLUMNS) { // Remember preferred position. result = i - 1; } - if (width + symbolWidth >= mySettings.RIGHT_MARGIN) { + if (width + symbolWidth >= myRightMargin) { wrapLine = true; break; } @@ -700,12 +702,12 @@ public class CodeFormatterFacade { break; default: newX = x + EditorUtil.charWidth(c, Font.PLAIN, editor); symbolWidth = 1; } - if (width + symbolWidth + FormatConstants.RESERVED_LINE_WRAP_WIDTH_IN_COLUMNS >= mySettings.RIGHT_MARGIN + if (width + symbolWidth + FormatConstants.RESERVED_LINE_WRAP_WIDTH_IN_COLUMNS >= myRightMargin && (Math.min(endLineOffset, targetRangeEndOffset) - i) >= FormatConstants.RESERVED_LINE_WRAP_WIDTH_IN_COLUMNS) { result = i - 1; } - if (width + symbolWidth >= mySettings.RIGHT_MARGIN) { + if (width + symbolWidth >= myRightMargin) { wrapLine = true; break; } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleFacadeImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleFacadeImpl.java index a9031f3133a3..81eda35222dd 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleFacadeImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleFacadeImpl.java @@ -20,6 +20,7 @@ package com.intellij.psi.impl.source.codeStyle; import com.intellij.codeStyle.CodeStyleFacade; +import com.intellij.lang.Language; import com.intellij.openapi.editor.Document; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.options.Configurable; @@ -68,8 +69,8 @@ public class CodeStyleFacadeImpl extends CodeStyleFacade { } @Override - public int getRightMargin() { - return CodeStyleSettingsManager.getSettings(myProject).RIGHT_MARGIN; + public int getRightMargin(Language language) { + return CodeStyleSettingsManager.getSettings(myProject).getRightMargin(language); } @Override diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleManagerImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleManagerImpl.java index 043ac483d2ed..767152fc1e2b 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleManagerImpl.java @@ -101,7 +101,7 @@ public class CodeStyleManagerImpl extends CodeStyleManager { } ASTNode treeElement = SourceTreeToPsiMap.psiElementToTree(element); - final PsiElement formatted = SourceTreeToPsiMap.treeElementToPsi(new CodeFormatterFacade(getSettings()).processElement(treeElement)); + final PsiElement formatted = SourceTreeToPsiMap.treeElementToPsi(new CodeFormatterFacade(getSettings(), element.getLanguage()).processElement(treeElement)); if (!canChangeWhiteSpacesOnly) { return postProcessElement(formatted); } @@ -180,7 +180,7 @@ public class CodeStyleManagerImpl extends CodeStyleManager { ASTNode treeElement = SourceTreeToPsiMap.psiElementToTree(file); transformAllChildren(treeElement); - final CodeFormatterFacade codeFormatter = new CodeFormatterFacade(getSettings()); + final CodeFormatterFacade codeFormatter = new CodeFormatterFacade(getSettings(), file.getLanguage()); LOG.assertTrue(file.isValid()); if (editor == null) { @@ -274,7 +274,7 @@ public class CodeStyleManagerImpl extends CodeStyleManager { } ASTNode treeElement = SourceTreeToPsiMap.psiElementToTree(element); - final CodeFormatterFacade codeFormatter = new CodeFormatterFacade(getSettings()); + final CodeFormatterFacade codeFormatter = new CodeFormatterFacade(getSettings(), element.getLanguage()); final PsiElement formatted = SourceTreeToPsiMap.treeElementToPsi(codeFormatter.processRange(treeElement, startOffset, endOffset)); return canChangeWhiteSpacesOnly ? formatted : postProcessElement(formatted); |