[ESS] elisp code: show function arguments
L.Stirton at uea.ac.uk
L.Stirton at uea.ac.uk
Tue Apr 3 10:21:31 CEST 2007
First off, as a newbie R user, Sven's code seems like *exactly* what I
need. Great work!
However, Like Ted and Mark, I can't get it to work. With Sven's code in
~/.emacs, I see no observable changes in ESS's behaviour, even after
re-starting Emacs. I am running Seiji Zenitani's Carbon Emacs package on
an intel Mac OS X.
Like I said, this seems like a fantastic enhancements, especially for
those getting to grips with R for the first time. I would be very pleased
if I could get it running.
Lindsay
> Me neither. Also ESS/emacs illiterate, and also running OpenSuse10.2.
>
> "Not working" in my case means that when I type, e.g., "rnorm(", nothing
> happens at all, as far as I can see. I've included all of Sven's code
> in my .emacs/init.el file (I'm running xemacs 21.4.20) and restarted
> xemacs.
>
> I also found strange behaviour of the cursor when trying to move through
> the buffer by clicking on the up arrow in the right slider: after every
> click the cursor returns to the main window and has to be dragged back
> to the up arrow.
>
> Cheers,
>
> Ted.
>
> Mark W Kimpel wrote on 04/03/2007 03:03 PM:
>> I can't get Sven's code to run. As I stated in another post, I am a
>> newbie and am probably just doing something wrong. I did, btw, figure
>> out that emacs IS loading the proper .emacs file.
>>
>> Anyway, I can't seem to get Sven's functionality to work. Below is my
>> entire .emacs file. Could someone tell me what is wrong?
>>
>> Thanks,
>> Mark
>>
>> ;;to initiate ess load
>> (load "/home/mkimpel/src/ess-5.3.3/lisp/ess-site")
>>
>> ;;The following function should be called when point (text cursor) is
>> between two parentheses of a R function call.
>> ;;It will then (invisibly) query R for which arguments the respective
>> function knows as well as their default values and show the result.
>> ;; http://www.svenhartenstein.de/emacs-ess.php
>>
>> (defun my-r-show-args ()
>> "Show arguments and their default values of function in minibuffer."
>> (interactive "*")
>> (let ((pointposition (point)))
>> (up-list -1)
>> (let ((posend (point)))
>> (backward-sexp 1)
>> (setq object (buffer-substring-no-properties posend (point)))
>> (ess-command (concat "try(args(" object "), silent=TRUE)\n")
>> (get-buffer-create "*my-r-args-completion*"))
>> )
>> (goto-char pointposition)
>> )
>> (with-current-buffer "*my-r-args-completion*"
>> (goto-char (point-min))
>> (if (equal nil (search-forward "function" 10 t))
>> (message my-r-noargsmsg)
>> (goto-char (point-min))
>> (zap-to-char 1 (string-to-char "("))
>> (goto-char (point-max))
>> (zap-to-char -1 (string-to-char ")"))
>> (delete-trailing-whitespace)
>> (if (equal my-r-show-as "tooltip")
>> (tooltip-show (concat "ARGS: " (buffer-string)))
>> (message (concat "ARGS: " (buffer-string)))
>> )))
>> (kill-buffer "*my-r-args-completion*")
>> )
>> (defvar my-r-noargsmsg "Sorry, no arguments found"
>> "The message that is returned if my-r-show-args does not find a list
>> of arguments.")
>> (defvar my-r-show-as nil
>> "How my-r-show-args should show the argument list. Possible values
>> are: 'message' (the default) or 'tooltip'.")
>>
>> ;; call my-r-show-args automatically
>> (define-key ess-mode-map "(" '(lambda nil "" (interactive)
>> (skeleton-pair-insert-maybe nil) (my-r-show-args)))
>>
>> Sven Hartenstein wrote:
>>
>>> Dear friends of Emacs and R,
>>>
>>> I wrote an emacs lisp function that shows a R-function's arguments and
>>> their default values on a single keystroke or as you type the opening
>>> paranthesis ("(") after a function name. People like me who can't
>>> remember all the parameter's names can thus very easily see them.
>>>
>>> See screenshots and get it here:
>>> http://www.svenhartenstein.de/emacs-ess.php
>>>
>>> The function uses ESS functions. I consider it quite handy and would
>>> be interested to know whether anything similar existed already and how
>>> it could be improved in case someone else considers it useful. (This
>>> is one of my first lisp functions, I'm sure there's much to optimize.)
>>> In fact, any feedback is highly appreciated.
>>>
>>> Happy R-coding,
>>>
>>> Sven
>>>
>>> ______________________________________________
>>> ESS-help at stat.math.ethz.ch mailing list
>>> https://stat.ethz.ch/mailman/listinfo/ess-help
>>>
>>>
>>
>>
>
>
> --
> Dr E.A. Catchpole
> Visiting Fellow
> Univ of New South Wales at ADFA, Canberra, Australia
> _ and University of Kent, Canterbury, England
> 'v' - www.pems.adfa.edu.au/~ecatchpole
> / \ - fax: +61 2 6268 8786
> m m - ph: +61 2 6268 8895
>
> ______________________________________________
> ESS-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/ess-help
>
More information about the ESS-help
mailing list