-
-
Notifications
You must be signed in to change notification settings - Fork 8
Closed
Labels
Description
I think we should improve format_expression a little.
Consider:
ll1 <- list(quote(i <- iris), quote(m <- mtcars))
ll2 <- list(quote({i <- iris; m <- mtcars}))
char1 <- c("i <- iris", "m <- mtcars")
char2 <- "
i <- iris
m <- mtcars
"
Currently
format_expression <- function(code) {
code <- lang2calls(code)
paste(code, collapse = "\n")
}
> format_expression(ll1)
[1] "i <- iris\nm <- mtcars"
> format_expression(ll2)
[1] "i <- iris\nm <- mtcars"
> format_expression(char1)
[1] "c(\"i <- iris\", \"m <- mtcars\")"
> format_expression(char2)
[1] "\n i <- iris\n m <- mtcars\n"
unlist separates character vector
> format_expression <- function(code) {
+ code <- lang2calls(code)
+ paste(unlist(code), collapse = "\n")
+ }
> format_expression(ll1)
[1] "i <- iris\nm <- mtcars"
> format_expression(ll2)
[1] "i <- iris\nm <- mtcars"
> format_expression(char1)
[1] "i <- iris\nm <- mtcars"
> format_expression(char2)
[1] "\n i <- iris\n m <- mtcars\n"
trimws removes some excess white space
format_expression <- function(code) {
code <- lang2calls(code)
trimws(paste(unlist(code), collapse = "\n"))
}
> format_expression(ll1)
[1] "i <- iris\nm <- mtcars"
> format_expression(ll2)
[1] "i <- iris\nm <- mtcars"
> format_expression(char1)
[1] "i <- iris\nm <- mtcars"
> format_expression(char2)
[1] "i <- iris\n m <- mtcars"
Question is: do we really need it? This is an internal function and I'm not sure if there are constrains on the input. Then again we may want to use it in another place (there's a PR in teal.data that does).