/**
 *  Copyright (c) 2017 Angelo ZERR.
 *  All rights reserved. This program and the accompanying materials
 *  are made available under the terms of the Eclipse Public License v1.0
 *  which accompanies this distribution, and is available at
 *  http://www.eclipse.org/legal/epl-v10.html
 *
 *  Contributors:
 *  Angelo Zerr <angelo.zerr@gmail.com> - initial API and implementation
 */
package org.eclipse.ec4e.internal;

import org.eclipse.ec4j.EditorConfigManager;

/**
 * IDE editorconfig manager.
 *
 */
public class IDEEditorConfigManager extends EditorConfigManager {

	public static final IDEEditorConfigManager INSTANCE = new IDEEditorConfigManager();

	public static IDEEditorConfigManager getInstance() {
		return INSTANCE;
	}

}

@@ -429,16 +429,371 @@
 nal;%0D%0A%0D%0A
+import java.io.IOException;%0D%0Aimport java.io.InputStreamReader;%0D%0Aimport java.io.Reader;%0D%0Aimport java.nio.charset.StandardCharsets;%0D%0A%0D%0Aimport org.eclipse.core.resources.IContainer;%0D%0Aimport org.eclipse.core.resources.IFile;%0D%0Aimport org.eclipse.core.resources.IResource;%0D%0Aimport org.eclipse.core.runtime.CoreException;%0D%0Aimport org.eclipse.core.runtime.Path;%0D%0A
 import o
@@ -808,16 +808,24 @@
 se.ec4j.
+Abstract
 EditorCo
@@ -837,16 +837,59 @@
 anager;%0D
+%0Aimport org.eclipse.ec4j.ResourceProvider;%0D
 %0A%0D%0A/**%0D%0A
@@ -971,16 +971,24 @@
 extends 
+Abstract
 EditorCo
@@ -998,18 +998,998 @@
 gManager
- %7B
+%3CIResource%3E %7B%0D%0A%0D%0A%09private static final ResourceProvider%3CIResource%3E ECLIPSE_RESOURCE_PROVIDER = new ResourceProvider%3CIResource%3E() %7B%0D%0A%0D%0A%09%09@Override%0D%0A%09%09public IResource getParent(IResource file) %7B%0D%0A%09%09%09IContainer parent = file.getParent();%0D%0A%09%09%09if (parent != null && parent.getType() != IResource.ROOT) %7B%0D%0A%09%09%09%09return parent;%0D%0A%09%09%09%7D%0D%0A%09%09%09return null;%0D%0A%09%09%7D%0D%0A%0D%0A%09%09@Override%0D%0A%09%09public IResource getResource(IResource parent, String child) %7B%0D%0A%09%09%09return ((IContainer) parent).getFile(new Path(child));%0D%0A%09%09%7D%0D%0A%0D%0A%09%09@Override%0D%0A%09%09public boolean exists(IResource file) %7B%0D%0A%09%09%09return file.exists();%0D%0A%09%09%7D%0D%0A%0D%0A%09%09@Override%0D%0A%09%09public String getPath(IResource file) %7B%0D%0A%09%09%09return file.getLocation().toString().replaceAll(%22%5B%5C%5C%5C%5C%5D%22, %22/%22);%0D%0A%09%09%7D%0D%0A%0D%0A%09%09@Override%0D%0A%09%09public Reader getContent(IResource configFile) throws IOException %7B%0D%0A%09%09%09try %7B%0D%0A%09%09%09%09return new InputStreamReader(((IFile) configFile).getContents(), StandardCharsets.UTF_8);%0D%0A%09%09%09%7D catch (CoreException e) %7B%0D%0A%09%09%09%09throw new IOException(e);%0D%0A%09%09%09%7D%0D%0A%09%09%7D%0D%0A%09%7D;
 %0D%0A%0D%0A%09pub
@@ -2068,24 +2068,103 @@
 nager();%0D%0A%0D%0A
+%09public IDEEditorConfigManager() %7B%0D%0A%09%09super(ECLIPSE_RESOURCE_PROVIDER);%0D%0A%09%7D%0D%0A%0D%0A
 %09public stat

Use IResource.