SublimeLinter-contrib-makefile
SublimeLinter plugin for Makefiles
Details
Installs
- Total 278
- Win 122
- Mac 69
- Linux 87
Jun 27 | Jun 26 | Jun 25 | Jun 24 | Jun 23 | Jun 22 | Jun 21 | Jun 20 | Jun 19 | Jun 18 | Jun 17 | Jun 16 | Jun 15 | Jun 14 | Jun 13 | Jun 12 | Jun 11 | Jun 10 | Jun 9 | Jun 8 | Jun 7 | Jun 6 | Jun 5 | Jun 4 | Jun 3 | Jun 2 | Jun 1 | May 31 | May 30 | May 29 | May 28 | May 27 | May 26 | May 25 | May 24 | May 23 | May 22 | May 21 | May 20 | May 19 | May 18 | May 17 | May 16 | May 15 | May 14 | May 13 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
Mac | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 1 | 0 | 0 | 1 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 1 |
Readme
- Source
- raw.githubusercontent.com
About
A plugin for SublimeLinter which provides linting for Makefiles.
Installation
Use Package Control: search for a
package named SublimeLinter-contrib-makefile
and install it.
SublimeLinter must also be installed.
Checkers
This plugin is able to detect the following mistakes. They will be visually signaled in the status bar and the left gutter.
Undefined global variable names
Correct:
FOO = 1
test:
echo $(FOO)
Incorrect:
test:
echo $(FOO)
Undefined target names
Correct:
clean:
rm -rf build/*
test:
${MAKE} clean
pytest .
Incorrect:
test:
${MAKE} clean
pytest .
Duplicated targets
When there's 2 targets with the same name, e.g.:
test:
pytest .
test:
pytest .
Use of spaces instead of tabs
Any line starting with a space instead of tab is considered an error, e.g.
test1:
pytest . # use tab
test2:
pytest . # use spaces
Missing .PHONY
directive
This will print missing .PHONY declaration
if there's a file or directory
named “test” in the same directory as the Makefile:
test:
pytest .
Trailing spaces
Any trailing space at the end of the line, e.g.:
test:
pytest .<SPACE><SPACE><SPACE>
Unnecessary empty lines at EOF
E.g.:
test:
pytest .
Motivations
Why not use an existing CLI tool?
As stated in https://github.com/SublimeLinter/package_control_channel/pull/134, the motivation which led me to write this plugin is because the only Makefile linter I found is https://github.com/mrtazz/checkmake, which provides a quite limited set of rules. I wanted a linter which was able to identify at least undefined variable names, undefined target names, and the use of spaces instead of tabs. I found none so I wrote my own.
Why not turn this into a generic CLI tool?
Indeed that probably makes a lot more sense. I may (or may not) do this later. :)