Skip to content

Commit 667bd7b

Browse files
committed
popup.jax: Update Vim 8.2.5167 translate
1 parent 5ad315f commit 667bd7b

File tree

1 file changed

+61
-67
lines changed

1 file changed

+61
-67
lines changed

doc/popup.jax

Lines changed: 61 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
*popup.txt* For Vim バージョン 8.2. Last change: 2022 Jun 06
1+
*popup.txt* For Vim バージョン 8.2. Last change: 2022 Jun 16
22

33

44
VIMリファレンスマニュアル by Bram Moolenaar
@@ -986,9 +986,7 @@ Note "x" はポップアップを閉じる通常の方法である。Escを使
986986
==============================================================================
987987
4. 例 *popup-examples*
988988

989-
These examples use |Vim9| script.
990-
991-
TODO: もっと興味深い例
989+
以下の例では |Vim9| script を使う。
992990

993991
*popup_dialog-example*
994992
ユーザーに y/Y か n/N を押すように促す: >
@@ -1002,89 +1000,85 @@ TODO: もっと興味深い例
10021000
echomsg "'y' or 'Y' was NOT pressed"
10031001
endif
10041002
},
1003+
padding: [2, 4, 2, 4],
10051004
})
10061005
<
10071006
*popup_menu-shortcut-example*
10081007
popup_filter_menu() をショートカットで拡張できるようにする: >
10091008
1010-
call popup_menu(['Save', 'Cancel', 'Discard'], #{
1011-
\ filter: 'MyMenuFilter',
1012-
\ callback: 'MyMenuHandler',
1013-
\ })
1014-
1015-
func MyMenuFilter(id, key)
1016-
" ショートカットキーをハンドリングする
1017-
if a:key == 'S'
1018-
call popup_close(a:id, 1)
1019-
return 1
1020-
endif
1021-
if a:key == 'C'
1022-
call popup_close(a:id, 2)
1023-
return 1
1024-
endif
1025-
if a:key == 'D'
1026-
call popup_close(a:id, 3)
1027-
return 1
1028-
endif
1029-
1030-
" ショートカットキーではない場合は通常のフィルタに渡す
1031-
return popup_filter_menu(a:id, a:key)
1032-
endfunc
1033-
1034-
func MyMenuHandler(id, result)
1035-
echo $'Result: {a:result}'
1036-
endfunc
1009+
popup_menu(['Save', 'Cancel', 'Discard'], {
1010+
callback: (_, result) => {
1011+
echo 'dialog result is' result
1012+
},
1013+
filter: (id, key) => {
1014+
# ショートカットキーをハンドリングする
1015+
if key == 'S' || key == 's'
1016+
popup_close(id, 1)
1017+
elseif key == 'C' || key == 'c'
1018+
popup_close(id, 2)
1019+
elseif key == 'D' || key == 'd'
1020+
popup_close(id, 3)
1021+
else
1022+
# ショートカットキーではない場合は通常のフィルタに渡す
1023+
endif
1024+
return true
1025+
},
1026+
})
10371027
<
10381028
*popup_beval_example*
10391029
'ballooneval' のポップアップウィンドウの使用例: >
10401030
10411031
set ballooneval balloonevalterm
10421032
set balloonexpr=BalloonExpr()
1043-
let s:winid = 0
1044-
let s:last_text = ''
1045-
1046-
func BalloonExpr()
1047-
if s:winid && popup_getpos(s:winid) != {}
1048-
" 以前のポップアップウィンドウがまだ表示されている
1049-
if v:beval_text == s:last_text
1050-
" まだ同じテキスト、既存のポップアップを保持
1051-
return ''
1033+
var winid: number
1034+
var last_text: string
1035+
1036+
def BalloonExpr(): string
1037+
# ここで "v:beval_text" を使用して、興味深いものを検索する
1038+
var text = v:beval_text
1039+
if winid > 0 && popup_getpos(winid) != null_dict
1040+
# 以前のポップアップウィンドウがまだ表示されている
1041+
if text == last_text
1042+
# まだ同じテキスト、既存のポップアップを保持
1043+
return null_string
1044+
endif
1045+
popup_close(winid)
10521046
endif
1053-
call popup_close(s:winid)
1054-
endif
1055-
let s:winid = popup_beval(v:beval_text, #{mousemoved: 'word'})
1056-
let s:last_text = v:beval_text
1057-
return ''
1058-
endfunc
1059-
<
1047+
1048+
winid = popup_beval(text, {})
1049+
last_text = text
1050+
return null_string
1051+
enddef
1052+
10601053
テキストを非同期で取得する必要がある場合は、評価関数から空文字列を返し、テキス
10611054
トが利用可能になったら、popup_beval() を呼び出す。タイマーコールバックでシミュ
10621055
レートされた例: >
10631056
10641057
set ballooneval balloonevalterm
10651058
set balloonexpr=BalloonExpr()
1066-
let s:winid = 0
1067-
let s:balloonText = ''
1068-
1069-
func BalloonExpr()
1070-
if s:winid && popup_getpos(s:winid) != {}
1071-
" 以前のポップアップウィンドウがまだ表示されている
1072-
if v:beval_text == s:balloonText
1073-
" まだ同じテキスト、既存のポップアップを保持
1074-
return ''
1059+
var winid: number
1060+
var last_text: string
1061+
1062+
def BalloonExpr(): string
1063+
var text = v:beval_text
1064+
if winid > 0 && popup_getpos(winid) != null_dict
1065+
# 以前のポップアップウィンドウがまだ表示されている
1066+
if text == last_text
1067+
# まだ同じテキスト、既存のポップアップを保持
1068+
return null_string
1069+
endif
1070+
popup_close(winid)
10751071
endif
1076-
call popup_close(s:winid)
1077-
let s:winid = 0
1078-
endif
1079-
" 表示するテキストの非同期検索をシミュレートする
1080-
let s:balloonText = v:beval_text
1081-
call timer_start(100, 'ShowPopup')
1082-
return ''
1083-
endfunc
10841072
1085-
func ShowPopup(id)
1086-
let s:winid = popup_beval(s:balloonText, #{mousemoved: 'word'})
1087-
endfunc
1073+
# テキストを表示されるまで0.5秒かかる非同期検索をシミュレートする
1074+
last_text = text
1075+
timer_start(500, 'ShowPopup')
1076+
return null_string
1077+
enddef
1078+
1079+
def ShowPopup(timerid: number)
1080+
winid = popup_beval('Result: ' .. last_text, {})
1081+
enddef
10881082
<
10891083

10901084
vim:tw=78:ts=8:noet:ft=help:norl:

0 commit comments

Comments
 (0)