Here is my not so good way of getting class name completion for C-c C-v C-y.




(defvar jde-all-built-classes '()) (with-all-class-files (name) (let* ((start-pos (string-match "/\\([a-zA-Z0-9]*\\)\\.class" name)) (end-pos (match-end 1))) (when (and start-pos end-pos) (setq classes (cons (list (substring name (+ 1 start-pos) end-pos)) jde-all-built-classes)))))

(defun jde-open-class-source-new ()
  (interactive)
  (if jde-all-built-classes
      (jde-open-class-source (completing-read "Class:" jde-all-built-classes))
    (jde-open-class-source)))


And then bind C-c C-v C-y to jde-open-class-source-new instead of jde-open-class-source.



The extra check for nullness of jde-all-built-classes is because I don't run the (with-all-class-files ... bit on start-up, but rather by hand, since it takes a bit of time to complete.


I'm looking into integrating this with jde-xref so the class names get cached across jde sessions.


Does anyone have any ideas or suggestions for better ways of doing this?


Suraj Acharya




Reply via email to