Skip to content

Function to indent a string (str_indent, perhaps?) #480

Open
@colin-fraser

Description

@colin-fraser

I use stringr extensively for generating code or code-like files (for example, programmatically generating SQL queries), and I often find it helpful to have a function to indent a string. Usually I implement this something like the following.

library(stringi)
str_indent <- function(x, indent_level = 0, indent_character = ' ') {
  indent <- paste(rep(indent_character, indent_level), collapse = '')
  stringi::stri_replace_all_regex(x, '(?m)^', indent)
}
example_text <- paste(month.abb[1:3], collapse = '\n')
cat(example_text)
#> Jan
#> Feb
#> Mar
cat(str_indent(example_text, 3))
#>    Jan
#>    Feb
#>    Mar
# indenting with periods for visibility
cat(str_indent(example_text, 3, '.'))
#> ...Jan
#> ...Feb
#> ...Mar

Created on 2022-11-22 by the reprex package (v2.0.1)

I'd be happy to open a pull request if it seems that this would be sufficiently generally useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featurea feature request or enhancement

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions