Created
June 18, 2010 10:12
-
-
Save Shougo/443470 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FUNCTION eskk#table#has_map() | |
Called 29 times | |
Total time: 0.002234 | |
Self time: 0.000519 | |
count total (s) self (s) | |
29 0.002170 0.000455 return has_key(s:get_table(a:table_name), a:lhs) | |
FUNCTION eskk#get_stl() | |
Called 111 times | |
Total time: 0.007660 | |
Self time: 0.002849 | |
count total (s) self (s) | |
111 0.002078 0.001105 let self = eskk#get_current_instance() | |
111 0.005255 0.001417 return call(self.get_stl, a:000, self) | |
FUNCTION eskk#util#has_idx() | |
Called 189 times | |
Total time: 0.003618 | |
Self time: 0.003618 | |
count total (s) self (s) | |
" Return true when negative idx. | |
" let idx = a:idx >= 0 ? a:idx : len(a:list) + a:idx | |
189 0.001047 let idx = a:idx | |
189 0.001316 return 0 <= idx && idx < len(a:list) | |
FUNCTION eskk#set_up_temp_key() | |
Called 16 times | |
Total time: 0.008468 | |
Self time: 0.002891 | |
count total (s) self (s) | |
" Assumption: a:lhs must be '<Bar>' not '|'. | |
" Save current a:lhs mapping. | |
16 0.000320 if maparg(a:lhs, 'l') != '' | |
" TODO Check if a:lhs is buffer local. | |
16 0.000566 0.000404 call eskk#util#log('Save temp key: ' . maparg(a:lhs, 'l')) | |
16 0.001512 0.001329 execute 'lmap' '<buffer>' s:temp_key_map(a:lhs) maparg(a:lhs, 'l') | |
16 0.000036 endif | |
16 0.000053 if a:0 | |
2 0.000102 execute 'lmap' '<buffer>' a:lhs a:1 | |
2 0.000004 else | |
14 0.005403 0.000171 call eskk#set_up_key(a:lhs) | |
14 0.000038 endif | |
FUNCTION eskk#get_current_instance() | |
Called 574 times | |
Total time: 0.005577 | |
Self time: 0.005577 | |
count total (s) self (s) | |
574 0.004328 return s:eskk_instances[s:instance_id] | |
FUNCTION eskk#util#has_key_f() | |
Called 10 times | |
Total time: 0.001742 | |
Self time: 0.000155 | |
count total (s) self (s) | |
10 0.001725 0.000138 return call('s:follow', [1] + a:000) | |
FUNCTION eskk#util#eval_key() | |
Called 94 times | |
Total time: 0.006865 | |
Self time: 0.004634 | |
count total (s) self (s) | |
" From arpeggio.vim | |
94 0.003557 0.001326 let keys = s:split_to_keys(a:key) | |
94 0.002007 call map(keys, 'v:val =~ "^<.*>$" ? eval(''"\'' . v:val . ''"'') : v:val') | |
94 0.000627 return join(keys, '') | |
FUNCTION eskk#set_up_temp_key_restore() | |
Called 1 time | |
Total time: 0.000218 | |
Self time: 0.000197 | |
count total (s) self (s) | |
1 0.000026 0.000015 let temp_key = s:temp_key_map(a:lhs) | |
1 0.000027 let saved_rhs = maparg(temp_key, 'l') | |
1 0.000005 if saved_rhs != '' | |
1 0.000023 0.000013 call eskk#util#log('Restore saved temp key: ' . saved_rhs) | |
1 0.000028 execute 'lunmap <buffer>' temp_key | |
1 0.000081 execute 'lmap <buffer>' a:lhs saved_rhs | |
1 0.000002 else | |
call eskk#util#logf("warning: called eskk#set_up_temp_key_restore() but no '%s' key is stashed.", a:lhs) | |
call eskk#set_up_key(a:lhs) | |
endif | |
FUNCTION eskk#is_enabled() | |
Called 139 times | |
Total time: 0.006024 | |
Self time: 0.003952 | |
count total (s) self (s) | |
139 0.003112 0.001706 let self = eskk#get_current_instance() | |
139 0.002439 0.001773 return call(self.is_enabled, [], self) | |
FUNCTION eskk#dictionary_look_up_error() | |
Called 1 time | |
Total time: 0.000037 | |
Self time: 0.000021 | |
count total (s) self (s) | |
1 0.000035 0.000019 return s:build_error(a:from, ['dictionary look up error'] + a:000) | |
FUNCTION eskk#get_mode() | |
Called 3 times | |
Total time: 0.000135 | |
Self time: 0.000088 | |
count total (s) self (s) | |
3 0.000067 0.000035 let self = eskk#get_current_instance() | |
3 0.000057 0.000042 return call(self.get_mode, a:000, self) | |
FUNCTION eskk#sticky_key() | |
Called 2 times | |
Total time: 0.002991 | |
Self time: 0.000058 | |
count total (s) self (s) | |
2 0.000044 0.000024 let self = eskk#get_current_instance() | |
2 0.002940 0.000027 return call(self.sticky_key, a:000, self) | |
FUNCTION eskk#table#get_map_to() | |
Called 10 times | |
Total time: 0.001905 | |
Self time: 0.000571 | |
count total (s) self (s) | |
10 0.000731 0.000143 let def = s:get_table(a:table_name) | |
10 0.000894 0.000148 if empty(def) || !eskk#table#has_map(a:table_name, a:lhs) | |
if a:0 == 0 | |
throw eskk#internal_error(['eskk', 'table']) | |
else | |
return a:1 | |
endif | |
endif | |
10 0.000056 return def[a:lhs].map_to | |
FUNCTION eskk#is_henkan_key() | |
Called 12 times | |
Total time: 0.001594 | |
Self time: 0.000314 | |
count total (s) self (s) | |
12 0.000234 0.000127 let self = eskk#get_current_instance() | |
12 0.001326 0.000153 return call(self.is_henkan_key, a:000, self) | |
FUNCTION eskk#unlock_old_str() | |
Called 25 times | |
Total time: 0.001169 | |
Self time: 0.000748 | |
count total (s) self (s) | |
25 0.000602 0.000354 let self = eskk#get_current_instance() | |
25 0.000490 0.000317 return call(self.unlock_old_str, a:000, self) | |
FUNCTION eskk#table#get_rest() | |
Called 10 times | |
Total time: 0.003546 | |
Self time: 0.000449 | |
count total (s) self (s) | |
10 0.000678 0.000132 let def = s:get_table(a:table_name) | |
10 0.002685 0.000134 if empty(def) || !eskk#table#has_rest(a:table_name, a:lhs) | |
10 0.000028 if a:0 == 0 | |
throw eskk#internal_error(['eskk', 'table']) | |
else | |
10 0.000028 return a:1 | |
endif | |
endif | |
return def[a:lhs].rest | |
FUNCTION eskk#util#logf() | |
Called 197 times | |
Total time: 0.006472 | |
Self time: 0.004530 | |
count total (s) self (s) | |
197 0.006045 0.004103 call eskk#util#log(call('printf', [a:fmt] + a:000)) | |
FUNCTION eskk#get_buftable() | |
Called 12 times | |
Total time: 0.000468 | |
Self time: 0.000301 | |
count total (s) self (s) | |
12 0.000234 0.000121 let self = eskk#get_current_instance() | |
12 0.000198 0.000144 return call(self.get_buftable, a:000, self) | |
FUNCTION eskk#lock_old_str() | |
Called 25 times | |
Total time: 0.001086 | |
Self time: 0.000672 | |
count total (s) self (s) | |
25 0.000516 0.000271 let self = eskk#get_current_instance() | |
25 0.000490 0.000321 return call(self.lock_old_str, a:000, self) | |
FUNCTION eskk#get_special_key() | |
Called 14 times | |
Total time: 0.000759 | |
Self time: 0.000414 | |
count total (s) self (s) | |
14 0.000304 0.000164 let self = eskk#get_current_instance() | |
14 0.000406 0.000201 return call(self.get_special_key, a:000, self) | |
FUNCTION eskk#mode#builtin#set_table() | |
Called 2 times | |
Total time: 0.000410 | |
Self time: 0.000071 | |
count total (s) self (s) | |
2 0.000097 0.000029 call eskk#util#logf("Set '%s' table to s:current_table.", a:table_name) | |
2 0.000305 0.000034 call s:stash.set('current_table', s:[a:table_name]) | |
FUNCTION eskk#map_mode_local_keys() | |
Called 2 times | |
Total time: 0.011680 | |
Self time: 0.001083 | |
count total (s) self (s) | |
2 0.000112 0.000021 let mode = eskk#get_mode() | |
2 0.000069 let keys = { 'hira': [ 'henkan-select:choose-next', 'henkan-select:choose-prev', 'henkan-select:next-page', 'henkan-select:prev-page', 'mode:hira:q-key', 'mode:hira:to-ascii', 'mode:hira:to-zenei', ], 'kata': [ 'henkan-select:choose-next', 'henkan-select:choose-prev', 'henkan-select:next-page', 'henkan-select:prev-page', 'mode:kata:q-key', 'mode:kata:to-ascii', 'mode:kata:to-zenei', ], 'ascii': [ 'mode:ascii:to-hira', ], 'zenei': [ 'mode:zenei:to-hira', ],} | |
2 0.000014 if has_key(keys, mode) | |
16 0.000061 for key in keys[mode] | |
14 0.000984 0.000225 let real_key = eskk#get_special_key(key) | |
14 0.008183 0.000170 call eskk#set_up_temp_key(real_key) | |
14 0.002085 0.000351 call eskk#register_temp_event('leave-mode-' . mode, 'eskk#set_up_temp_key_restore', [real_key]) | |
14 0.000044 endfor | |
2 0.000005 endif | |
FUNCTION eskk#filter() | |
Called 25 times | |
Total time: 0.137448 | |
Self time: 0.000960 | |
count total (s) self (s) | |
25 0.000767 0.000442 let self = eskk#get_current_instance() | |
25 0.136570 0.000407 return call(self.filter, a:000, self) | |
FUNCTION eskk#set_up_key() | |
Called 14 times | |
Total time: 0.005232 | |
Self time: 0.000572 | |
count total (s) self (s) | |
14 0.000054 if a:0 | |
return s:map_key(a:key, s:mapopt_chars2dict(a:1)) | |
else | |
14 0.004970 0.000310 return s:map_key(a:key, s:create_default_mapopt()) | |
endif | |
FUNCTION eskk#util#warnf() | |
Called 29 times | |
Total time: 0.017362 | |
Self time: 0.000766 | |
count total (s) self (s) | |
29 0.017288 0.000692 call eskk#util#warn(call('printf', [a:msg] + a:000)) | |
FUNCTION eskk#util#get_local_func() | |
Called 11 times | |
Total time: 0.000167 | |
Self time: 0.000167 | |
count total (s) self (s) | |
" :help <SID> | |
11 0.000122 return printf('<SNR>%d_%s', a:sid, a:funcname) | |
FUNCTION eskk#table#has_rest() | |
Called 10 times | |
Total time: 0.002551 | |
Self time: 0.000312 | |
count total (s) self (s) | |
10 0.002530 0.000291 return eskk#util#has_key_f(s:get_table(a:table_name), [a:lhs, 'rest']) | |
FUNCTION eskk#register_temp_event() | |
Called 26 times | |
Total time: 0.002983 | |
Self time: 0.000788 | |
count total (s) self (s) | |
26 0.000552 0.000304 let self = eskk#get_current_instance() | |
26 0.002350 0.000403 return call(self.register_temp_event, a:000, self) | |
FUNCTION eskk#throw_event() | |
Called 8 times | |
Total time: 0.002339 | |
Self time: 0.000248 | |
count total (s) self (s) | |
8 0.000174 0.000095 let self = eskk#get_current_instance() | |
8 0.002137 0.000125 return call(self.throw_event, a:000, self) | |
FUNCTION eskk#is_sticky_key() | |
Called 22 times | |
Total time: 0.002856 | |
Self time: 0.000599 | |
count total (s) self (s) | |
22 0.000448 0.000240 let self = eskk#get_current_instance() | |
22 0.002339 0.000290 return call(self.is_sticky_key, a:000, self) | |
FUNCTION eskk#util#warn() | |
Called 34 times | |
Total time: 0.019709 | |
Self time: 0.019709 | |
count total (s) self (s) | |
34 0.000510 echohl WarningMsg | |
34 0.018604 echomsg a:msg | |
34 0.000358 echohl None | |
FUNCTION eskk#util#mb_strlen() | |
Called 25 times | |
Total time: 0.000497 | |
Self time: 0.000497 | |
count total (s) self (s) | |
25 0.000440 return strlen(substitute(copy(a:str), '.', 'x', 'g')) | |
FUNCTION eskk#is_big_letter() | |
Called 20 times | |
Total time: 0.000980 | |
Self time: 0.000560 | |
count total (s) self (s) | |
20 0.000422 0.000234 let self = eskk#get_current_instance() | |
20 0.000498 0.000266 return call(self.is_big_letter, a:000, self) | |
FUNCTION eskk#mode#builtin#update_dictionary() | |
Called 1 time | |
Total time: 0.000195 | |
Self time: 0.000027 | |
count total (s) self (s) | |
1 0.000192 0.000024 call s:stash.get('skk_dict').update_dictionary() | |
FUNCTION eskk#has_temp_key() | |
Called 3 times | |
Total time: 0.000278 | |
Self time: 0.000240 | |
count total (s) self (s) | |
3 0.000086 0.000048 let temp_key = s:temp_key_map(a:lhs) | |
3 0.000163 let saved_rhs = maparg(temp_key, 'l') | |
3 0.000015 return saved_rhs != '' | |
FUNCTION eskk#util#log() | |
Called 288 times | |
Total time: 0.002942 | |
Self time: 0.002942 | |
count total (s) self (s) | |
288 0.001336 if !g:eskk_debug | |
288 0.000657 return | |
endif | |
redraw | |
if exists('g:eskk_debug_file') | |
let file = expand(g:eskk_debug_file) | |
if filereadable(file) | |
call writefile(readfile(file) + [a:msg], file) | |
else | |
call writefile([a:msg], file) | |
endif | |
else | |
call eskk#util#warn(a:msg) | |
endif | |
if g:eskk_debug_wait_ms !=# 0 | |
execute printf('sleep %dm', g:eskk_debug_wait_ms) | |
endif | |
FUNCTION eskk#kakutei_str() | |
Called 2 times | |
Total time: 0.000752 | |
Self time: 0.000056 | |
count total (s) self (s) | |
2 0.000045 0.000023 let self = eskk#get_current_instance() | |
2 0.000700 0.000026 return call(self.kakutei_str, a:000, self) | |
FUNCTION eskk#is_special_lhs() | |
Called 60 times | |
Total time: 0.007543 | |
Self time: 0.001648 | |
count total (s) self (s) | |
60 0.001210 0.000663 let self = eskk#get_current_instance() | |
60 0.006155 0.000807 return call(self.is_special_lhs, a:000, self) | |
FUNCTION eskk#table#get_candidates() | |
Called 19 times | |
Total time: 0.025057 | |
Self time: 0.023772 | |
count total (s) self (s) | |
" TODO | |
" Current implementation is smart but heavy. | |
" Make table like this? | |
" 's': { | |
" 'a': {'map_to': 'さ'}, | |
" | |
" . | |
" . | |
" . | |
" | |
" 'y': {'a': {'map_to': 'しゃ'}} | |
" } | |
" But this uses a lot of memory. | |
" | |
19 0.000446 0.000234 if !s:load_table(a:table_name) | |
let msg = printf("can't load table '%s'.", a:table_name) | |
throw eskk#internal_error(['eskk', 'table'], msg) | |
endif | |
19 0.000096 if empty(a:str_buf) | |
throw eskk#internal_error(['eskk', 'table'], "a:str_buf is empty.") | |
endif | |
19 0.000090 let no_table = {} | |
19 0.001368 0.000295 let def = s:get_table(a:table_name, no_table) | |
19 0.000080 if def is no_table | |
return no_table | |
else | |
19 0.021911 return filter( keys(def), 'stridx(v:val, a:str_buf) == 0') | |
endif | |
FUNCTION eskk#util#assert() | |
Called 88 times | |
Total time: 0.001316 | |
Self time: 0.001316 | |
count total (s) self (s) | |
88 0.000339 if !a:cond | |
throw call('eskk#assertion_failure_error', [['eskk', 'util']] + a:000) | |
endif | |
FUNCTION eskk#toggle() | |
Called 2 times | |
Total time: 0.016666 | |
Self time: 0.000076 | |
count total (s) self (s) | |
2 0.000064 0.000036 let self = eskk#get_current_instance() | |
2 0.016592 0.000030 return call(self.toggle, [], self) | |
FUNCTION eskk#mode#builtin#do_lmap_non_egg_like_newline() | |
Called 4 times | |
Total time: 0.001239 | |
Self time: 0.000351 | |
count total (s) self (s) | |
4 0.000101 if a:do_map | |
3 0.000319 0.000041 if !eskk#has_temp_key('<CR>') | |
2 0.000054 0.000033 call eskk#util#log("Map *non* egg like newline...: <CR> => <Plug>(eskk:filter:<CR>)<Plug>(eskk:filter:<CR>)") | |
2 0.000484 0.000029 call eskk#set_up_temp_key('<CR>', '<Plug>(eskk:filter:<CR>)<Plug>(eskk:filter:<CR>)') | |
2 0.000004 endif | |
3 0.000005 else | |
1 0.000022 0.000012 call eskk#util#log("Restore *non* egg like newline...: <CR>") | |
1 0.000140 0.000016 call eskk#register_temp_event('filter-begin', 'eskk#set_up_temp_key_restore', ['<CR>']) | |
1 0.000003 endif | |
FUNCTION eskk#mode#builtin#asym_filter() | |
Called 25 times | |
Total time: 0.083074 | |
Self time: 0.007272 | |
count total (s) self (s) | |
25 0.000160 let char = a:stash.char | |
25 0.000445 0.000312 let henkan_phase = a:stash.buftable.get_henkan_phase() | |
" In order not to change current buftable old string. | |
25 0.001325 0.000239 call eskk#lock_old_str() | |
25 0.000073 try | |
" Handle special char. | |
" These characters are handled regardless of current phase. | |
25 0.000214 if char ==# "\<BS>" || char ==# "\<C-h>" | |
call s:do_backspace(a:stash) | |
return | |
elseif char ==# "\<CR>" | |
3 0.002688 0.000043 call s:do_enter(a:stash) | |
3 0.000009 return | |
elseif eskk#is_sticky_key(char) | |
2 0.003021 0.000030 call eskk#sticky_key(a:stash) | |
2 0.000005 return | |
elseif eskk#is_big_letter(char) | |
call eskk#sticky_key(a:stash) | |
call eskk#filter(tolower(char)) | |
return | |
else | |
" Fall through. | |
20 0.000046 endif | |
20 0.000049 finally | |
25 0.001418 0.000249 call eskk#unlock_old_str() | |
25 0.000074 endtry | |
20 0.002198 0.000273 if s:stash.get('current_table') is s:rom_to_hira " hira | |
20 0.002837 0.000257 if eskk#is_special_lhs(char, 'mode:hira:q-key') | |
call eskk#mode#builtin#do_q_key(a:stash) | |
return | |
elseif eskk#is_special_lhs(char, 'mode:hira:to-ascii') | |
call eskk#set_mode('ascii') | |
return | |
elseif eskk#is_special_lhs(char, 'mode:hira:to-zenei') | |
call eskk#set_mode('zenei') | |
return | |
else | |
" Fall through. | |
20 0.000042 endif | |
20 0.000049 else " kata | |
if eskk#is_special_lhs(char, 'mode:kata:q-key') | |
call eskk#mode#builtin#do_q_key(a:stash) | |
return | |
elseif eskk#is_special_lhs(char, 'mode:kata:to-ascii') | |
call eskk#set_mode('ascii') | |
return | |
elseif eskk#is_special_lhs(char, 'mode:kata:to-zenei') | |
call eskk#set_mode('zenei') | |
return | |
else | |
" Fall through. | |
endif | |
endif | |
20 0.000125 if henkan_phase ==# g:eskk#buftable#HENKAN_PHASE_NORMAL | |
8 0.023168 0.000141 return s:filter_rom_to_hira(a:stash) | |
elseif henkan_phase ==# g:eskk#buftable#HENKAN_PHASE_HENKAN | |
12 0.001730 0.000136 if eskk#is_henkan_key(char) | |
return s:henkan_key(a:stash) | |
call eskk#util#assert(a:stash.buftable.get_henkan_phase() == g:eskk#buftable#HENKAN_PHASE_HENKAN_SELECT) | |
else | |
11 0.027471 0.000157 return s:filter_rom_to_hira(a:stash) | |
endif | |
elseif henkan_phase ==# g:eskk#buftable#HENKAN_PHASE_OKURI | |
return s:filter_rom_to_hira(a:stash) | |
elseif henkan_phase ==# g:eskk#buftable#HENKAN_PHASE_HENKAN_SELECT | |
if eskk#is_special_lhs(char, 'henkan-select:choose-next') | |
return s:get_next_candidate(a:stash, 1) | |
elseif eskk#is_special_lhs(char, 'henkan-select:choose-prev') | |
return s:get_next_candidate(a:stash, 0) | |
else | |
call a:stash.buftable.set_henkan_phase(g:eskk#buftable#HENKAN_PHASE_NORMAL) | |
" Move henkan select buffer string to normal. | |
call a:stash.buftable.move_buf_str(g:eskk#buftable#HENKAN_PHASE_HENKAN_SELECT, g:eskk#buftable#HENKAN_PHASE_NORMAL) | |
return s:filter_rom_to_hira(a:stash) | |
endif | |
else | |
let msg = printf("eskk#mode#builtin#asym_filter() does not support phase %d.", phase) | |
throw eskk#internal_error(['eskk'], msg) | |
endif | |
FUNCTIONS SORTED ON TOTAL TIME | |
count total (s) self (s) function | |
25 0.137448 0.000960 eskk#filter() | |
25 0.083074 0.007272 eskk#mode#builtin#asym_filter() | |
19 0.025057 0.023772 eskk#table#get_candidates() | |
34 0.019709 eskk#util#warn() | |
29 0.017362 0.000766 eskk#util#warnf() | |
2 0.016666 0.000076 eskk#toggle() | |
2 0.011680 0.001083 eskk#map_mode_local_keys() | |
16 0.008468 0.002891 eskk#set_up_temp_key() | |
111 0.007660 0.002849 eskk#get_stl() | |
60 0.007543 0.001648 eskk#is_special_lhs() | |
94 0.006865 0.004634 eskk#util#eval_key() | |
197 0.006472 0.004530 eskk#util#logf() | |
139 0.006024 0.003952 eskk#is_enabled() | |
574 0.005577 eskk#get_current_instance() | |
14 0.005232 0.000572 eskk#set_up_key() | |
189 0.003618 eskk#util#has_idx() | |
10 0.003546 0.000449 eskk#table#get_rest() | |
2 0.002991 0.000058 eskk#sticky_key() | |
26 0.002983 0.000788 eskk#register_temp_event() | |
288 0.002942 eskk#util#log() | |
FUNCTIONS SORTED ON SELF TIME | |
count total (s) self (s) function | |
19 0.025057 0.023772 eskk#table#get_candidates() | |
34 0.019709 eskk#util#warn() | |
25 0.083074 0.007272 eskk#mode#builtin#asym_filter() | |
574 0.005577 eskk#get_current_instance() | |
94 0.006865 0.004634 eskk#util#eval_key() | |
197 0.006472 0.004530 eskk#util#logf() | |
139 0.006024 0.003952 eskk#is_enabled() | |
189 0.003618 eskk#util#has_idx() | |
288 0.002942 eskk#util#log() | |
16 0.008468 0.002891 eskk#set_up_temp_key() | |
111 0.007660 0.002849 eskk#get_stl() | |
60 0.007543 0.001648 eskk#is_special_lhs() | |
88 0.001316 eskk#util#assert() | |
2 0.011680 0.001083 eskk#map_mode_local_keys() | |
25 0.137448 0.000960 eskk#filter() | |
26 0.002983 0.000788 eskk#register_temp_event() | |
29 0.017362 0.000766 eskk#util#warnf() | |
25 0.001169 0.000748 eskk#unlock_old_str() | |
25 0.001086 0.000672 eskk#lock_old_str() | |
22 0.002856 0.000599 eskk#is_sticky_key() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment