| package org.zmlx.hg4idea.util; |
| |
| import com.intellij.openapi.project.Project; |
| import com.intellij.openapi.vfs.encoding.EncodingProjectManager; |
| import org.jetbrains.annotations.NotNull; |
| |
| import java.nio.charset.Charset; |
| |
| import static org.zmlx.hg4idea.HgVcs.HGENCODING; |
| |
| /** |
| * @author Kirill Likhodedov |
| */ |
| public class HgEncodingUtil { |
| |
| @NotNull |
| public static Charset getDefaultCharset(@NotNull Project project) { |
| if (HGENCODING != null && HGENCODING.length() > 0 && Charset.isSupported(HGENCODING)) { |
| return Charset.forName(HGENCODING); |
| } |
| Charset defaultCharset = null; |
| if (!project.isDisposed()) { |
| defaultCharset = EncodingProjectManager.getInstance(project).getDefaultCharset(); |
| } |
| return defaultCharset != null ? defaultCharset : Charset.defaultCharset(); |
| } |
| |
| @NotNull |
| public static String getNameFor(@NotNull Charset charset) { |
| //workaround for x_MacRoman encoding etc; todo: create map with encoding aliases because some encodings name are not supported by hg |
| String name = charset.name(); |
| if (name.startsWith("x-M")) { |
| return name.substring(2); // without "x-" prefix; |
| } |
| return name; |
| } |
| } |