initial commit for GitHub
This commit is contained in:
73
lint/coding_guidelines.pl
Executable file
73
lint/coding_guidelines.pl
Executable file
@@ -0,0 +1,73 @@
|
||||
#!/usr/bin/env perl
|
||||
|
||||
# SJCL coding guidelines:
|
||||
#
|
||||
# No tabs in any Javascript
|
||||
#
|
||||
# Indentation is two spaces. Alignment of stuff in multi-line statements is
|
||||
# encouraged.
|
||||
#
|
||||
# Braces everywhere, following jslint. I'm pretty sure the Closure compressor
|
||||
# removes them. Semicolons at the end of every statement.
|
||||
#
|
||||
# ++ and -- are allowed.
|
||||
#
|
||||
# Varibles are in camelCase. I prefer underscore_separated, but JavaScript uses
|
||||
# camelCase everywhere.
|
||||
#
|
||||
# Private members and methods are prefixed by underscores.
|
||||
#
|
||||
# Constants (and only constants) are UNDERSCORE_SEPARATED_UPPER_CASE. The
|
||||
# compression scripts rely on this.
|
||||
#
|
||||
# Classes begin with a capital letter (not yet implemented. Namespaces too?)
|
||||
#
|
||||
# Block comments are not on the same line as code.
|
||||
|
||||
my $in_comment = 0;
|
||||
my $file = '';
|
||||
|
||||
# for some reason, $. doesn't work.
|
||||
my $line = 0;
|
||||
|
||||
while (<>) {
|
||||
if ($ARGV ne $file) {
|
||||
# opening a new file
|
||||
if ($in_comment) {
|
||||
print STDERR "Opening file $ARGV: comment from $file wasn't closed.\n";
|
||||
}
|
||||
$file = $ARGV;
|
||||
$in_comment = $line = 0;
|
||||
}
|
||||
$line ++;
|
||||
|
||||
if (/\/\*(?:[^\*]|\*[^\/])*(\*\/\s*)?/) {
|
||||
# block comment on this line
|
||||
$in_comment = 1 unless defined $1;
|
||||
$ba = "$`$'";
|
||||
|
||||
# shouldn't have code before or after it
|
||||
print STDERR "$file line $line: block comment and code together.\n" if $ba =~ /\S/;
|
||||
|
||||
next;
|
||||
} elsif ($in_comment and /\*\//) {
|
||||
|
||||
# leaving block comment
|
||||
$in_comment = 0;
|
||||
print STDERR "$file line $line: block comment and code together.\n" if $' =~ /\S/;
|
||||
}
|
||||
|
||||
# don't enforce code style in a comment.
|
||||
next if $in_comment;
|
||||
|
||||
reset;
|
||||
while (?[\.\s+\*/<>=,;:-]([a-zA-Z0-9_]+_[a-zA-Z0-9_]*)?) {
|
||||
# find variable names with underscores
|
||||
my $varname = $1;
|
||||
print STDERR "$file line $line: Variable name $varname contains an underscore\n"
|
||||
if $varname =~ /[a-z]/;
|
||||
}
|
||||
|
||||
reset;
|
||||
print STDERR "$file line $line contains a tab\n" if /\t/;
|
||||
}
|
||||
5658
lint/jslint_rhino.js
Normal file
5658
lint/jslint_rhino.js
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user