This document lists changes made to the Editor Hints SPI.
+ + +@FOOTER@
+ + +customizersFolder
* is read get from customizersFolder
attribute of the given file. Intended to be put directly
@@ -160,11 +175,11 @@
private final Project project;
- private final String keyUseProject;
- private final String keyHintSettingsFile;
- private final String defaultHintLocation;
+ private final @NonNull String keyUseProject;
+ private final @NullAllowed String keyHintSettingsFile;
+ private final @NullAllowed String defaultHintLocation;
- public Standard(Project project, String keyUseProject, String keyHintSettingsFile, String defaultHintLocation) {
+ public Standard(Project project, @NonNull String keyUseProject, @NullAllowed String keyHintSettingsFile, @NullAllowed String defaultHintLocation) {
this.keyUseProject = keyUseProject;
this.keyHintSettingsFile = keyHintSettingsFile;
this.defaultHintLocation = defaultHintLocation;
@@ -185,22 +200,29 @@
}
public String getSettingsFileLocation() {
+ assert hasLocation();
String result = ProjectUtils.getPreferences(project, ProjectSettings.class, true).get(keyHintSettingsFile, null);
return result != null ? result : defaultHintLocation;
}
public void setSettingsFileLocation(String settings) {
+ assert hasLocation();
ProjectUtils.getPreferences(project, ProjectSettings.class, true).put(keyHintSettingsFile, settings);
}
@Override
public Preferences getProjectSettings(String mimeType) {
- URI settingsLocation = project.getProjectDirectory().toURI().resolve(getSettingsFileLocation());
- return ToolPreferences.from(settingsLocation).getPreferences(HINTS_TOOL_ID, mimeType);
+ if (hasLocation()) {
+ URI settingsLocation = project.getProjectDirectory().toURI().resolve(getSettingsFileLocation());
+ return ToolPreferences.from(settingsLocation).getPreferences(HINTS_TOOL_ID, mimeType);
+ } else {
+ return ProjectUtils.getPreferences(project, ProjectSettings.class, true).node(mimeType);
+ }
}
public ToolPreferences preferencesFrom(String source) {
+ assert hasLocation();
URI settingsLocation = project.getProjectDirectory().toURI().resolve(getSettingsFileLocation());
return ToolPreferences.from(settingsLocation);
}
@@ -213,5 +235,14 @@
return FileUtil.toFile(project.getProjectDirectory());
}
+ public boolean hasLocation() {
+ return keyHintSettingsFile != null;
+ }
+
+ public void save() {
+ if (hasLocation()) {
+
+ }
+ }
}
}