syntactic 0.3.0 (2019-09-25)

Major changes

  • Migrated non-character S4 methods to basejump package, to keep syntactic very lightweight and fast. Defining only the character methods here allows the package to start up very quickly, and improves shell scripting calls defined in the koopa bootloader package.

syntactic 0.3.1 (2019-10-08)

Minor changes

  • Now allowing prefix = FALSE for camelCase, dottedCase, kebabCase, snakeCase, and upperCamelCase. This override allows the user to disable automatic “X” prefix defined by make.names internally for input that begins with a syntactically invalid character, such as a number (R-specific) or a non-alphanumeric. We’re now allowing this override so we can pass to new camel-case, kebab-case, and snake-case shell scripts defined in koopa.
  • Also now allowing smart = FALSE, which disables smart mode handling of mixed case acronyms (e.g. “RNAi”, “mRNA”), numeric delims/decimals (“,” “.”), special characters that can represent words (“+”/“-”; plus/minus), etc. Enabled by default and strongly recommended. Added a new override mode for some edge cases with our new shell methods defined in koopa.
  • Migrated character code coverage methods back here from basejump.
  • Simplifed code coverage, removing usage of parameterized tests that depend on patrick package.

syntactic 0.3.2 (2019-10-22)

File rename mode support.

camelCase, kebabCase, snakeCase, and upperCamelCase now support file rename mode (rename = TRUE). This works on either case-sensitive (Linux) or case-insensitive (macOS, Windows) file systems. Files and directories are supported, including files outside of the current working directory.

I recommend using either kebabCase or snakeCase for files.

When renaming with files beginning with a number, prefix = TRUE will prefix the file with an “x”, similar to the behavior in make.names. This can be disabled by settingprefix = FALSE. Smart acronyms and other features can also be disabled by setting smart = FALSE.

This code will be called internally in the upcoming koopa update.

syntactic 0.3.3 (2019-12-05)

Major changes

  • Added recursive file rename support.

Minor changes

  • Improved handling of " - “, avoiding return of”minus" in file rename mode.
  • File extension is automatically converted to lowercase when applicable.

syntactic 0.3.4 (2019-12-08)

Minor changes

  • Fixed expected handling of file rename mode on case insensitive file systems. Had to rework the internal code to loop across the files and directories, using an apply call internally.

syntactic 0.3.5 (2020-01-14)

Minor changes

  • Syntactic naming functions now check for “&” and convert to “and”. This behavior can be disabled by setting smart = FALSE.
  • Accented characters are now coerced to plain letters by default internally via stringi::stri_trans_general. This behavior can be disabled by setting smart = FALSE.

syntactic 0.3.6 (2020-01-27)

Major changes

  • Migrated S4 generics to acidgenerics package.

Minor changes

  • Fix to perserve extension case (e.g. “R”, “Rmd”) for files in rename mode.


  • Deprecated camel in favor of camelCase.
  • Deprecated dotted in favor of dottedCase.
  • Deprecated kebab in favor of kebabCase.
  • Deprecated snake in favor of snakeCase.
  • Deprecated upperCamel in favor of upperCamelCase.

syntactic 0.3.7 (2020-02-02)

Minor changes

  • camelCase: Bug fix for strict = TRUE not working as expected in rename mode (rename = TRUE).
  • Switched license from MIT to GPL-3.
  • Renamed package title to conform to CRAN requirements.

syntactic 0.3.8 (2020-02-25)

Minor changes

  • Rename mode now includes a helpful message showing the original file name and modified target name. This convention matches Perl File::Rename module.

syntactic 0.3.9 (2020-04-07)

Minor changes

  • Rename mode now checks for "_" prefix and will skip the file rename. This is particularly useful for avoiding issues with files such as _pkgdown.yml.

syntactic 0.3.10 (2020-06-15)

New functions

  • autopadZeros: Migrated character method previously defined in basejump. Also defined support for integer class objects. Improved padding support of integer strings and hardened function against partial padding matches.