Archive for 2012年11月|Monthly archive page
newLISP マニュアル v.10.4.5 日本語訳公開
今回のバージョンアップは、バグ・フィックスがメインな感じ。
安心して、バージョンアップできます(笑)。
ということで、マニュアルの日本語訳をアップしました。
newLISP マニュアル & リファレンス の全訳のリリースで、現在のバージョンは、v.10.4.5 です。
こちらから newlisp_manual-10405 をダウンロードして下さい。
目次も含め日本語併記にしてあります。
Lutz氏のご好意によりこちらで見ることもできます。
いつものように、間違いやおかしな点が有りましたら、こちらの blog までご一報下さい。
以上、如何でしょうか?
gs:get-selected-text を使ってみる...または、newlisp-edit.lsp の改良
よく、エディターなどで文字を選択して文字検索をかけると、選択された文字列が文字検索パネルに表示されます。でも、newLISPの統合開発環境 newLISP-GS では、そうなりません。
newLISPの GUI にそういう機能がないのかというと、あります。それが gs:get-selected-text。今回は、これを使って newlisp-edit.lsp を改造します。
gs:get-selected-text は gs:text-pane などで選択された文字列を取得する関数です。書式は、
(gs:get-selected-text sym-id [sym-action])
となり、sym-id には gs:text-pane などのシンボル名が入ります。newlisp-edit.lsp では、こんな感じに記述します。
(gs:get-selected-text currentEdit 'selected-text-handler)
ここで currentEdit は変数で、文字通り編集中の gs:text-pane のシンボル名が入っています。だから、クォート(‘)が付きません。selected-text-handler は選択された文字列を取得するハンドラーで
(define (selected-text-handler id text)
(when text
(gs:set-text 'FindTextField (base64-dec text))))
と定義します。これを newlisp-edit.lsp の適当な所に追加して、後は前述の gs:get-selected-text 文を必要な所に挿入します。挿入する箇所は、関数 findbutton-handler の
(define (findbutton-handler)
(if findDialogOpen
(begin
(gs:request-focus 'FindTextField)
(gs:select-text 'FindTextField 0)
(gs:get-selected-text currentEdit 'selected-text-handler) ; ←ここに追加
)
(openFindDialog)
)
)
と関数 openFindDialog の
(define (openFindDialog)
(gs:dialog 'FindDialog 'TheEditor "Find text" 460 200 nil nil)
:
(set 'findDialogOpen true)
(gs:get-selected-text currentEdit 'selected-text-handler) ; ←ここに追加
)
と二箇所。
この変更した newlisp-edit.lsp を使えば、文字列を選択して検索をかけた時、検索パネルの Find の表示がある gs:text-field に選択した文字列が入ります。
これで newLISP-GS の作業効率が大幅アップ(笑)。
以上、如何でしょうか?