A first step towards completion: Add completion for command plugins

This commit is contained in:
eknauel 2005-05-28 12:08:23 +00:00
parent 9b72181b54
commit b93e71736c
1 changed files with 20 additions and 3 deletions

View File

@ -288,12 +288,13 @@
((= ch key-control-x)
(loop (wait-for-input) #t))
((= ch key-tab)
(debug-message "Should do completion now")
((and (focus-on-command-buffer?)
(= ch key-tab))
(offer-completions (last (buffer-text command-buffer)))
(loop (wait-for-input) #f))
;; F7 toggle scheme-mode / command-mode (FIXME: find a better key)
((= ch key-home)
((= ch key-f7)
(toggle-command/scheme-mode)
(loop (wait-for-input) #f))
@ -740,6 +741,22 @@
(loop (cdr lst)
(string-append str " " (car lst))))))
(define (completions->select-list completions)
(debug-message "possible completions " completions)
(make-select-list
(map (lambda (s) (make-unmarked-element s #f s))
completions)
(result-buffer-num-lines result-buffer)))
(define (offer-completions command)
(debug-message "offer-completions " command)
(let ((select-list
(completions->select-list
(completions-for (command-completions) command))))
(wclear (app-window-curses-win result-window))
(paint-result-buffer (paint-selection-list select-list))
(refresh-result-window)))
(define-record-type standard-result-obj standard-result-obj
(make-standard-result-obj cursor-pos-y
cursor-pos-x