@@ -14,9 +14,8 @@ import com.intellij.ui.table.TableView
1414import com.intellij.util.ui.ListTableModel
1515import javax.swing.ListSelectionModel
1616
17- class IgnoredErrorsConfigurable (val project : Project ) :
18- BoundConfigurable (message(" settings.ignored-errors.group.title" )) {
19- private var ignoredErrors = project.service<ProjectSettings >().ignoredErrors.toMutableMap()
17+ class IgnoredErrorsConfigurable (val project : Project ) : BoundConfigurable(message("settings.ignored-errors.group.title")) {
18+ private var ignoredErrors = projectsIgnoredErrors()
2019
2120 private val tableModel = createTableModel()
2221
@@ -45,36 +44,40 @@ class IgnoredErrorsConfigurable(val project: Project) :
4544 createColumn<IgnoredError >(message(" settings.ignored-error.file" )) { ignoredError -> ignoredError.filePath.removePrefix(" ${project.basePath ? : " " } /" ) },
4645 createColumn(message(" settings.ignored-error.message" )) { ignoredError -> ignoredError.errorMessage }
4746 ),
48- ignoredErrorsList()
47+ ignoredErrors
4948 )
5049
5150 private fun removeIgnoredError () {
5251 val selectedRow = table.selectedObject ? : return
5352
54- ignoredErrors[selectedRow.filePath]?.remove (selectedRow.errorMessage )
53+ ignoredErrors = ignoredErrors.minus (selectedRow)
5554 refreshTableModel()
5655 }
5756
5857 private fun refreshTableModel () {
59- tableModel.items = ignoredErrorsList()
58+ tableModel.items = ignoredErrors
6059 }
6160
6261 override fun reset () {
6362 super .reset()
64- ignoredErrors = project.service< ProjectSettings >().ignoredErrors.toMutableMap ()
63+ ignoredErrors = projectsIgnoredErrors ()
6564 refreshTableModel()
6665 }
6766
6867 override fun isModified (): Boolean {
69- return super .isModified() || ignoredErrors != project.service< ProjectSettings >().ignoredErrors
68+ return ignoredErrors != projectsIgnoredErrors()
7069 }
7170
7271 override fun apply () {
7372 super .apply ()
74- project.service<ProjectSettings >().ignoredErrors = ignoredErrors
73+ project.service<ProjectSettings >().ignoredErrors = ignoredErrors.groupBy {
74+ it.filePath
75+ }.mapValues {
76+ it.value.map { ignoredError -> ignoredError.errorMessage }.toMutableSet()
77+ }.toMutableMap()
7578 }
7679
77- private fun ignoredErrorsList () = ignoredErrors.map { mapEntry ->
80+ private fun projectsIgnoredErrors () = project.service< ProjectSettings >(). ignoredErrors.map { mapEntry ->
7881 mapEntry.value.map {
7982 IgnoredError (mapEntry.key, it)
8083 }
0 commit comments