/******************************************************************************* * Copyright (c) 2014-2015 Codenvy, S.A. * 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: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.eclipse.che.ide.editor.codemirror.client; import java.util.HashMap; import java.util.Map; import java.util.logging.Logger; import org.eclipse.che.ide.jseditor.client.editortype.EditorType; import org.eclipse.che.ide.jseditor.client.keymap.Keymap; import com.google.gwt.core.shared.GWT; /** * Keymaps supported by CodeMirror. * * @author "Mickaƫl Leduque" */ public final class CodeMirrorKeymaps { /** The logger. */ private static final Logger LOG = Logger.getLogger(CodeMirrorKeymaps.class.getSimpleName()); public static Keymap DEFAULT; public static Keymap EMACS; public static Keymap VIM; public static Keymap SUBLIME; private static boolean emacsLoaded = false; private static boolean vimLoaded = false; private static boolean sublimeLoaded = false; private static final Map<Keymap, String> nativeMapping = new HashMap<>(); public static final void init() { LOG.fine("Initializing codemirror keymaps."); final KeymapDisplayConstants constants = GWT.create(KeymapDisplayConstants.class); final EditorType cmEditor = EditorType.fromKey(CodeMirrorEditorExtension.CODEMIRROR_EDITOR_KEY); DEFAULT = Keymap.newKeymap("CM_default", constants.defaultKeymap(), cmEditor); EMACS = Keymap.newKeymap("CM_emacs", constants.emacs(), cmEditor); VIM = Keymap.newKeymap("CM_vim", constants.vim(), cmEditor); SUBLIME = Keymap.newKeymap("CM_sublime", constants.sublime(), cmEditor); nativeMapping.put(DEFAULT, "default"); nativeMapping.put(EMACS, "emacs"); nativeMapping.put(VIM, "vim"); nativeMapping.put(SUBLIME, "sublime"); } public static final String getNativeMapping(final Keymap keymap) { return nativeMapping.get(keymap); } public static boolean isEmacsLoaded() { return emacsLoaded; } public static void setEmacsLoaded() { CodeMirrorKeymaps.emacsLoaded = true; } public static boolean isVimLoaded() { return vimLoaded; } public static void setVimLoaded() { CodeMirrorKeymaps.vimLoaded = true; } public static boolean isSublimeLoaded() { return sublimeLoaded; } public static void setSublimeLoaded() { CodeMirrorKeymaps.sublimeLoaded = true; } }