style: clean up style hook code a bit

I've renamed the check_whitespace operation to check_style.  You're going to
need to change your .hg/hgrc file.  While you're at it, add a pre-qrefresh
hook please.
This commit is contained in:
Nathan Binkert 2011-01-10 11:11:15 -08:00
parent ae7e67f334
commit 3c8cc170d2
2 changed files with 15 additions and 16 deletions

View file

@ -177,8 +177,8 @@ or your personal .hgrc
style = %s/util/style.py
[hooks]
pretxncommit.style = python:style.check_whitespace
pre-qrefresh.style = python:style.check_whitespace
pretxncommit.style = python:style.check_style
pre-qrefresh.style = python:style.check_style
""" % (main.root)
mercurial_bin_not_found = """

View file

@ -36,6 +36,7 @@ sys.path.insert(0, os.path.dirname(__file__))
from file_types import lang_type
tabsize = 8
lead = re.compile(r'^([ \t]+)')
trail = re.compile(r'([ \t]+)$')
any_control = re.compile(r'\b(if|while|for)[ \t]*[(]')
@ -69,7 +70,7 @@ def checkwhite(filename):
if not checkwhite_line(line):
yield line,num + 1
def fixwhite_line(line, tabsize):
def fixwhite_line(line):
if lead.search(line):
newline = ''
for i,c in enumerate(line):
@ -85,7 +86,7 @@ def fixwhite_line(line, tabsize):
return line.rstrip() + '\n'
def fixwhite(filename, tabsize, fixonly=None):
def fixwhite(filename, fixonly=None):
if lang_type(filename) not in whitespace_types:
return
@ -224,7 +225,7 @@ def modified_lines(old_data, new_data, max_lines):
break
return modified
def do_check_whitespace(ui, repo, *files, **args):
def do_check_style(ui, repo, *files, **args):
"""check files for proper m5 style guidelines"""
from mercurial import mdiff, util
@ -234,7 +235,7 @@ def do_check_whitespace(ui, repo, *files, **args):
def skip(name):
return files and name in files
def prompt(name, fixonly=None):
def prompt(name, func, fixonly=None):
if args.get('auto', False):
result = 'f'
else:
@ -246,7 +247,7 @@ def do_check_whitespace(ui, repo, *files, **args):
if result == 'a':
return True
elif result == 'f':
fixwhite(repo.wjoin(name), args['tabsize'], fixonly)
func(repo.wjoin(name), fixonly)
return False
@ -264,7 +265,7 @@ def do_check_whitespace(ui, repo, *files, **args):
ok = False
if not ok:
if prompt(fname):
if prompt(fname, fixwhite):
return True
try:
@ -337,10 +338,10 @@ def check_hook(hooktype):
raise AttributeError, \
"This hook is not meant for %s" % hooktype
def check_whitespace(ui, repo, hooktype, **kwargs):
def check_style(ui, repo, hooktype, **kwargs):
check_hook(hooktype)
args = { 'tabsize' : 8 }
return do_check_whitespace(ui, repo, **args)
args = {}
return do_check_style(ui, repo, **args)
def check_format(ui, repo, hooktype, **kwargs):
check_hook(hooktype)
@ -355,10 +356,9 @@ except ImportError:
cmdtable = {
'^m5style' :
( do_check_whitespace,
[ ('a', 'auto', False, _("automatically fix whitespace")),
('t', 'tabsize', 8, _("Number of spaces TAB indents")) ],
_('hg m5style [-a] [-t <tabsize>] [FILE]...')),
( do_check_style,
[ ('a', 'auto', False, _("automatically fix whitespace")) ],
_('hg m5style [-a] [FILE]...')),
'^m5format' :
( do_check_format,
[ ],
@ -393,7 +393,6 @@ if __name__ == '__main__':
code = 1
verbose = 1
tabsize = 8
for opt,arg in opts:
if opt == '-n':
code = None