1616
1717package com .google .googlejavaformat .intellij ;
1818
19+ import com .google .googlejavaformat .java .JavaFormatterOptions ;
1920import com .intellij .openapi .project .Project ;
2021import com .intellij .psi .codeStyle .CodeStyleManager ;
2122import org .picocontainer .MutablePicoContainer ;
@@ -30,14 +31,17 @@ public final class GoogleJavaFormatInstaller {
3031
3132 private GoogleJavaFormatInstaller () {}
3233
33- public static void installFormatter (Project project , boolean useGoogleFormatter ) {
34+ public static void installFormatter (
35+ Project project , boolean useGoogleFormatter , JavaFormatterOptions javaFormatterOptions ) {
3436 CodeStyleManager currentManager = CodeStyleManager .getInstance (project );
3537 CodeStyleManager newManager = null ;
3638
3739 if (useGoogleFormatter ) {
38- if (!(currentManager instanceof GoogleJavaFormatCodeStyleManager )) {
39- newManager = new GoogleJavaFormatCodeStyleManager (currentManager );
40+ if (currentManager instanceof GoogleJavaFormatCodeStyleManager ) {
41+ // Recreate from delegate, updating the javaFormatterOptions as needed.
42+ currentManager = ((GoogleJavaFormatCodeStyleManager ) currentManager ).getDelegate ();
4043 }
44+ newManager = new GoogleJavaFormatCodeStyleManager (currentManager , javaFormatterOptions );
4145 } else {
4246 if (currentManager instanceof GoogleJavaFormatCodeStyleManager ) {
4347 newManager = ((GoogleJavaFormatCodeStyleManager ) currentManager ).getDelegate ();
@@ -50,4 +54,8 @@ public static void installFormatter(Project project, boolean useGoogleFormatter)
5054 container .registerComponentInstance (CODE_STYLE_MANAGER_KEY , newManager );
5155 }
5256 }
57+
58+ public static void installFormatter (Project project , boolean useGoogleFormatter ) {
59+ installFormatter (project , useGoogleFormatter , JavaFormatterOptions .defaultOptions ());
60+ }
5361}
0 commit comments