show notification instead of error when parsing failed

This commit is contained in:
Dennis Ushakov
2014-09-30 20:01:53 +04:00
parent a09d247a45
commit 9a9220777f
6 changed files with 9 additions and 8 deletions
@@ -23,7 +23,7 @@ public class Utils {
}
public static void invalidConfigMessage(Project project, String configValue, String configKey, String filePath) {
EditorConfigNotifier.getInstance().error(project, configValue, "\"" + configValue + "\" is not a valid value for " + configKey + " for file " + filePath);
EditorConfigNotifier.getInstance().error(project, configValue, "\"" + configValue + "\" is not a valid value" + (!configKey.isEmpty() ? " for " + configKey : "") + " for file " + filePath);
}
public static void appliedConfigMessage(Project project, String configValue, String configKey, String filePath) {
@@ -4,7 +4,6 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
import com.intellij.psi.codeStyle.CodeStyleSettings;
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
import com.intellij.psi.codeStyle.FileIndentOptionsProvider;
import org.editorconfig.Utils;
@@ -37,7 +36,7 @@ public class EditorConfigIndentOptionsProvider extends FileIndentOptionsProvider
// Get editorconfig settings
final String filePath = file.getCanonicalPath();
final SettingsProviderComponent settingsProvider = SettingsProviderComponent.getInstance();
final List<EditorConfig.OutPair> outPairs = settingsProvider.getOutPairs(filePath);
final List<EditorConfig.OutPair> outPairs = settingsProvider.getOutPairs(project, filePath);
// Apply editorconfig settings for the current editor
return applyCodeStyleSettings(project, outPairs, file);
}
@@ -61,7 +61,7 @@ public class EditorSettingsManager extends FileDocumentManagerAdapter {
// Get editorconfig settings
final String filePath = file.getCanonicalPath();
final SettingsProviderComponent settingsProvider = SettingsProviderComponent.getInstance();
final List<EditorConfig.OutPair> outPairs = settingsProvider.getOutPairs(filePath);
final List<EditorConfig.OutPair> outPairs = settingsProvider.getOutPairs(myProject, filePath);
// Apply trailing spaces setting
final String trimTrailingWhitespace = Utils.configValueForKey(outPairs, trimTrailingWhitespaceKey);
applyConfigValueToUserData(file, TrailingSpacesStripper.OVERRIDE_STRIP_TRAILING_SPACES_KEY,
@@ -59,7 +59,7 @@ public class EncodingManager extends FileDocumentManagerAdapter {
isApplyingSettings = true;
try {
final String filePath = file.getCanonicalPath();
final List<OutPair> outPairs = SettingsProviderComponent.getInstance().getOutPairs(filePath);
final List<OutPair> outPairs = SettingsProviderComponent.getInstance().getOutPairs(myProject, filePath);
final EncodingProjectManager encodingProjectManager = EncodingProjectManager.getInstance(myProject);
final String charset = Utils.configValueForKey(outPairs, charsetKey);
if (!charset.isEmpty()) {
@@ -71,7 +71,7 @@ public class LineEndingsManager extends FileDocumentManagerAdapter {
if (!Utils.isEnabled(CodeStyleSettingsManager.getInstance(myProject).getCurrentSettings())) return;
final String filePath = file.getCanonicalPath();
final List<EditorConfig.OutPair> outPairs = SettingsProviderComponent.getInstance().getOutPairs(filePath);
final List<EditorConfig.OutPair> outPairs = SettingsProviderComponent.getInstance().getOutPairs(myProject, filePath);
final String lineEndings = Utils.configValueForKey(outPairs, lineEndingsKey);
if (!lineEndings.isEmpty()) {
try {
@@ -3,6 +3,8 @@ package org.editorconfig.plugincomponents;
import com.intellij.openapi.components.ApplicationComponent;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import org.editorconfig.Utils;
import org.editorconfig.core.EditorConfig;
import org.editorconfig.core.EditorConfig.OutPair;
import org.editorconfig.core.EditorConfigException;
@@ -24,14 +26,14 @@ public class SettingsProviderComponent implements ApplicationComponent {
return ServiceManager.getService(SettingsProviderComponent.class);
}
public List<OutPair> getOutPairs(String filePath) {
public List<OutPair> getOutPairs(Project project, String filePath) {
final List<OutPair> outPairs;
try {
outPairs = editorConfig.getProperties(filePath);
return outPairs;
}
catch (EditorConfigException error) {
LOG.error(error);
Utils.invalidConfigMessage(project, error.getMessage(), "", filePath);
return new ArrayList<OutPair>();
}
}