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 |
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
|
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.
On Windows, Aspell is available via MSYS2. One should use a non-Cygwin
version, e.g. package mingw-w64-x86_64-aspell
. The version built
against the Cygwin runtime (package aspell
) requires Unix line
endings in files and Unix-style paths, which is incompatible with
aspell()
.
The currently available built-in filters are "Rd"
(corresponding to RdTextFilter
, with additional argument
ignore
allowing to give regular expressions for parts of the
text to be ignored for spell checking), "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 misspelled 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 misspelled words.
References
Kurt Hornik and Duncan Murdoch (2011). “Watch your spelling!” The R Journal, 3(2), 22–28. doi:10.32614/RJ-2011-014.
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"))