| Imports: | Imports: | ||||
| stringr, | stringr, | ||||
| stringi, | stringi, | ||||
| rlang, | |||||
| purrr, | purrr, | ||||
| dplyr, | dplyr, | ||||
| rmarkdown, | rmarkdown, |
| YEAR: 2018 | |||||
| COPYRIGHT HOLDER: Garrick Aden-Buie |
| # Generated by roxygen2: do not edit by hand | # Generated by roxygen2: do not edit by hand | ||||
| export(regex_gadget) | export(regex_gadget) | ||||
| export(regexplain_cheatsheet) | |||||
| export(run_regex) | export(run_regex) | ||||
| export(view_regex) | export(view_regex) | ||||
| import(miniUI) | import(miniUI) | ||||
| importFrom(dplyr,mutate) | importFrom(dplyr,mutate) | ||||
| importFrom(dplyr,select) | importFrom(dplyr,select) | ||||
| importFrom(dplyr,summarize) | importFrom(dplyr,summarize) | ||||
| importFrom(rlang,.data) | |||||
| importFrom(utils,getFromNamespace) | importFrom(utils,getFromNamespace) |
| ) | ) | ||||
| } | } | ||||
| #' @importFrom rlang .data | |||||
| help_server <- function(input, output, session) { | help_server <- function(input, output, session) { | ||||
| help_text <- reactiveVal("<p>Select a category from the left sidebar.</p>") | help_text <- reactiveVal("<p>Select a category from the left sidebar.</p>") | ||||
| observeEvent(input$help_cat_character_classes_regular, { | observeEvent(input$help_cat_character_classes_regular, { | ||||
| cheatsheet %>% | cheatsheet %>% | ||||
| filter(category == "character classes", group == "regular") %>% | |||||
| make_html_table %>% | |||||
| help_text | |||||
| filter(.data$category == "character classes", .data$group == "regular") %>% | |||||
| make_html_table() %>% | |||||
| help_text() | |||||
| }) | }) | ||||
| observeEvent(input$help_cat_character_classes_prebuilt, { | observeEvent(input$help_cat_character_classes_prebuilt, { | ||||
| cheatsheet %>% | cheatsheet %>% | ||||
| filter(category == "character classes", group == "pre-built") %>% | |||||
| make_html_table %>% | |||||
| help_text | |||||
| filter(.data$category == "character classes", .data$group == "pre-built") %>% | |||||
| make_html_table() %>% | |||||
| help_text() | |||||
| }) | }) | ||||
| observeEvent(input$help_cat_anchors, { | observeEvent(input$help_cat_anchors, { | ||||
| cheatsheet %>% | cheatsheet %>% | ||||
| filter(category == "anchors") %>% | |||||
| make_html_table %>% | |||||
| help_text | |||||
| filter(.data$category == "anchors") %>% | |||||
| make_html_table() %>% | |||||
| help_text() | |||||
| }) | }) | ||||
| observeEvent(input$help_cat_escaped_general, { | observeEvent(input$help_cat_escaped_general, { | ||||
| cheatsheet %>% | cheatsheet %>% | ||||
| filter(category == "escaped characters", group == "general") %>% | |||||
| make_html_table %>% | |||||
| help_text | |||||
| filter(.data$category == "escaped characters", .data$group == "general") %>% | |||||
| make_html_table() %>% | |||||
| help_text() | |||||
| }) | }) | ||||
| observeEvent(input$help_cat_escaped_hex, { | observeEvent(input$help_cat_escaped_hex, { | ||||
| cheatsheet %>% | cheatsheet %>% | ||||
| filter(category == "escaped characters", group == "hex") %>% | |||||
| make_html_table %>% | |||||
| help_text | |||||
| filter(.data$category == "escaped characters", .data$group == "hex") %>% | |||||
| make_html_table() %>% | |||||
| help_text() | |||||
| }) | }) | ||||
| observeEvent(input$help_cat_escaped_control, { | observeEvent(input$help_cat_escaped_control, { | ||||
| cheatsheet %>% | cheatsheet %>% | ||||
| filter(category == "escaped characters", group == "control characters") %>% | |||||
| make_html_table %>% | |||||
| help_text | |||||
| filter(.data$category == "escaped characters", .data$group == "control characters") %>% | |||||
| make_html_table() %>% | |||||
| help_text() | |||||
| }) | }) | ||||
| observeEvent(input$help_cat_groups, { | observeEvent(input$help_cat_groups, { | ||||
| cheatsheet %>% | cheatsheet %>% | ||||
| filter(category == "groups") %>% | |||||
| make_html_table %>% | |||||
| help_text | |||||
| filter(.data$category == "groups") %>% | |||||
| make_html_table() %>% | |||||
| help_text() | |||||
| }) | }) | ||||
| observeEvent(input$help_cat_quantifiers, { | observeEvent(input$help_cat_quantifiers, { | ||||
| cheatsheet %>% | cheatsheet %>% | ||||
| filter(category == "quantifiers") %>% | |||||
| make_html_table %>% | |||||
| help_text | |||||
| filter(.data$category == "quantifiers") %>% | |||||
| make_html_table() %>% | |||||
| help_text() | |||||
| }) | }) | ||||
| } | } |
| end = purrr::map_int(idx, ~ .[2]) + 1 | end = purrr::map_int(idx, ~ .[2]) + 1 | ||||
| ) %>% | ) %>% | ||||
| mutate( | mutate( | ||||
| class = sprintf("group g%02d", i), | |||||
| class = sprintf("group g%02d", .data$i), | |||||
| pad = 0 | pad = 0 | ||||
| ) | ) | ||||
| for (j in seq_len(nrow(inserts))) { | for (j in seq_len(nrow(inserts))) { | ||||
| if (inserts$i[j] == 0) next | if (inserts$i[j] == 0) next | ||||
| overlap <- filter( | overlap <- filter( | ||||
| inserts[1:(j-1), ], | inserts[1:(j-1), ], | ||||
| i != 0, | |||||
| start <= !!inserts$start[j] & end >= !!inserts$end[j]) | |||||
| .data$i != 0, | |||||
| .data$start <= !!inserts$start[j] & .data$end >= !!inserts$end[j]) | |||||
| inserts[j, 'pad'] <- inserts$pad[j] + nrow(overlap) | inserts[j, 'pad'] <- inserts$pad[j] + nrow(overlap) | ||||
| } | } | ||||
| inserts <- inserts %>% | inserts <- inserts %>% | ||||
| tidyr::gather(type, loc, start:end) %>% | tidyr::gather(type, loc, start:end) %>% | ||||
| mutate( | mutate( | ||||
| class = ifelse(pad > 0, sprintf("%s pad%02d", class, pad), class), | |||||
| insert = ifelse(type == 'start', sprintf('<span class="%s">', class), "</span>") | |||||
| class = ifelse(.data$pad > 0, sprintf("%s pad%02d", .data$class, .data$pad), .data$class), | |||||
| insert = ifelse(.data$type == 'start', sprintf('<span class="%s">', .data$class), "</span>") | |||||
| ) %>% | ) %>% | ||||
| group_by(loc, type) %>% | |||||
| summarize(insert = paste(insert, collapse = '')) | |||||
| group_by(.data$loc, .data$type) %>% | |||||
| summarize(insert = paste(.data$insert, collapse = '')) | |||||
| # inserts now gives html (span open and close) to insert and loc | # inserts now gives html (span open and close) to insert and loc | ||||
| # first split text at inserts$loc locations, | # first split text at inserts$loc locations, |
| % Generated by roxygen2: do not edit by hand | % Generated by roxygen2: do not edit by hand | ||||
| % Please edit documentation in R/regex_gadget.R | |||||
| % Please edit documentation in R/rstudio_addins.R | |||||
| \name{regexplain_addin} | \name{regexplain_addin} | ||||
| \alias{regexplain_addin} | \alias{regexplain_addin} | ||||
| \title{regexplain_addin} | \title{regexplain_addin} |
| % Generated by roxygen2: do not edit by hand | |||||
| % Please edit documentation in R/regex_help.R | |||||
| \name{regexplain_cheatsheet} | |||||
| \alias{regexplain_cheatsheet} | |||||
| \title{Regex Cheatsheet Quick Reference} | |||||
| \usage{ | |||||
| regexplain_cheatsheet() | |||||
| } | |||||
| \description{ | |||||
| Regex Cheatsheet Quick Reference | |||||
| } |
| % Generated by roxygen2: do not edit by hand | |||||
| % Please edit documentation in R/rstudio_addins.R | |||||
| \name{regexplain_file} | |||||
| \alias{regexplain_file} | |||||
| \title{regexplain file loader} | |||||
| \usage{ | |||||
| regexplain_file() | |||||
| } | |||||
| \description{ | |||||
| regexplain file loader | |||||
| } | |||||
| \keyword{internal} |