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.