|
- #' regexplain_addin
- #'
- #' @keywords internal
- regexplain_addin <- function() {
- # Get the document context.
- context <- rstudioapi::getActiveDocumentContext()
-
- # Get context text
- ctx_text <- context$selection[[1]]$text
-
- # If it is one line and evaluates to something, use that
- # Otherwise treat as text
- obj <- tryCatch({
- if (grepl("\n", ctx_text)) {
- ctx_text[1:min(length(ctx_text), 100)]
- } else {
- x <- eval(parse(text = ctx_text))
- x <- as.character(x)
- if (length(x) == 1 && grepl("\n", x))
- x <- strsplit(x, "\n")[[1]]
- if (length(x) > 10) {
- message(ctx_text, " gave ", length(x), " lines, limiting to first 10 unique lines.")
- x <- unique(x)
- x[1:min(length(x), 10)]
- } else x
- }
- },
- error = function(e) {as.character(ctx_text[1:min(length(ctx_text), 100)])})
-
- regex_gadget(if (length(obj) && obj != "") obj)
-
- }
-
- #' regexplain file loader
- #'
- #' @keywords internal
- regexplain_file <- function() {
- fname <- file.choose()
- x <- readLines(fname)
- if (length(x) > 100) {
- message("There were ", format(length(x), big.mark = ","), " lines in ", fname, "\nUsing only first 100.")
- x <- x[1:100]
- }
- regex_gadget(x, "RegEx")
- }
|