1
1
mirror of https://github.com/qvacua/vimr.git synced 2024-12-01 18:39:52 +03:00
vimr/SwiftNeoVim/KeyUtils.swift
2017-05-17 21:57:27 +02:00

82 lines
1.9 KiB
Swift

/**
* Tae Won Ha - http://taewon.de - @hataewon
* See LICENSE
*/
import Cocoa
class KeyUtils {
static func isSpecial(key: String) -> Bool {
guard key.characters.count == 1 else {
return false
}
if let firstChar = key.utf16.first {
return specialKeys.keys.contains(Int(firstChar))
}
return false
}
static func namedKeyFrom(key: String) -> String {
if let firstChar = key.utf16.first, specialKeys.keys.contains(Int(firstChar)) {
return specialKeys[Int(firstChar)]!
}
return key
}
}
fileprivate let specialKeys = [
NSUpArrowFunctionKey: "Up",
NSDownArrowFunctionKey: "Down",
NSLeftArrowFunctionKey: "Left",
NSRightArrowFunctionKey: "Right",
NSInsertFunctionKey: "Insert",
0x7F: "BS", // "delete"-key
NSDeleteFunctionKey: "Del", // "Fn+delete"-key
NSHomeFunctionKey: "Home",
NSBeginFunctionKey: "Begin",
NSEndFunctionKey: "End",
NSPageUpFunctionKey: "PageUp",
NSPageDownFunctionKey: "PageDown",
NSHelpFunctionKey: "Help",
NSF1FunctionKey: "F1",
NSF2FunctionKey: "F2",
NSF3FunctionKey: "F3",
NSF4FunctionKey: "F4",
NSF5FunctionKey: "F5",
NSF6FunctionKey: "F6",
NSF7FunctionKey: "F7",
NSF8FunctionKey: "F8",
NSF9FunctionKey: "F9",
NSF10FunctionKey: "F10",
NSF11FunctionKey: "F11",
NSF12FunctionKey: "F12",
NSF13FunctionKey: "F13",
NSF14FunctionKey: "F14",
NSF15FunctionKey: "F15",
NSF16FunctionKey: "F16",
NSF17FunctionKey: "F17",
NSF18FunctionKey: "F18",
NSF19FunctionKey: "F19",
NSF20FunctionKey: "F20",
NSF21FunctionKey: "F21",
NSF22FunctionKey: "F22",
NSF23FunctionKey: "F23",
NSF24FunctionKey: "F24",
NSF25FunctionKey: "F25",
NSF26FunctionKey: "F26",
NSF27FunctionKey: "F27",
NSF28FunctionKey: "F28",
NSF29FunctionKey: "F29",
NSF30FunctionKey: "F30",
NSF31FunctionKey: "F31",
NSF32FunctionKey: "F32",
NSF33FunctionKey: "F33",
NSF34FunctionKey: "F34",
NSF35FunctionKey: "F35",
0x19: "Tab",
]