add new option to consider sub-dirs for folder parser strategy

This commit is contained in:
marhali 2022-05-28 23:08:57 +02:00
parent d0ff774bee
commit 8dc66e1250
7 changed files with 36 additions and 0 deletions

View File

@ -17,6 +17,7 @@ public interface ProjectSettings {
@NotNull ParserStrategyType getParserStrategy();
@NotNull String getFilePattern();
boolean isIncludeSubDirs();
boolean isSorting();
// Editor Configuration

View File

@ -51,6 +51,7 @@ public class ProjectSettingsComponent extends ProjectSettingsComponentState {
.addLabeledComponent(bundle.getString("settings.resource.path.title"), constructLocalesDirectoryField(), 1, false)
.addLabeledComponent(bundle.getString("settings.resource.strategy"), constructFileStrategyPanel(), 1, false)
.addVerticalGap(12)
.addComponent(constructIncludeSubDirsField())
.addComponent(constructSortingField())
.addVerticalGap(24)
.addComponent(new TitledSeparator(bundle.getString("settings.editor.title")))
@ -146,6 +147,12 @@ public class ProjectSettingsComponent extends ProjectSettingsComponentState {
return panel;
}
private JComponent constructIncludeSubDirsField() {
includeSubDirs = new JBCheckBox(bundle.getString("settings.resource.nesting.title"));
includeSubDirs.setToolTipText(bundle.getString("settings.resource.nesting.tooltip"));
return includeSubDirs;
}
private JComponent constructSortingField() {
sorting = new JBCheckBox(bundle.getString("settings.resource.sorting.title"));
sorting.setToolTipText(bundle.getString("settings.resource.sorting.tooltip"));

View File

@ -23,6 +23,7 @@ public class ProjectSettingsComponentState {
protected ComboBox<String> parserStrategy;
protected JTextField filePattern;
protected JCheckBox includeSubDirs;
protected JCheckBox sorting;
// Editor configuration
@ -48,6 +49,7 @@ public class ProjectSettingsComponentState {
state.setParserStrategy(ParserStrategyType.fromIndex(parserStrategy.getSelectedIndex()));
state.setFilePattern(filePattern.getText());
state.setIncludeSubDirs(includeSubDirs.isSelected());
state.setSorting(sorting.isSelected());
state.setNamespaceDelimiter(namespaceDelimiter.getText());
@ -72,6 +74,7 @@ public class ProjectSettingsComponentState {
parserStrategy.setSelectedIndex((state.getParserStrategy().toIndex()));
filePattern.setText(state.getFilePattern());
includeSubDirs.setSelected(state.isIncludeSubDirs());
sorting.setSelected(state.isSorting());
namespaceDelimiter.setText(state.getNamespaceDelimiter());

View File

@ -21,6 +21,7 @@ public class ProjectSettingsState implements ProjectSettings {
private ParserStrategyType parserStrategy;
private String filePattern;
private Boolean includeSubDirs;
private Boolean sorting;
// Editor configuration
@ -59,6 +60,11 @@ public class ProjectSettingsState implements ProjectSettings {
return filePattern != null ? filePattern : defaults.getFilePattern();
}
@Override
public boolean isIncludeSubDirs() {
return includeSubDirs != null ? includeSubDirs : defaults.isIncludeSubDirs();
}
@Override
public boolean isSorting() {
return sorting != null ? sorting : defaults.isSorting();
@ -126,6 +132,10 @@ public class ProjectSettingsState implements ProjectSettings {
this.filePattern = filePattern;
}
public void setIncludeSubDirs(Boolean includeSubDirs) {
this.includeSubDirs = includeSubDirs;
}
public void setSorting(Boolean sorting) {
this.sorting = sorting;
}

View File

@ -32,6 +32,11 @@ public class DefaultPreset implements ProjectSettings {
return "*.*";
}
@Override
public boolean isIncludeSubDirs() {
return false;
}
@Override
public boolean isSorting() {
return true;

View File

@ -32,6 +32,11 @@ public class ReactI18NextPreset implements ProjectSettings {
return "*.json";
}
@Override
public boolean isIncludeSubDirs() {
return false;
}
@Override
public boolean isSorting() {
return true;

View File

@ -31,6 +31,11 @@ public class VueI18nPreset implements ProjectSettings {
return "*.json";
}
@Override
public boolean isIncludeSubDirs() {
return false;
}
@Override
public boolean isSorting() {
return true;