├── .python-version ├── .gitignore ├── messages.json ├── .travis.yml ├── messages └── install.txt ├── linter.py ├── LICENSE └── README.md /.python-version: -------------------------------------------------------------------------------- 1 | 3.8 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /messages.json: -------------------------------------------------------------------------------- 1 | { 2 | "install": "messages/install.txt" 3 | } 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | python: 3 | - "3.6" 4 | install: 5 | - pip install flake8 6 | script: 7 | - flake8 *.py --max-line-length=120 8 | -------------------------------------------------------------------------------- /messages/install.txt: -------------------------------------------------------------------------------- 1 | SublimeLinter-luacheck 2 | ------------------------------- 3 | This linter plugin for SublimeLinter provides an interface to luacheck. 4 | 5 | Please read the installation instructions at: 6 | 7 | https://github.com/SublimeLinter/SublimeLinter-luacheck 8 | -------------------------------------------------------------------------------- /linter.py: -------------------------------------------------------------------------------- 1 | from SublimeLinter.lint import Linter 2 | 3 | 4 | class Luacheck(Linter): 5 | cmd = 'luacheck - --formatter=plain --codes --ranges --filename ${file}' 6 | regex = ( 7 | r'^.+:(?P\d+):(?P\d+)\-(?P\d+): ' 8 | r'\((?:(?PE\d+)|(?PW\d+))\) ' 9 | r'(?P.+)' 10 | ) 11 | defaults = { 12 | 'selector': 'source.lua, source.luae' 13 | } 14 | 15 | def split_match(self, match): 16 | """Patch regex matches to highlight token correctly.""" 17 | match, line, col, error, warning, msg, _ = super().split_match(match) 18 | col_end = int(match.group(3)) 19 | token_len = col_end - col 20 | return match, line, col, error, warning, msg, "." * token_len 21 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Permission is hereby granted, free of charge, to any person obtaining a copy 2 | of this software and associated documentation files (the "Software"), to deal 3 | in the Software without restriction, including without limitation the rights 4 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 5 | copies of the Software, and to permit persons to whom the Software is 6 | furnished to do so, subject to the following conditions: 7 | 8 | The above copyright notice and this permission notice shall be included in 9 | all copies or substantial portions of the Software. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 12 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 13 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 14 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 15 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 16 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 17 | THE SOFTWARE. 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | SublimeLinter-luacheck 2 | ================================ 3 | 4 | [![Build Status](https://travis-ci.org/SublimeLinter/SublimeLinter-luacheck.svg)](https://travis-ci.org/SublimeLinter/SublimeLinter-luacheck) 5 | 6 | This linter plugin for [SublimeLinter](https://github.com/SublimeLinter/SublimeLinter) provides an interface to [luacheck](http://luacheck.readthedocs.io). 7 | It will be used with files that have the "Lua" syntax. 8 | 9 | 10 | ## Installation 11 | 12 | SublimeLinter must be installed in order to use this plugin. 13 | 14 | Please use [Package Control](https://packagecontrol.io) to install the linter plugin. 15 | 16 | Before using this plugin, ensure that `luacheck` is installed on your system. 17 | To install `luacheck`, follow the instructions at the [luacheck repo](https://github.com/mpeterv/luacheck/#installation). 18 | 19 | Please make sure that the path to `luacheck` is available to SublimeLinter. 20 | The docs cover [troubleshooting PATH configuration](http://sublimelinter.com/en/latest/troubleshooting.html#finding-a-linter-executable). 21 | 22 | 23 | ## Settings 24 | 25 | - SublimeLinter settings: http://sublimelinter.com/en/latest/settings.html 26 | - Linter settings: http://sublimelinter.com/en/latest/linter_settings.html 27 | 28 | The preferred method of configuring `luacheck` is via [.luacheckrc files](http://luacheck.readthedocs.io/en/stable/config.html) 29 | 30 | --------------------------------------------------------------------------------