|
1 | 1 | package net.seesharpsoft.intellij.plugins.csv.settings; |
2 | 2 |
|
3 | 3 | import com.intellij.application.options.editor.EditorOptionsProvider; |
| 4 | +import com.intellij.openapi.fileEditor.FileEditorManager; |
4 | 5 | import com.intellij.openapi.options.ConfigurationException; |
| 6 | +import com.intellij.openapi.project.ProjectManager; |
5 | 7 | import com.intellij.openapi.ui.ComboBox; |
6 | 8 | import com.intellij.ui.CheckBoxWithColorChooser; |
| 9 | +import com.intellij.util.FileContentUtilCore; |
7 | 10 | import net.seesharpsoft.intellij.plugins.csv.CsvEscapeCharacter; |
8 | 11 | import net.seesharpsoft.intellij.plugins.csv.CsvValueSeparator; |
9 | 12 | import net.seesharpsoft.intellij.ui.CustomDisplayListCellRenderer; |
|
14 | 17 | import javax.swing.text.NumberFormatter; |
15 | 18 | import java.awt.*; |
16 | 19 | import java.text.NumberFormat; |
| 20 | +import java.util.Arrays; |
17 | 21 | import java.util.Objects; |
| 22 | +import java.util.stream.Collectors; |
18 | 23 |
|
19 | 24 | public class CsvEditorSettingsProvider implements EditorOptionsProvider { |
20 | 25 |
|
@@ -142,17 +147,28 @@ public void apply() throws ConfigurationException { |
142 | 147 | csvEditorSettings.setTableAutoMaxColumnWidth((int) tfMaxColumnWidth.getValue()); |
143 | 148 | csvEditorSettings.setTableDefaultColumnWidth((int) tfDefaultColumnWidth.getValue()); |
144 | 149 | csvEditorSettings.setTableAutoColumnWidthOnOpen(cbAdjustColumnWidthOnOpen.isSelected()); |
145 | | - csvEditorSettings.setDefaultEscapeCharacter((CsvEscapeCharacter)comboEscapeCharacter.getSelectedItem()); |
| 150 | + csvEditorSettings.setDefaultEscapeCharacter((CsvEscapeCharacter) comboEscapeCharacter.getSelectedItem()); |
146 | 151 | csvEditorSettings.setDefaultValueSeparator( |
147 | 152 | comboValueSeparator.getSelectedItem() instanceof CsvValueSeparator ? |
148 | | - (CsvValueSeparator)comboValueSeparator.getSelectedItem() : |
149 | | - CsvValueSeparator.create((String)comboValueSeparator.getSelectedItem()) |
150 | | - ); |
| 153 | + (CsvValueSeparator) comboValueSeparator.getSelectedItem() : |
| 154 | + CsvValueSeparator.create((String) comboValueSeparator.getSelectedItem()) |
| 155 | + ); |
151 | 156 | csvEditorSettings.setKeepTrailingSpaces(cbKeepTrailingWhitespaces.isSelected()); |
152 | 157 | csvEditorSettings.setCommentIndicator(tfCommentIndicator.getText()); |
153 | 158 | csvEditorSettings.setValueColoring((CsvEditorSettings.ValueColoring) comboValueColoring.getSelectedItem()); |
154 | 159 | csvEditorSettings.setHeaderRowFixed(cbHeaderRowFixed.isSelected()); |
155 | 160 | csvEditorSettings.setAutoDetectValueSeparator(cbAutoDetectSeparator.isSelected()); |
| 161 | + |
| 162 | + this.refreshOpenEditors(); |
| 163 | + } |
| 164 | + |
| 165 | + protected void refreshOpenEditors() { |
| 166 | + FileContentUtilCore.reparseFiles( |
| 167 | + Arrays.stream(ProjectManager.getInstance().getOpenProjects()) |
| 168 | + .map(FileEditorManager::getInstance) |
| 169 | + .flatMap(manager -> Arrays.stream(manager.getOpenFiles())) |
| 170 | + .collect(Collectors.toList()) |
| 171 | + ); |
156 | 172 | } |
157 | 173 |
|
158 | 174 | protected void createUIComponents() { |
|
0 commit comments