diff options
Diffstat (limited to 'platform/platform-impl/src/com/intellij/openapi/editor/impl/SettingsImpl.java')
-rw-r--r-- | platform/platform-impl/src/com/intellij/openapi/editor/impl/SettingsImpl.java | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/SettingsImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/SettingsImpl.java index dabf5e9d2a2f..f2dbc6756ef5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/SettingsImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/SettingsImpl.java @@ -25,6 +25,8 @@ package com.intellij.openapi.editor.impl; import com.intellij.codeStyle.CodeStyleFacade; +import com.intellij.lang.Language; +import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.EditorSettings; import com.intellij.openapi.editor.ex.EditorEx; import com.intellij.openapi.editor.ex.EditorSettingsExternalizable; @@ -32,10 +34,14 @@ import com.intellij.openapi.editor.impl.softwrap.SoftWrapAppliancePlaces; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.psi.PsiDocumentManager; +import com.intellij.psi.PsiFile; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class SettingsImpl implements EditorSettings { @Nullable private final EditorEx myEditor; + @Nullable private final Language myLanguage; private Boolean myIsCamelWords; // This group of settings does not have UI @@ -78,9 +84,14 @@ public class SettingsImpl implements EditorSettings { private Boolean myRenamePreselect = null; private Boolean myWrapWhenTypingReachesRightMargin = null; private Boolean myShowIntentionBulb = null; + + public SettingsImpl() { + this(null, null); + } - public SettingsImpl(@Nullable EditorEx editor) { + public SettingsImpl(@Nullable EditorEx editor, @Nullable Project project) { myEditor = editor; + myLanguage = editor != null && project != null ? getDocumentLanguage(project, editor.getDocument()) : null; } @Override @@ -144,7 +155,17 @@ public class SettingsImpl implements EditorSettings { @Override public int getRightMargin(Project project) { return myRightMargin != null ? myRightMargin.intValue() : - CodeStyleFacade.getInstance(project).getRightMargin(); + CodeStyleFacade.getInstance(project).getRightMargin(myLanguage); + } + + @Nullable + private static Language getDocumentLanguage(@Nullable Project project, @NotNull Document document) { + if (project != null) { + PsiDocumentManager documentManager = PsiDocumentManager.getInstance(project); + PsiFile file = documentManager.getPsiFile(document); + if (file != null) return file.getLanguage(); + } + return null; } @Override |