NAME
Sourcecode::Spellchecker - Detects common misspellings in source code and suggests corrections.
SYNOPSIS
use Sourcecode::Spellchecker
my $checker = new Sourcecode::Spellchecker;
my $sourceFileName = 'MySourceFile.cpp';
my @results = $checker->spellcheck($sourceFileName);
if (@results) {
foreach my $result (@results) {
print "$sourceFileName:$result->{line}: "
"'$result->{misspelling}' should be '$result->{correction}'\n";
}
}
else {
print "No spelling mistakes found.\n";
}
DESCRIPTION
This module scans a source file for common misspellings - including in comments, string literals, and identifier names - and suggests corrections.
For example, this module will find 'strat' (a misspelling of 'start') in the following lines:
my $strat;
const unsigned long STRAT_TIME = 0;
int stratTime;
Dim TimeToStrat As Integer
const char* szMsg = "It is time to strat.";
// This is a comment indicating when we will strat
However, it will purposefully not find misspellings in the following lines because 'strat' is embedded in another word or split in two by a change in case:
std::string s = other.strAt(2);
Strategy strategy = Strategy.RunFast;
CONSTRUCTOR
new
use Sourcecode::Spellchecker;
my $checker = new Sourcecode::Spellchecker({
'hootdoog' => 'hotdog',
'hambergr' => 'hamburger'
});
Optionally takes a reference to a hash containing additional misspelling-spelling pairs to search for. If no argument is supplied, the default list of misspellings is used.
Returns a newly created Sourcecode::Spellchecker
object.
METHODS
spellcheck($filename)
Returns a list of misspellings of the form:
(
{line => 1, misspelling => 'sofware', correction => 'software'},
{line => 7, misspelling => 'speach', correction => 'speech'}
)
SEE ALSO
spellcheck_source.pl
- Checks a source file for common misspellings.
The list of common misspellings and corrections used by this module is primarily from Wikipedia's "List of commonly mispelled words" page at http://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings.
AUTHOR
Zachary Blair, <zblair@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2014 by Zachary D. Blair
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.