Not sure, but another example may be a class dependent completion for
generic functions depending on first argument. Like print(df,... ) where df
a data.frame to complete, digits = NULL, quote = FALSE, right = TRUE,
row.names = TRUE instead of only (x,...).

That sort of already happens (have you tried?),

Oh, sorry, I have been confusing display of args list in emacs with R completions facilities. Emacs implements that directly through try(args(function).

 but instead of
print.data.frame, it gives you arguments of all print methods (only
for S3 generics though). Finding the right signature needs evaluation
of the right (usually first, but not necessarily) argument, which may
actually involve another function call. Inheritance makes things more
complicated. I'm not sure it's worth the overhead.


If custom function as Romain proposed, had an argument of all names typed after "(" (say "fArgs"), a whole range of possibilities opens up. At least one case when evaluation is not that demanding is new(); new() could generate completions for classes if fArgs is empty and completions for slots of class fArgs[1] otherwise.

Not to mention that various RGuis could use this facility to generate the list of context dependent arguments for in-line functions. Wouldn't that be great?!


What concerns S4 methods, findMethodSignatures is already there:
require("Matrix")
formals(getMethod("*", findMethodSignatures("*")[4, ]))
$e1
$e2

so it seems to me (a simple user) like the main "overhead" would be to implement custom functions with fArgs argument.



Vitalie
-Deepayan


--

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to