aboutsummaryrefslogtreecommitdiffstats
path: root/build/4coder_byp/4coder_vim/4coder_vim_keycode_lut.h
blob: 5ac8ec4c2248e13600ec15171ae4a843fbfb4299 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
global char* keycode_lut[2*KeyCode_COUNT];

function void init_keycode_lut(){
    for(i32 i=0; i<2*KeyCode_COUNT; i++){
        keycode_lut[i] = "";
    }
    i32 shift = KeyCode_COUNT;
    char *lowercase_alpha = "a\0b\0c\0d\0e\0f\0g\0h\0i\0j\0k\0l\0m\0n\0o\0p\0q\0r\0s\0t\0u\0v\0w\0x\0y\0z";
    for(i32 i='a'; i<='z'; i++){
        i32 index = i-'a';
        keycode_lut[KeyCode_A+index+shift] = key_code_name[KeyCode_A+index];
        keycode_lut[KeyCode_A+index] = lowercase_alpha + 2*index;
    }
    char *shift_digit = ")\0!\0@\0#\0$\0%\0^\0&\0*\0(";
    for(i32 i=0; i<=9; i++){
        keycode_lut[KeyCode_0+i] = key_code_name[KeyCode_0+i];
        keycode_lut[KeyCode_0+i+shift] = shift_digit + 2*i;;
    }
    char *function_keys = "F1\0F2\0F3\0F4\0F5\0F6\0F7\0F8\0F9\0F10\0F11\0F12";
    for(i32 i=0; i<12; i++){
        keycode_lut[KeyCode_F1+i] = keycode_lut[KeyCode_F1+i+shift] = function_keys + (3*i + (i>9)*(i-9));
    }

    keycode_lut[KeyCode_Space]     = keycode_lut[KeyCode_Space+shift]         = "Sp";
    keycode_lut[KeyCode_Tab]       = keycode_lut[KeyCode_BackwardSlash+shift] = "Tab";
    keycode_lut[KeyCode_Escape]    = keycode_lut[KeyCode_Escape+shift]        = "ESC";
    keycode_lut[KeyCode_Pause]     = keycode_lut[KeyCode_Pause+shift]         = key_code_name[KeyCode_Pause];
    keycode_lut[KeyCode_Up]        = keycode_lut[KeyCode_Up+shift]            = key_code_name[KeyCode_Up];
    keycode_lut[KeyCode_Down]      = keycode_lut[KeyCode_Down+shift]          = key_code_name[KeyCode_Down];
    keycode_lut[KeyCode_Left]      = keycode_lut[KeyCode_Left+shift]          = key_code_name[KeyCode_Left];
    keycode_lut[KeyCode_Right]     = keycode_lut[KeyCode_Right+shift]         = key_code_name[KeyCode_Right];
    keycode_lut[KeyCode_Backspace] = keycode_lut[KeyCode_Backspace+shift]     = "BS";
    keycode_lut[KeyCode_Return]    = keycode_lut[KeyCode_Escape+shift]        = "CR";
    keycode_lut[KeyCode_Delete]    = keycode_lut[KeyCode_Delete+shift]        = "Del";
    keycode_lut[KeyCode_Insert]    = keycode_lut[KeyCode_Insert+shift]        = "Ins";
    keycode_lut[KeyCode_Home]      = keycode_lut[KeyCode_Home+shift]          = "Home";
    keycode_lut[KeyCode_End]       = keycode_lut[KeyCode_End+shift]           = "End";
    keycode_lut[KeyCode_PageUp]    = keycode_lut[KeyCode_PageUp+shift]        = "PageUp";
    keycode_lut[KeyCode_PageDown]  = keycode_lut[KeyCode_PageDown+shift]      = "PageDown";
    keycode_lut[KeyCode_CapsLock]  = keycode_lut[KeyCode_CapsLock+shift]      = "Caps";
    keycode_lut[KeyCode_NumLock]   = keycode_lut[KeyCode_NumLock+shift]       = "NumLock";

    keycode_lut[KeyCode_Tick]          = "`"; keycode_lut[KeyCode_Tick+shift]           = "~";
    keycode_lut[KeyCode_Minus]         = "-"; keycode_lut[KeyCode_Minus+shift]          = "_";
    keycode_lut[KeyCode_Minus]         = "-"; keycode_lut[KeyCode_Minus+shift]          = "_";
    keycode_lut[KeyCode_Equal]         = "="; keycode_lut[KeyCode_Equal+shift]          = "+";
    keycode_lut[KeyCode_LeftBracket]   = "["; keycode_lut[KeyCode_LeftBracket+shift]    = "{";
    keycode_lut[KeyCode_RightBracket]  = "]"; keycode_lut[KeyCode_RightBracket+shift]   = "}";
    keycode_lut[KeyCode_Semicolon]     = ";"; keycode_lut[KeyCode_Semicolon+shift]      = ":";
    keycode_lut[KeyCode_Quote]         = "'"; keycode_lut[KeyCode_Quote+shift]          = "\"";
    keycode_lut[KeyCode_Comma]         = ","; keycode_lut[KeyCode_Comma+shift]          = "<";
    keycode_lut[KeyCode_Period]        = "."; keycode_lut[KeyCode_Period+shift]         = ">";
    keycode_lut[KeyCode_ForwardSlash]  = "/"; keycode_lut[KeyCode_ForwardSlash+shift]   = "?";
    keycode_lut[KeyCode_BackwardSlash] = "\\"; keycode_lut[KeyCode_BackwardSlash+shift] = "|";
}