@@ -10,13 +10,16 @@ import com.intellij.ide.highlighter.JavaFileType
1010import com.intellij.ide.highlighter.XmlFileType
1111import com.intellij.ide.util.PropertiesComponent
1212import com.intellij.lang.Language
13+ import com.intellij.lang.css.CSSLanguage
1314import com.intellij.lang.java.JavaLanguage
1415import com.intellij.lang.javascript.JavaScriptFileType
16+ import com.intellij.lang.javascript.JavascriptLanguage
1517import com.intellij.lang.javascript.TypeScriptFileType
1618import com.intellij.openapi.fileTypes.FileType
1719import com.intellij.openapi.project.Project
1820import com.intellij.openapi.startup.StartupActivity
1921import com.intellij.psi.codeStyle.CodeStyleSettings
22+ import com.intellij.psi.codeStyle.LanguageCodeStyleSettingsProvider
2023import com.intellij.psi.codeStyle.arrangement.group.ArrangementGroupingRule
2124import com.intellij.psi.codeStyle.arrangement.match.ArrangementSectionRule
2225import com.intellij.psi.codeStyle.arrangement.match.StdArrangementEntryMatcher
@@ -42,7 +45,7 @@ import org.jetbrains.vuejs.VueFileType
4245import org.jetbrains.vuejs.VueLanguage
4346
4447/* *
45- * 项目启动时运行
48+ * 项目启动时运行,主要对代码格式的配置按公司规范进行重写
4649 * @author 吴昊
4750 * @since 1.2.6
4851 */
@@ -121,12 +124,25 @@ class PostStart : StartupActivity {
121124
122125 private fun setIndent (settings : CodeStyleSettings ) {
123126 val setIndentFileTypes = listOf (
124- JavaFileType .INSTANCE , KotlinFileType .INSTANCE , JavaScriptFileType .INSTANCE ,
125- TypeScriptFileType .INSTANCE , VueFileType .INSTANCE ,
126- XmlFileType .INSTANCE , CssFileType .INSTANCE
127+ JavaFileType .INSTANCE ,
128+ KotlinFileType .INSTANCE ,
129+ JavaScriptFileType .INSTANCE ,
130+ TypeScriptFileType .INSTANCE ,
131+ VueFileType .INSTANCE ,
132+ XmlFileType .INSTANCE ,
133+ CssFileType .INSTANCE
127134 )
128135 setIndentFileTypes.forEach { fileType ->
129- setIndent(fileType, settings)
136+ val language = when (fileType) {
137+ is JavaFileType -> JavaLanguage .INSTANCE
138+ is KotlinFileType -> KotlinLanguage .INSTANCE
139+ is JavaScriptFileType -> JavascriptLanguage .INSTANCE
140+ is VueFileType -> VueLanguage .INSTANCE
141+ is CssFileType -> CSSLanguage .INSTANCE
142+ else -> null
143+ }
144+
145+ setIndent(fileType, language, settings)
130146 }
131147 }
132148
@@ -141,13 +157,16 @@ class PostStart : StartupActivity {
141157 }
142158
143159 companion object {
144- fun setIndent (fileType : FileType , settings : CodeStyleSettings ) {
160+ fun setIndent (fileType : FileType , language : Language ? , settings : CodeStyleSettings ) {
145161 settings.getIndentOptions(fileType).apply {
146162 INDENT_SIZE = DEFAULT_INDENT_SPACE_COUNT
147163 CONTINUATION_INDENT_SIZE = DEFAULT_CONTINUATION_INDENT_SPACE_COUNT
148164 TAB_SIZE = DEFAULT_INDENT_SPACE_COUNT
149165 USE_TAB_CHARACTER = false
150166 }
167+ if (language != null ) {
168+ LanguageCodeStyleSettingsProvider .getDefaultCommonSettings(language)?.LINE_COMMENT_AT_FIRST_COLUMN = true
169+ }
151170 }
152171 }
153172
0 commit comments