Skip to content

Commit d88e66d

Browse files
authored
Merge pull request #291 from SeeSharpSoft/master
Release 2.16.4
2 parents 9c92cb7 + 8b2fdec commit d88e66d

File tree

6 files changed

+30
-35
lines changed

6 files changed

+30
-35
lines changed

CHANGELOG

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
2.16.4
2+
May 27, 2021
3+
4+
FIX: fully prevent calculateDistributedColumnWidth on erroneous CSV #283
5+
FIX: Memory leak of PsiFile #284
6+
17
2.16.3
28
Apr 24, 2021
39

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jacocoTestReport {
2828
}
2929

3030
group 'net.seesharpsoft.intellij.plugins'
31-
version '2.16.3'
31+
version '2.16.4'
3232

3333
apply plugin: 'java'
3434
project.sourceCompatibility = JavaVersion.VERSION_11

src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/CsvTableEditor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ protected final void setAllColumnWidths(int[] widths) {
360360

361361
protected int[] calculateDistributedColumnWidths() {
362362
CsvColumnInfoMap csvColumnInfoMap = this.getColumnInfoMap();
363-
if (csvColumnInfoMap == null) {
363+
if (csvColumnInfoMap == null || csvColumnInfoMap.hasErrors()) {
364364
return null;
365365
}
366366
Map<Integer, CsvColumnInfo<PsiElement>> columnInfos = csvColumnInfoMap.getColumnInfos();

src/main/java/net/seesharpsoft/intellij/plugins/csv/psi/CsvFile.java

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,43 +5,21 @@
55
import com.intellij.openapi.fileTypes.LanguageFileType;
66
import com.intellij.psi.FileViewProvider;
77
import com.intellij.psi.PsiElement;
8-
import com.intellij.util.FileContentUtilCore;
98
import net.seesharpsoft.intellij.plugins.csv.CsvColumnInfoMap;
109
import net.seesharpsoft.intellij.plugins.csv.CsvHelper;
11-
import net.seesharpsoft.intellij.plugins.csv.settings.CsvEditorSettings;
1210
import org.jetbrains.annotations.NotNull;
1311

1412
import javax.swing.*;
15-
import java.beans.PropertyChangeEvent;
16-
import java.beans.PropertyChangeListener;
1713

1814
public class CsvFile extends PsiFileBase {
1915

2016
private final LanguageFileType myFileType;
2117
private CsvColumnInfoMap<PsiElement> myColumnInfoMap;
2218
private long myColumnInfoMapModifiedStamp;
2319

24-
private class CsvEditorSettingsPropertyChangeListener implements PropertyChangeListener{
25-
@Override
26-
public void propertyChange(PropertyChangeEvent evt) {
27-
switch (evt.getPropertyName()) {
28-
case "defaultEscapeCharacter":
29-
case "defaultValueSeparator":
30-
case "commentIndicator":
31-
case "valueColoring":
32-
FileContentUtilCore.reparseFiles(CsvFile.this.getVirtualFile());
33-
break;
34-
default:
35-
// does not influence file
36-
break;
37-
}
38-
}
39-
}
40-
4120
public CsvFile(@NotNull FileViewProvider viewProvider, LanguageFileType fileType) {
4221
super(viewProvider, fileType.getLanguage());
4322
myFileType = fileType;
44-
CsvEditorSettings.getInstance().addPropertyChangeListener(new CsvEditorSettingsPropertyChangeListener());
4523
}
4624

4725
public CsvColumnInfoMap<PsiElement> getColumnInfoMap() {

src/main/java/net/seesharpsoft/intellij/plugins/csv/settings/CsvEditorSettingsProvider.java

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package net.seesharpsoft.intellij.plugins.csv.settings;
22

33
import com.intellij.application.options.editor.EditorOptionsProvider;
4+
import com.intellij.openapi.fileEditor.FileEditorManager;
45
import com.intellij.openapi.options.ConfigurationException;
6+
import com.intellij.openapi.project.ProjectManager;
57
import com.intellij.openapi.ui.ComboBox;
68
import com.intellij.ui.CheckBoxWithColorChooser;
9+
import com.intellij.util.FileContentUtilCore;
710
import net.seesharpsoft.intellij.plugins.csv.CsvEscapeCharacter;
811
import net.seesharpsoft.intellij.plugins.csv.CsvValueSeparator;
912
import net.seesharpsoft.intellij.ui.CustomDisplayListCellRenderer;
@@ -14,7 +17,9 @@
1417
import javax.swing.text.NumberFormatter;
1518
import java.awt.*;
1619
import java.text.NumberFormat;
20+
import java.util.Arrays;
1721
import java.util.Objects;
22+
import java.util.stream.Collectors;
1823

1924
public class CsvEditorSettingsProvider implements EditorOptionsProvider {
2025

@@ -142,17 +147,28 @@ public void apply() throws ConfigurationException {
142147
csvEditorSettings.setTableAutoMaxColumnWidth((int) tfMaxColumnWidth.getValue());
143148
csvEditorSettings.setTableDefaultColumnWidth((int) tfDefaultColumnWidth.getValue());
144149
csvEditorSettings.setTableAutoColumnWidthOnOpen(cbAdjustColumnWidthOnOpen.isSelected());
145-
csvEditorSettings.setDefaultEscapeCharacter((CsvEscapeCharacter)comboEscapeCharacter.getSelectedItem());
150+
csvEditorSettings.setDefaultEscapeCharacter((CsvEscapeCharacter) comboEscapeCharacter.getSelectedItem());
146151
csvEditorSettings.setDefaultValueSeparator(
147152
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+
);
151156
csvEditorSettings.setKeepTrailingSpaces(cbKeepTrailingWhitespaces.isSelected());
152157
csvEditorSettings.setCommentIndicator(tfCommentIndicator.getText());
153158
csvEditorSettings.setValueColoring((CsvEditorSettings.ValueColoring) comboValueColoring.getSelectedItem());
154159
csvEditorSettings.setHeaderRowFixed(cbHeaderRowFixed.isSelected());
155160
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+
);
156172
}
157173

158174
protected void createUIComponents() {

src/main/resources/META-INF/plugin.xml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,8 @@
5050

5151
<change-notes><![CDATA[
5252
<pre style="font-family: sans-serif">
53-
NEW: Ability to split on ASCII separator character \x1e #267
54-
NEW: "General" settings group
55-
FIX: Lower annotator severity to not appear as problem
56-
FIX: Prevent non CSV entries in CSV attributes map #268
57-
FIX: keep existing & correct entries in CSV attributes map
58-
HOTFIX: Editor complaining about crashes on PyCharm 2021.1 #274
59-
HOTFIX: Exception in CSV plugin when using with remote SSH host #279
53+
FIX: fully prevent calculateDistributedColumnWidth on erroneous CSV #283
54+
FIX: Memory leak of PsiFile #284
6055
</pre>
6156
]]>
6257
</change-notes>

0 commit comments

Comments
 (0)