Hello, Would it be possible to have a custom prompt when browser()'ing. I have made a simple implementation of this (which is attached), the basic idea is that instead of the hardcoded sprintf( "Browser[%d]> ", browselevel), a call to the getBrowsePrompt is made, and obviously the function is: > getBrowsePrompt function (level = 1, env = .GlobalEnv) { sprintf("Browse[%d]> ", level) } <environment: namespace:base> > debug( rnorm ) > rnorm( 10 ) debugging in: rnorm(10) debug: .Internal(rnorm(n, mean, sd)) Browse[1]> exiting from: rnorm(10) [1] -0.496598526 -0.006482431 1.491833990 -2.602605734 -0.275479145 [6] -1.143580117 0.146797854 -0.529420397 0.823817647 -0.256676050 but then it can be masked so that a more informative prompt is given, like this for example (showing the call stack) > getBrowsePrompt function( level = 1, env = .GlobalEnv){ calls <- sys.calls() stack <- sapply( calls[-1], function(x) tryCatch(as.character(x[[1]]), error=function(e) "?") ) sprintf( "Browse[%d] %s > ", level, paste( stack, collapse = " -> ") ) } > f() debugging in: rnorm(10) debug: .Internal(rnorm(n, mean, sd)) Browse[1] rnorm -> getBrowsePrompt > exiting from: rnorm(10) [1] -0.53854862 -1.42674850 -0.48391168 -0.23446819 -0.36863380 0.53803626 [7] 1.70176078 0.82984068 1.05101379 -0.03944557 Or this: printing the content of the environment we are browsing : > getBrowsePrompt <- function( level = 1, env = .GlobalEnv ){ + print( ls.str( envir = env) ) + base:::getBrowsePrompt( level, env ) + } > f() debugging in: rnorm(10) debug: .Internal(rnorm(n, mean, sd)) mean : num 0 n : num 10 sd : num 1 Browse[1]> exiting from: rnorm(10) [1] 1.1112007 0.4921306 0.1747196 -0.2518565 -0.9342039 0.5930085 [7] -0.5961234 0.1153541 -0.6189056 0.1670318 This probably should rely on an option instead of relying on masking functions. Also this opens a back door to the debugging system of R, but I am not sure this is entirely a bad thing. (see http://www.statistik.lmu.de/~eugster/soc09/#p5) On the same note, what about having a function for the prompt, so that (for example) we could show the current working directory, the memory usage, ... Romain -- Romain Francois Independent R Consultant +33(0) 6 28 91 30 30 http://romainfrancois.blog.free.fr -------------- next part -------------- A non-text attachment was scrubbed... Name: browser.diff Type: text/x-patch Size: 2030 bytes Desc: not available URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20090423/06a03820/attachment.bin>