-
Notifications
You must be signed in to change notification settings - Fork 363
Makers
This is a list of makers for which Neomake comes pre-configured, along with minutiae on their usage.
This list may be out of date, look at autoload/neomake/makers for all supported makers.
Ansible:
-
ansible-lint,
:set ft=ansible
or use a plugin to detect ansible filetype
API Blueprint:
Applescript:
- osacompile
Asciidoc:
- asciidoc (not enabled by default)
- asciidoctor
Beancount:
Bib:
-
bibtex (not enabled by default)
- Requires a .aux file of the same name as the .bib file to exist in the same directory.
C:
- clang
- gcc
- clang-tidy
- checkpatch
- cppcheck
C++:
C#:
- MSC
-
MSBuild (not enabled by default)
- This maker require the msbuild(executable) to be added in PATH environment variable.
CFEngine 3:
- cf-promises
Chef (superset of Ruby):
- foodcritic
- cookstyle
- plus all Ruby makers
Clojure:
Coffeescript:
Crystal:
- crystal
- ameba
CSS:
CUDA:
- nvcc
D:
DocBook XML (docbk):
Elixir:
- credo (not enabled by default)
- dogma (not enabled by default)
- elixirc
Elm:
Erlang:
-
erlc - the maker accepts some options:
-
b:neomake_erlang_erlc_rebar3_profile
In a Rebar3 project the maker uses the
default
profile forinclude
/ebin
paths by default. If the edited file's name ends in_SUITE.erl
(for Common Test suites) or the file resides under atest/
subdirectory of the project's directory, the maker uses thetest
profile. Setting buffer localneomake_erlang_erlc_rebar3_profile
overrides this default profile selection mechanism. -
b:neomake_erlang_erlc_target_dir
org:neomake_erlang_erlc_target_dir
If
_build
subdirectory exists in the project's directory, the maker puts build artifacts under_build/neomake
. Otherwise, it puts the artifacts under a temporary directory which will be removed on exit. Setting a buffer local or globalneomake_erlang_erlc_target_dir
overrides the artifact output directory location. -
b:neomake_erlang_erlc_extra_deps
org:neomake_erlang_erlc_extra_deps
By default, the maker finds
include
andebin
subdirectories of applications and libraries under_build/{default,test}/lib
anddeps
in the project's directory. Using buffer local or globalneomake_erlang_erlc_extra_deps
it's possible to specify another directory where dependencies might be placed (for examplelet g:neomake_erlang_erlc_extra_deps = ['_checkouts']
for Rebar3's_checkouts
). For each dependency the maker figures out theinclude
andebin
locations and appends them to the set of paths passed to the compiler.
-
fish:
- fish
Fortran
- gfortran
- ifort
Go:
-
- Should
gometalinter --install
before use, or--vendor
flag won't work properly, see https://github.com/alecthomas/gometalinter/issues/467
- Should
-
go
-
golint
-
go vet
Haskell:
- hlint
- ghc-mod
- hdevtools
- cabal
- liquid (LiquidHaskell)
Stack projects are supported.
Help (Vim help files):
- proselint (not enabled by default)
- vimhelplint (needs manual installation, see contrib/vimhelplint)
- writegood
Idris:
- idris
Java:
- javac
- gradle
- mvn
- sbt
- Consider adding
au BufWritePost *.java Neomake! sbt
to your (global or project-specific).vimrc
.
- Consider adding
JavaScript / ECMAScript:
JSON:
JSX:
-
requires emacs >= 24 with rjsx-mode installed from melpa
- easiest way to install:
emacs --quick --batch --eval="(progn(require 'package) (package-initialize) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/\") t) (setq url-http-attempt-keepalives nil) (package-refresh-contents) (package-install 'rjsx-mode))"
- easiest way to install:
Julia:
Lex:
- flex
Lua:
- luac
- luacheck
Mail:
Markdown:
Matlab:
- mlint
Nim:
- nim
nix:
- nix-instantiate
Objective-C:
- clang
- gcc
- clang-tidy
Perl:
- perlcritic
PHP:
Protocol Buffers:
Pug:
Puppet:
- puppet
- puppet-lint
PureScript:
Python:
- pep8
- flake8
- pyflakes
- pylama
- pylint
- python
- vulture [not enabled by default]
- mypy [not enabled by default]
- py3kwarn [not enabled by default]
reStructuredText (RST, ReST, reST):
Superset of Text
.
-
Sphinx (sphinx-build) (enabled by default if
conf.py
is found).Uses
sphinx.source_dir
config variable to cache the source dir location, which defaults to the parent directory of whereconf.py
is found (it is looked for indocs
anddoc
in the buffer's project root). -
rstlint
-
rstcheck
Ruby:
- mri
- jruby
-
rubocop
- To turn on Rails rules, enable it in your
.rubocop.yml
:Rails: Enabled: true
- To turn on Rails rules, enable it in your
- reek
- rubylint
Rust:
- rustc
-
cargo
- This maker will by default invoke
cargo-check
command. You can configure the exact command, along with its args via theg:neomake_rust_cargo_command
andb:neomake_rust_cargo_command
lists (e.g. to check everything, including test modules, putlet g:neomake_rust_cargo_command = ['test', '--no-run']
in your .vimrc file).
- This maker will by default invoke
-
clippy
- This maker should be
run explicitly using the command
:Neomake! clippy
. It needs a nightly build of Rust, and supports rustup.
- This maker should be
run explicitly using the command
Scala:
- scalac
- scalastyle
- sbt
- Consider adding
au BufWritePost *.scala Neomake! sbt
to your (global or project-specific).vimrc
.
- Consider adding
scss:
Serpent:
sh / Bash (Shell):
- dash (not enabled by default)
- sh
- shellcheck
Slim:
Spec:
Solidity:
Standard ML:
- smlnj
Stylus:
SQL:
Swift:
- swiftc
- swiftpm
-
swiftpmtest (Run tests with SwiftPM, off by default, run manually with
:Neomake swiftpmtest
)
TCL:
- Nagelfar
Tex/Latex:
-
chktex
-
lacheck
-
pdflatex (not enabled by default)
You probably want to configure
-output-directory
when using it (discussion).
Text:
- proselint (not enabled by default)
- writegood (not enabled by default)
TOML:
TypeScript:
- tsc
- tslint
- eslint (not enabled by default, needs typescript-eslint)
Verilog:
- iverilog
VHDL:
Vimscript:
-
It can be installed using npm: node-vimlint.
Or you could create a wrapper script
vimlint
and add it to your PATH:#!/bin/sh /vimlint/bin/vimlint.sh -l /vimlint -p ~/Vcs/vim-vimlparser "$@"
Where
/vimlint
is where you cloned/extracted vimlint.
Vue:
XML:
XSLT:
Yacc:
- bison
YAML:
Zsh:
- shellcheck (not enabled by default, current versions do not support Zsh)
- zsh