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 ParserStrategyType getParserStrategy();
@NotNull String getFilePattern(); @NotNull String getFilePattern();
boolean isIncludeSubDirs();
boolean isSorting(); boolean isSorting();
// Editor Configuration // 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.path.title"), constructLocalesDirectoryField(), 1, false)
.addLabeledComponent(bundle.getString("settings.resource.strategy"), constructFileStrategyPanel(), 1, false) .addLabeledComponent(bundle.getString("settings.resource.strategy"), constructFileStrategyPanel(), 1, false)
.addVerticalGap(12) .addVerticalGap(12)
.addComponent(constructIncludeSubDirsField())
.addComponent(constructSortingField()) .addComponent(constructSortingField())
.addVerticalGap(24) .addVerticalGap(24)
.addComponent(new TitledSeparator(bundle.getString("settings.editor.title"))) .addComponent(new TitledSeparator(bundle.getString("settings.editor.title")))
@ -146,6 +147,12 @@ public class ProjectSettingsComponent extends ProjectSettingsComponentState {
return panel; 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() { private JComponent constructSortingField() {
sorting = new JBCheckBox(bundle.getString("settings.resource.sorting.title")); sorting = new JBCheckBox(bundle.getString("settings.resource.sorting.title"));
sorting.setToolTipText(bundle.getString("settings.resource.sorting.tooltip")); sorting.setToolTipText(bundle.getString("settings.resource.sorting.tooltip"));

View File

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

View File

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

View File

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

View File

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

View File

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