1010import com .intellij .openapi .vfs .VirtualFile ;
1111import com .intellij .psi .PsiFile ;
1212import com .intellij .util .xmlb .XmlSerializerUtil ;
13+ import com .intellij .util .xmlb .annotations .OptionTag ;
1314import net .seesharpsoft .intellij .plugins .csv .*;
1415import net .seesharpsoft .intellij .plugins .csv .settings .CsvEditorSettings ;
1516import org .jetbrains .annotations .NotNull ;
1617import org .jetbrains .annotations .Nullable ;
1718
18- import java .util .Arrays ;
1919import java .util .HashMap ;
2020import java .util .Map ;
2121
@@ -30,9 +30,8 @@ public class CsvFileAttributes implements PersistentStateComponent<CsvFileAttrib
3030
3131 static class Attribute {
3232 // holds the actual separator character
33- public String separator ;
34- // holds the name of the separator (see CsvValueSeparator class)
35- public String valueSeparator ;
33+ @ OptionTag (converter = CsvValueSeparator .CsvValueSeparatorConverter .class )
34+ public CsvValueSeparator separator ;
3635 public CsvEscapeCharacter escapeCharacter ;
3736 }
3837
@@ -93,8 +92,7 @@ public void setFileSeparator(@NotNull PsiFile psiFile, @NotNull CsvValueSeparato
9392 return ;
9493 }
9594 Attribute attribute = getFileAttribute (psiFile .getProject (), psiFile .getOriginalFile ().getVirtualFile (), true );
96- attribute .valueSeparator = separator .getName ();
97- attribute .separator = separator .getCharacter ();
95+ attribute .separator = separator ;
9896 }
9997
10098 public void resetValueSeparator (@ NotNull PsiFile psiFile ) {
@@ -103,7 +101,7 @@ public void resetValueSeparator(@NotNull PsiFile psiFile) {
103101 }
104102 Attribute attribute = getFileAttribute (psiFile .getProject (), psiFile .getOriginalFile ().getVirtualFile ());
105103 if (attribute != null ) {
106- attribute .valueSeparator = null ;
104+ attribute .separator = null ;
107105 }
108106 }
109107
@@ -117,14 +115,14 @@ CsvValueSeparator getValueSeparator(Project project, VirtualFile virtualFile) {
117115 return ((CsvSeparatorHolder ) language ).getSeparator ();
118116 }
119117 Attribute attribute = getFileAttribute (project , virtualFile );
120- return attribute == null || attribute .valueSeparator == null ?
118+ return attribute == null || attribute .separator == null ?
121119 CsvEditorSettings .getInstance ().getDefaultValueSeparator () :
122- CsvValueSeparator . create ( attribute .valueSeparator , attribute . separator ) ;
120+ attribute .separator ;
123121 }
124122
125123 public boolean hasValueSeparatorAttribute (@ NotNull Project project , @ NotNull VirtualFile virtualFile ) {
126124 Attribute attribute = getFileAttribute (project , virtualFile );
127- return attribute != null && attribute .valueSeparator != null ;
125+ return attribute != null && attribute .separator != null ;
128126 }
129127
130128 public void setEscapeCharacter (@ NotNull PsiFile psiFile , @ NotNull CsvEscapeCharacter escapeCharacter ) {
0 commit comments