| Index: Tools/Scripts/webkitpy/thirdparty/pylint/examples/custom.py
|
| diff --git a/Tools/Scripts/webkitpy/thirdparty/pylint/examples/custom.py b/Tools/Scripts/webkitpy/thirdparty/pylint/examples/custom.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7e4d5e76b1ba1afea4219a86aa67916075fa8705
|
| --- /dev/null
|
| +++ b/Tools/Scripts/webkitpy/thirdparty/pylint/examples/custom.py
|
| @@ -0,0 +1,36 @@
|
| +from logilab import astng
|
| +
|
| +from pylint.interfaces import IASTNGChecker
|
| +from pylint.checkers import BaseChecker
|
| +
|
| +class MyASTNGChecker(BaseChecker):
|
| + """add member attributes defined using my own "properties" function
|
| + to the class locals dictionary
|
| + """
|
| +
|
| + __implements__ = IASTNGChecker
|
| +
|
| + name = 'custom'
|
| + msgs = {}
|
| + options = ()
|
| + # this is important so that your checker is executed before others
|
| + priority = -1
|
| +
|
| + def visit_callfunc(self, node):
|
| + """called when a CallFunc node is encountered.
|
| +
|
| + See logilab.astng for the description of available nodes."""
|
| + if not (isinstance(node.func, astng.Getattr)
|
| + and isinstance(node.func.expr, astng.Name)
|
| + and node.func.expr.name == 'properties'
|
| + and node.func.attrname == 'create'):
|
| + return
|
| + in_class = node.frame()
|
| + for param in node.args:
|
| + in_class.locals[param.name] = node
|
| +
|
| +
|
| +def register(linter):
|
| + """required method to auto register this checker"""
|
| + linter.register_checker(MyASTNGChecker(linter))
|
| +
|
|
|