R: Spell Check Interface

aspell {utils} | R Documentation

## Spell Check Interface

### Description

Spell check given files via Aspell, Hunspell or Ispell.

### Usage

    aspell(files, filter, control = list(), encoding = "unknown",
           program = NULL, dictionaries = character())

### Arguments

`files` | a character vector with the names of files to be checked.
`filter` | an optional filter for processing the files before spell checking, given as either a function (with formals `ifile` and `encoding`), or a character string specifying a built-in filter, or a list with the name of a built-in filter and additional arguments to be passed to it. See Details for available filters. If missing or `NULL`, no filtering is performed.
`control` | a list or character vector of control options for the spell checker.
`encoding` | the encoding of the files. Recycled as needed.
`program` | a character string giving the name (if on the system path) or full path of the spell check program to be used, or `NULL` (default). By default, the system path is searched for `aspell`, `hunspell` and `ispell` (in that order), and the first one found is used.
`dictionaries` | a character vector of names or file paths of additional R level dictionaries to use. Elements with no path separator specify R system dictionaries (in subdirectory ‘share/dictionaries’ of the R home directory). The file extension (currently, only ‘.rds’) can be omitted.

### Details

The spell check programs employed must support the so-called Ispell pipe interface activated via command line option -a. In addition to the programs, suitable dictionaries need to be available. See http://aspell.net, https://hunspell.github.io/ and https://www.cs.hmc.edu/~geoff/ispell.html, respectively, for obtaining the Aspell, Hunspell and (International) Ispell programs and dictionaries.

The currently available built-in filters are `"Rd"` (corresponding to `RdTextFilter`), `"Sweave"` (corresponding to `SweaveTeXFilter`), `"R"`, `"pot"`, `"dcf"` and `"md"`.

Filter `"R"` is for R code and extracts the message string constants in calls to `message`, `warning`, `stop`, `packageStartupMessage`, `gettext`, `gettextf`, and `ngettext` (the unnamed string constants for the first five, and `fmt` and `msg1`/`msg2` string constants, respectively, for the latter two).

Filter `"pot"` is for message string catalog ‘.pot’ files. Both have an argument `ignore` allowing to give regular expressions for parts of message strings to be ignored for spell checking: e.g., using `"[ \t]'[^']*'[ \t[:punct:]]"` ignores all text inside single quotes.

Filter `"dcf"` is for files in Debian Control File format. The fields to keep can be controlled by argument `keep` (a character vector with the respective field names). By default, Title and Description fields are kept.

Filter `"md"` is for files in Markdown format (‘.md’ and ‘.Rmd’ files), and needs packages commonmark and xml2 to be available.

The print method for the objects returned by `aspell` has an `indent` argument controlling the indentation of the positions of possibly mis-spelled words. The default is 2; Emacs users may find it useful to use an indentation of 0 and visit output in grep-mode. It also has a `verbose` argument: when this is true, suggestions for replacements are shown as well.

It is possible to employ additional R level dictionaries. Currently, these are files with extension ‘.rds’ obtained by serializing character vectors of word lists using `saveRDS`. If such dictionaries are employed, they are combined into a single word list file which is then used as the spell checker's personal dictionary (option -p): hence, the default personal dictionary is not used in this case.

### Value

A data frame inheriting from `aspell` (which has a useful print method) with the information about possibly mis-spelled words.

### References

Kurt Hornik and Duncan Murdoch (2011), Watch your spelling! The R Journal 3(2), 22–28. https://journal.r-project.org/archive/2011-2/RJournal_2011-2_Hornik+Murdoch.pdf.

### See Also

aspell-utils for utilities for spell checking packages.

### Examples

    ## Not run:
    ## To check all Rd files in a directory, (additionally) skipping the
    ## \references sections.
    files <- Sys.glob("*.Rd")
    aspell(files, filter = list("Rd", drop = "\\references"))

    ## To check all Sweave files
    files <- Sys.glob(c("*.Rnw", "*.Snw", "*.rnw", "*.snw"))
    aspell(files, filter = "Sweave", control = "-t")

    ## To check all Texinfo files (Aspell only)
    files <- Sys.glob("*.texi")
    aspell(files, control = "--mode=texinfo")

    ## End(Not run)

    ## List the available R system dictionaries.
    Sys.glob(file.path(R.home("share"), "dictionaries", "*.rds"))

[Package utils version 4.0.5 Index]