Skip to content

Commit acd497f

Browse files
committed
bug fix : code style settings #138 #141
1 parent 2d1423e commit acd497f

File tree

4 files changed

+19
-10
lines changed

4 files changed

+19
-10
lines changed

src/main/java/com/tang/intellij/lua/editor/formatter/LuaCodeStyleSettingsProvider.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import com.tang.intellij.lua.lang.LuaLanguage
3131
*/
3232
class LuaCodeStyleSettingsProvider : CodeStyleSettingsProvider() {
3333
override fun createSettingsPage(settings: CodeStyleSettings, originalSettings: CodeStyleSettings): Configurable {
34-
return object : CodeStyleAbstractConfigurable(settings, originalSettings, "Lua") {
34+
return object : CodeStyleAbstractConfigurable(settings, originalSettings, "EmmyLua") {
3535

3636
override fun getHelpTopic() = "reference.settingsdialog.codestyle.lua"
3737

@@ -51,7 +51,7 @@ class LuaCodeStyleSettingsProvider : CodeStyleSettingsProvider() {
5151
}
5252
}
5353

54-
override fun getConfigurableDisplayName() = LuaLanguage.INSTANCE.id
54+
override fun getConfigurableDisplayName() = LuaLanguage.INSTANCE.displayName
5555

5656
override fun createCustomSettings(settings: CodeStyleSettings?): CustomCodeStyleSettings? {
5757
return LuaCodeStyleSettings(settings)

src/main/java/com/tang/intellij/lua/editor/formatter/LuaFormatContext.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ package com.tang.intellij.lua.editor.formatter
1818

1919
import com.intellij.formatting.Alignment
2020
import com.intellij.formatting.SpacingBuilder
21-
import com.intellij.psi.codeStyle.CodeStyleSettings
21+
import com.intellij.psi.codeStyle.CommonCodeStyleSettings
2222
import com.tang.intellij.lua.editor.formatter.blocks.LuaScriptBlock
2323

24-
class LuaFormatContext(val settings: CodeStyleSettings, val luaSettings: LuaCodeStyleSettings, val spaceBuilder: SpacingBuilder) {
24+
class LuaFormatContext(val settings: CommonCodeStyleSettings, val luaSettings: LuaCodeStyleSettings, val spaceBuilder: SpacingBuilder) {
2525
var eqAlignment: Alignment? = null
2626
var lastBlock: LuaScriptBlock? = null
2727
}

src/main/java/com/tang/intellij/lua/editor/formatter/LuaFormattingModelBuilder.kt

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ import com.tang.intellij.lua.psi.LuaTypes.*
3434
*/
3535
class LuaFormattingModelBuilder : FormattingModelBuilder {
3636
override fun createModel(element: PsiElement, settings: CodeStyleSettings): FormattingModel {
37-
val ctx = LuaFormatContext(settings, settings.getCustomSettings(LuaCodeStyleSettings::class.java), createSpaceBuilder(settings))
37+
val commonSettings = settings.getCommonSettings(LuaLanguage.INSTANCE)
38+
val luaSettings = settings.getCustomSettings(LuaCodeStyleSettings::class.java)
39+
val ctx = LuaFormatContext(commonSettings, luaSettings, createSpaceBuilder(settings))
3840
return FormattingModelProvider.createFormattingModelForPsiFile(element.containingFile,
3941
LuaScriptBlock(element,
4042
Wrap.createWrap(WrapType.NONE, false),
@@ -46,6 +48,7 @@ class LuaFormattingModelBuilder : FormattingModelBuilder {
4648

4749
private fun createSpaceBuilder(settings: CodeStyleSettings): SpacingBuilder {
4850
val luaCodeStyleSettings = settings.getCustomSettings(LuaCodeStyleSettings::class.java)
51+
val commonSettings = settings.getCommonSettings(LuaLanguage.INSTANCE)
4952

5053
return SpacingBuilder(settings, LuaLanguage.INSTANCE)
5154
.before(END).lineBreakInCode()
@@ -54,8 +57,8 @@ class LuaFormattingModelBuilder : FormattingModelBuilder {
5457
.around(ELSE).lineBreakInCode()
5558
.before(ELSEIF).lineBreakInCode()
5659
.after(LOCAL).spaces(1) //local<SPACE>
57-
.before(COMMA).spaces(if (settings.SPACE_BEFORE_COMMA) 1 else 0)
58-
.after(COMMA).spaces(if (settings.SPACE_AFTER_COMMA) 1 else 0) //,<SPACE>
60+
.before(COMMA).spaces(if (commonSettings.SPACE_BEFORE_COMMA) 1 else 0)
61+
.after(COMMA).spaces(if (commonSettings.SPACE_AFTER_COMMA) 1 else 0) //,<SPACE>
5962
.between(LCURLY, TABLE_FIELD).spaces(1) // {<SPACE>1, 2 }
6063
.between(TABLE_FIELD, RCURLY).spaces(1) // { 1, 2<SPACE>}
6164
.before(TABLE_FIELD_SEP).none() // { 1<SPACE>, 2 }
@@ -64,9 +67,9 @@ class LuaFormattingModelBuilder : FormattingModelBuilder {
6467
.afterInside(RPAREN, FUNC_BODY).lineBreakInCode()
6568
.between(FUNCTION, FUNC_BODY).none()
6669
.between(FUNCTION, NAME_DEF).spaces(1) //function<SPACE>name()
67-
.around(BINARY_OP).spaces(if (settings.SPACE_AROUND_ASSIGNMENT_OPERATORS) 1 else 0)
70+
.around(BINARY_OP).spaces(if (commonSettings.SPACE_AROUND_ASSIGNMENT_OPERATORS) 1 else 0)
6871
.around(UNARY_OP).none()
69-
.around(ASSIGN).lineBreakOrForceSpace(false, settings.SPACE_AROUND_ASSIGNMENT_OPERATORS) // = 号两头不能换行
72+
.around(ASSIGN).lineBreakOrForceSpace(false, commonSettings.SPACE_AROUND_ASSIGNMENT_OPERATORS) // = 号两头不能换行
7073
.around(LuaSyntaxHighlighter.KEYWORD_TOKENS).spaces(1)
7174
.around(LBRACK).none() // [
7275
.before(RBRACK).none() // ]

src/main/java/com/tang/intellij/lua/editor/formatter/LuaLanguageCodeStyleSettingsProvider.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import com.intellij.application.options.IndentOptionsEditor
2121
import com.intellij.application.options.SmartIndentOptionsEditor
2222
import com.intellij.psi.codeStyle.CodeStyleSettingsCustomizable
2323
import com.intellij.psi.codeStyle.CodeStyleSettingsCustomizable.SPACES_OTHER
24-
import com.intellij.psi.codeStyle.CodeStyleSettingsCustomizable.WRAPPING_FIELDS_VARIABLES_GROUPS
24+
import com.intellij.psi.codeStyle.CommonCodeStyleSettings
2525
import com.intellij.psi.codeStyle.LanguageCodeStyleSettingsProvider
2626
import com.tang.intellij.lua.lang.LuaLanguage
2727

@@ -40,6 +40,12 @@ class LuaLanguageCodeStyleSettingsProvider : LanguageCodeStyleSettingsProvider()
4040
return SmartIndentOptionsEditor()
4141
}
4242

43+
override fun getDefaultCommonSettings(): CommonCodeStyleSettings {
44+
val commonSettings = CommonCodeStyleSettings(language)
45+
commonSettings.initIndentOptions()
46+
return commonSettings
47+
}
48+
4349
override fun customizeSettings(consumer: CodeStyleSettingsCustomizable, settingsType: LanguageCodeStyleSettingsProvider.SettingsType) {
4450
when (settingsType) {
4551
LanguageCodeStyleSettingsProvider.SettingsType.SPACING_SETTINGS -> {

0 commit comments

Comments
 (0)