Line 1: |
Line 1: |
− | {{TOCright}}
| |
− | [[Category:Activity Team]]
| |
− |
| |
| == Summary == | | == Summary == |
| | | |
− | A set of configuration files and scripts to [http://en.wikipedia.org/wiki/Lint_%28software%29 lint] various sugar related code. | + | A set of configuration files and scripts to [[wikipedia:Lint_%28software%29|lint]] various sugar related code. |
| | | |
− | For python files, sugar-lint will call pylint (should be installed before) with custom configuration file and pep8.py (comes with sugar-lint sources).
| + | During execution, sugar-lint will lint: |
| + | * python files by pylint (should be installed before) with custom configuration file and pep8.py (comes with sugar-lint sources), |
| + | * vala files by vala-indent (should be installed from http://git.sugarlabs.org/projects/vala-indent). |
| + | * C/C++ files by indent command (should be installed) |
| | | |
| == Install == | | == Install == |
Line 12: |
Line 12: |
| Clone sugar-lint repository: | | Clone sugar-lint repository: |
| | | |
− | git clone git://git.sugarlabs.org/sugar-lint/mainline.git ''<local-path>'' | + | git clone git://git.sugarlabs.org/sdk/sugar-lint.git ''<install-path>'' |
| + | cd ''<install-path>'' |
| + | git submodule update --init |
| | | |
| Add sugar-lint command to PATH e.g. to ~/.bashrc (you need to relogin): | | Add sugar-lint command to PATH e.g. to ~/.bashrc (you need to relogin): |
| | | |
− | echo PATH=''<local-path>'':$PATH >> ~/.bashrc | + | echo PATH=''<full-install-path>'':$PATH >> ~/.bashrc |
| + | |
| + | == Usage == |
| | | |
− | == Direct usage == | + | === Direct invocation === |
| | | |
| To lint files: | | To lint files: |
Line 28: |
Line 32: |
| sugar-lint -r . | | sugar-lint -r . |
| | | |
− | == Lint files before commiting == | + | If fails were detected, call diff command (by default {{Code|vimdiff}} or {{Code|DIFFER}} environment variable value) to diff the source file and temporary file with comments in problematic places: |
| + | |
| + | sugar-lint -d ''<file>'' |
| + | |
| + | === Lint files before commiting === |
| | | |
| To add pre-commit git hook to lint files before commiting to arbitrary project: | | To add pre-commit git hook to lint files before commiting to arbitrary project: |
| | | |
− | ln -s ''<local-path>''/sugar/lint/git-pre-commit-hook ''<project-root>''/.git/hooks/pre-commit | + | ln -s ''<full-install-path>''/sugar_lint/git-pre-commit-hook ''<project-root>''/.git/hooks/pre-commit |
| + | |
| + | == Additional syntax in source files == |
| + | |
| + | Various sugar-lint related hints that could be used in source files. |
| + | |
| + | === Disable sugar-lint === |
| + | |
| + | To disable checks entirely for source file. |
| + | |
| + | Python syntax: |
| + | # sugar-lint: disable |
| + | |
| + | Vala syntax: |
| + | // sugar-lint: disable |
| + | /* sugar-lint: disable */ |
| + | |
| + | === Ignore pep8.py checks in Python sources === |
| + | |
| + | # pep8: ignore=''code''[,''code''] |
| + | |
| + | == Customize lint configuration == |
| + | |
| + | After cloning sugar-lint sources it contain default configuration files and configuration might be tuned to local need at any time. Configuration files are: |
| + | |
| + | * {{Code|sugar_lint/pylintrc}}<br>pylint config file; |
| + | * {{Code|sugar_lint/pep8rc}}<br>pep8.py config file; |
| + | * {{Code|sugar_lint/indent.pro}}<br>indent and vala-indent config file. |
| | | |
− | == Resources == | + | == Getting involved == |
| | | |
− | * [http://git.sugarlabs.org/projects/sugar-lint sources] | + | * Read the [http://git.sugarlabs.org/sdk/sugar-lint/blobs/master/HACKING HACKING] file to know how to contribute with code. |
| + | * Sugar Lint [http://git.sugarlabs.org/sdk/sugar-lint sources]. |