From 35676663d79dd1ce3408b34317377ba5478179a9 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Sat, 27 Oct 2012 22:58:38 +0200 Subject: Filename completion also in scheme buffers By means of a new entry in completion-at-point-functions that uses the handy comint-filename-completion. --- NEWS | 7 ++++--- elisp/geiser-completion.el | 11 +++++++++-- elisp/geiser-repl.el | 2 -- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/NEWS b/NEWS index 6458861..4644bc7 100644 --- a/NEWS +++ b/NEWS @@ -1,8 +1,9 @@ * Version 0.2.3 () - - TAB in a string context in the REPL triggers filename completion. - - Indentation of scheme forms improved (specially for those of you - using a single implementation). + - TAB in a string context in the REPL and Scheme buffers triggers + filename completion. + - Indentation of scheme forms improved (specially for those of you + using a single implementation). * Version 0.2.2 (Sep 30, 2012) diff --git a/elisp/geiser-completion.el b/elisp/geiser-completion.el index 0b39776..94de459 100644 --- a/elisp/geiser-completion.el +++ b/elisp/geiser-completion.el @@ -1,6 +1,6 @@ ;;; geiser-completion.el -- tab completion -;; Copyright (C) 2009, 2010, 2011 Jose Antonio Ortega Ruiz +;; Copyright (C) 2009, 2010, 2011, 2012 Jose Antonio Ortega Ruiz ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the Modified BSD License. You should @@ -17,6 +17,7 @@ (require 'geiser-syntax) (require 'geiser-base) +(require 'comint) (require 'minibuffer) @@ -147,10 +148,16 @@ we're looking for a module name.") (defun geiser-completion--for-module (&optional predicate) (geiser-completion--thing-at-point t predicate)) +(defun geiser-completion--for-filename () + (when (geiser-syntax--in-string-p) + (comint-filename-completion))) + (defun geiser-completion--setup (enable) (set (make-local-variable 'completion-at-point-functions) (if enable - '(geiser-completion--for-symbol geiser-completion--for-module) + '(geiser-completion--for-symbol + geiser-completion--for-module + geiser-completion--for-filename) (default-value 'completion-at-point-functions)))) (defun geiser-completion--complete-module () diff --git a/elisp/geiser-repl.el b/elisp/geiser-repl.el index 1a83565..d7be7cf 100644 --- a/elisp/geiser-repl.el +++ b/elisp/geiser-repl.el @@ -547,8 +547,6 @@ buffer." (interactive "p") (if (>= (point) (geiser-repl--last-prompt-end)) (or (completion-at-point) - (and (geiser-syntax--in-string-p) - (comint-replace-by-expanded-filename)) (lisp-indent-line)) (compilation-next-error n))) -- cgit v1.2.3