Skip to content

Instantly share code, notes, and snippets.

@Shougo
Created June 18, 2010 10:12
Show Gist options
  • Save Shougo/443470 to your computer and use it in GitHub Desktop.
Save Shougo/443470 to your computer and use it in GitHub Desktop.
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