This is an automatically generated list of all null-ls built-in sources.
See BUILTIN_CONFIG to learn how to set up and configure these sources.
Injects actions to fix ESLint issues or ignore broken rules.
local sources = { null_ls.builtins.code_actions.eslint }
- Filetypes:
{ "javascript", "javascriptreact", "typescript", "typescriptreact", "vue" }
- Method:
code_action
- Command:
eslint
- Args:
{ "-f", "json", "--stdin", "--stdin-filename", "$FILENAME" }
Injects actions to fix ESLint issues or ignore broken rules. Like ESLint, but faster.
local sources = { null_ls.builtins.code_actions.eslint_d }
- Filetypes:
{ "javascript", "javascriptreact", "typescript", "typescriptreact", "vue" }
- Method:
code_action
- Command:
eslint_d
- Args:
{ "-f", "json", "--stdin", "--stdin-filename", "$FILENAME" }
- Once spawned, the server will continue to run in the background. This is normal and not related to null-ls. You can stop it by running
eslint_d stop
from the command line.
Injects actions to change gitrebase
command (e.g. using squash
instead of pick
).
local sources = { null_ls.builtins.code_actions.gitrebase }
- Filetypes:
{ "gitrebase" }
- Method:
code_action
Injects code actions for Git operations at the current cursor position (stage / preview / reset hunks, blame, etc.).
local sources = { null_ls.builtins.code_actions.gitsigns }
- Filetypes:
{}
- Method:
code_action
An English prose linter. Can fix some issues via code actions.
local sources = { null_ls.builtins.code_actions.proselint }
- Filetypes:
{ "markdown", "tex" }
- Method:
code_action
- Command:
proselint
- Args:
{ "--json" }
The Refactoring library based off the Refactoring book by Martin Fowler.
local sources = { null_ls.builtins.code_actions.refactoring }
- Filetypes:
{ "go", "javascript", "lua", "python", "typescript" }
- Method:
code_action
- Requires visually selecting the code you want to refactor and calling
:'<,'>lua vim.lsp.buf.range_code_action()
(for the default handler) or:'<,'>Telescope lsp_range_code_actions
(for Telescope).
Provides actions to disable ShellCheck errors/warnings, either for the current line or for the entire file.
local sources = { null_ls.builtins.code_actions.shellcheck }
- Filetypes:
{ "sh" }
- Method:
code_action
- Command:
shellcheck
- Args:
{ "--format", "json1", "--source-path=$DIRNAME", "--external-sources", "-" }
- Running the action to disable a rule for the current line adds a disable directive above the line or appends the rule to an existing disable directive for that line.
- Running the action to disable a rule for the current file adds a disable directive at the top of the file or appends the rule to an existing file disable directive.
- The first non-comment line in a script is not eligible for a line-level disable directive. See shellcheck#1877.
Lints and suggestions for the nix programming language.
local sources = { null_ls.builtins.code_actions.statix }
- Filetypes:
{ "nix" }
- Method:
code_action
- Command:
statix
- Args:
{ "check", "--stdin", "--format=json" }
❤️ JavaScript/TypeScript linter (ESLint wrapper) with great defaults
local sources = { null_ls.builtins.code_actions.xo }
- Filetypes:
{ "javascript", "javascriptreact", "typescript", "typescriptreact" }
- Method:
code_action
- Command:
xo
- Args:
{ "--reporter", "json", "--stdin", "--stdin-filename", "$FILENAME" }
Snippet engine for Neovim, written in Lua.
local sources = { null_ls.builtins.completion.luasnip }
- Filetypes:
{}
- Method:
completion
- Registering this source will show available snippets in the completion list, but luasnip is in charge of expanding them. Consult luasnip's documentation to set up keymaps for expansion and jumping.
Spell suggestions completion source.
local sources = { null_ls.builtins.completion.spell }
- Filetypes:
{}
- Method:
completion
Tags completion source.
local sources = { null_ls.builtins.completion.tags }
- Filetypes:
{}
- Method:
completion
Snippets managed by vim-vsnip.
local sources = { null_ls.builtins.completion.vsnip }
- Filetypes:
{}
- Method:
completion
- Registering this source will show available snippets in the completion list, but vim-vsnip is in charge of expanding them. See vim-vsnip's documentation for setup instructions.
Actionlint is a static checker for GitHub Actions workflow files.
local sources = { null_ls.builtins.diagnostics.actionlint }
- Filetypes:
{ "yaml" }
- Method:
diagnostics
- Command:
actionlint
- Args:
{ "-no-color", "-format", "{{json .}}", "-" }
Catch insensitive, inconsiderate writing.
local sources = { null_ls.builtins.diagnostics.alex }
- Filetypes:
{ "markdown" }
- Method:
diagnostics
- Command:
alex
- Args:
{ "--stdin", "--quiet" }
Linter for Ansible playbooks, roles and collections.
local sources = { null_ls.builtins.diagnostics.ansiblelint }
- Filetypes:
{ "yaml.ansible" }
- Method:
diagnostics
- Command:
ansible-lint
- Args:
{ "-f", "codeclimate", "-q", "--nocolor", "$FILENAME" }
A new way of working with Protocol Buffers.
local sources = { null_ls.builtins.diagnostics.buf }
- Filetypes:
{ "proto" }
- Method:
diagnostics_on_save
- Command:
buf
- Args:
{ "lint", "$FILENAME#include_package_files=true" }
buildifier is a tool for formatting and linting bazel BUILD, WORKSPACE, and .bzl files.
local sources = { null_ls.builtins.diagnostics.buildifier }
- Filetypes:
{ "bzl" }
- Method:
diagnostics
- Command:
buildifier
- Args:
{ "-mode=check", "-lint=warn", "-format=json", "-path=$FILENAME" }
Validate AWS CloudFormation yaml/json templates against the AWS CloudFormation Resource Specification
local sources = { null_ls.builtins.diagnostics.cfn_lint }
- Filetypes:
{ "yaml", "json" }
- Method:
diagnostics
- Command:
cfn-lint
- Args:
{ "--format", "parseable", "-" }
- Once a supported file type is opened null-ls will try and determine if the file looks like an AWS Cloudformation template.
- A file will be considered an AWS Cloudformation template if it contains a "Resources" or "AWSTemplateFormatVersion" key.
- To prevent cfn-lint running on all YAML and JSON files that contain a "Resources" key.
- The file must contain at least one AWS Cloudformation Resource Type, e.g "Type": "AWS::S3::Bucket"
- This check will run only once when entering the buffer.
- This means if "Resources" or "AWSTemplateFormatVersion" is added to a file after this check is run, the cfn-lint diagnostics will not be generated.
- To fix this you must restart Neovim.
make
linter.
local sources = { null_ls.builtins.diagnostics.checkmake }
- Filetypes:
{ "make" }
- Method:
diagnostics
- Command:
checkmake
- Args:
{ "--format='{{.LineNumber}}:{{.Rule}}:{{.Violation}}'", "$FILENAME" }
latex
semantic linter.
local sources = { null_ls.builtins.diagnostics.chktex }
- Filetypes:
{ "tex" }
- Method:
diagnostics
- Command:
chktex
- Args:
{ "-q", "-f%l:%c:%d:%k:%n:%m\n" }
A linter for clojure code that sparks joy
local sources = { null_ls.builtins.diagnostics.clj_kondo }
- Filetypes:
{ "clojure" }
- Method:
diagnostics
- Command:
clj-kondo
- Args:
{ "--cache", "--lint", "-", "--filename", "$FILENAME" }
Codespell finds common misspellings in text files.
local sources = { null_ls.builtins.diagnostics.codespell }
- Filetypes:
{}
- Method:
diagnostics
- Command:
codespell
- Args:
{ "-" }
A tool for fast static analysis of C/C++ code.
local sources = { null_ls.builtins.diagnostics.cppcheck }
- Filetypes:
{ "cpp", "c" }
- Method:
diagnostics
- Command:
cppcheck
- Args:
{ "--enable=warning,style,performance,portability", "--template=gcc", "$FILENAME" }
Static analysis of elixir
files for enforcing code consistency.
local sources = { null_ls.builtins.diagnostics.credo }
- Filetypes:
{ "elixir" }
- Method:
diagnostics
- Command:
mix
- Args:
{ "credo", "suggest", "--format", "json", "--read-from-stdin", "$FILENAME" }
- Searches upwards from the buffer to the project root and tries to find the first
.credo.exs
file in case the project has nestedcredo
configs.
cspell is a spell checker for code.
local sources = { null_ls.builtins.diagnostics.cspell }
- Filetypes:
{}
- Method:
diagnostics
- Command:
cspell
- Args: dynamically resolved (see source)
Reports on formatting errors in .cue language files.
local sources = { null_ls.builtins.diagnostics.cue_fmt }
- Filetypes:
{ "cue" }
- Method:
diagnostics
- Command:
cue
- Args:
{ "fmt", "$FILENAME" }
Experimental HTML templates linting for Jinja, Nunjucks, Django templates, Twig, and Liquid.
local sources = { null_ls.builtins.diagnostics.curlylint }
- Filetypes:
{ "jinja.html", "htmldjango" }
- Method:
diagnostics
- Command:
curlylint
- Args:
{ "--quiet", "-", "--format", "json", "--stdin-filepath", "$FILENAME" }
Scan Nix files for dead code.
local sources = { null_ls.builtins.diagnostics.deadnix }
- Filetypes:
{ "nix" }
- Method:
diagnostics
- Command:
deadnix
- Args:
{ "--output-format=json", "$FILENAME" }
✨ 📜 🪄 ✨ HTML Template Linter and Formatter.
local sources = { null_ls.builtins.diagnostics.djlint }
- Filetypes:
{ "django", "jinja.html", "htmldjango" }
- Method:
diagnostics
- Command:
djlint
- Args:
{ "$FILENAME" }
A tool to verify that your files are in harmony with your .editorconfig
.
local sources = { null_ls.builtins.diagnostics.editorconfig_checker }
- Filetypes:
{}
- Method:
diagnostics
- Command:
ec
- Args:
{ "-no-color", "$FILENAME" }
Lint your ERB or HTML files
local sources = { null_ls.builtins.diagnostics.erb_lint }
- Filetypes:
{ "eruby" }
- Method:
diagnostics
- Command:
erblint
- Args:
{ "--format", "json", "--stdin", "$FILENAME" }
A linter for the JavaScript ecosystem.
local sources = { null_ls.builtins.diagnostics.eslint }
- Filetypes:
{ "javascript", "javascriptreact", "typescript", "typescriptreact", "vue" }
- Method:
diagnostics
- Command:
eslint
- Args:
{ "-f", "json", "--stdin", "--stdin-filename", "$FILENAME" }
Like ESLint, but faster.
local sources = { null_ls.builtins.diagnostics.eslint_d }
- Filetypes:
{ "javascript", "javascriptreact", "typescript", "typescriptreact", "vue" }
- Method:
diagnostics
- Command:
eslint_d
- Args:
{ "-f", "json", "--stdin", "--stdin-filename", "$FILENAME" }
- Once spawned, the server will continue to run in the background. This is normal and not related to null-ls. You can stop it by running
eslint_d stop
from the command line.
Basic linting is available for fish scripts using fish --no-execute
.
local sources = { null_ls.builtins.diagnostics.fish }
- Filetypes:
{ "fish" }
- Method:
diagnostics
- Command:
fish
- Args:
{ "--no-execute", "$FILENAME" }
flake8 is a python tool that glues together pycodestyle, pyflakes, mccabe, and third-party plugins to check the style and quality of Python code.
local sources = { null_ls.builtins.diagnostics.flake8 }
- Filetypes:
{ "python" }
- Method:
diagnostics
- Command:
flake8
- Args:
{ "--format", "default", "--stdin-display-name", "$FILENAME", "-" }
gccdiag is a wrapper for any C/C++ compiler (gcc, avr-gcc, arm-none-eabi-gcc, etc) that automatically uses the correct compiler arguments for a file in your project by parsing the compile_commands.json
file at the root of your project.
local sources = { null_ls.builtins.diagnostics.gccdiag }
- Filetypes:
{ "c", "cpp" }
- Method:
diagnostics_on_save
- Command:
gccdiag
- Args:
{ "--default-args", "-S -x $FILEEXT", "-i", "-fdiagnostics-color", "--", "$FILENAME" }
A linter that performs a static analysis on gdscript code according to some predefined configuration.
local sources = { null_ls.builtins.diagnostics.gdlint }
- Filetypes:
{ "gdscript" }
- Method:
diagnostics
- Command:
gdlint
- Args:
{ "$FILENAME" }
Linter for Git commit messages.
local sources = { null_ls.builtins.diagnostics.gitlint }
- Filetypes:
{ "gitcommit" }
- Method:
diagnostics
- Command:
gitlint
- Args:
{ "--msg-filename", "$FILENAME" }
A Go linter aggregator.
local sources = { null_ls.builtins.diagnostics.golangci_lint }
- Filetypes:
{ "go" }
- Method:
diagnostics_on_save
- Command:
golangci-lint
- Args:
{ "run", "--fix=false", "--fast", "--out-format=json", "$DIRNAME", "--path-prefix", "$ROOT" }
A smarter Dockerfile linter that helps you build best practice Docker images.
local sources = { null_ls.builtins.diagnostics.hadolint }
- Filetypes:
{ "dockerfile" }
- Method:
diagnostics
- Command:
hadolint
- Args:
{ "--no-fail", "--format=json", "-" }
Tool for writing clean and consistent HAML.
local sources = { null_ls.builtins.diagnostics.haml_lint }
- Filetypes:
{ "haml" }
- Method:
diagnostics
- Command:
haml-lint
- Args:
{ "--reporter", "json", "$FILENAME" }
A pure JavaScript version of the service provided at jsonlint.com.
local sources = { null_ls.builtins.diagnostics.jsonlint }
- Filetypes:
{ "json" }
- Method:
diagnostics
- Command:
jsonlint
- Args:
{ "--compact" }
An anti-bikeshedding Kotlin linter with built-in formatter.
local sources = { null_ls.builtins.diagnostics.ktlint }
- Filetypes:
{ "kotlin" }
- Method:
diagnostics_on_save
- Command:
ktlint
- Args:
{ "--relative", "--reporter=json" }
A tool for linting and static analysis of Lua code.
local sources = { null_ls.builtins.diagnostics.luacheck }
- Filetypes:
{ "lua" }
- Method:
diagnostics
- Command:
luacheck
- Args:
{ "--formatter", "plain", "--codes", "--ranges", "--filename", "$FILENAME", "-" }
Markdown style and syntax checker.
local sources = { null_ls.builtins.diagnostics.markdownlint }
- Filetypes:
{ "markdown" }
- Method:
diagnostics
- Command:
markdownlint
- Args:
{ "--stdin" }
A tool to check Markdown files and flag style issues.
local sources = { null_ls.builtins.diagnostics.mdl }
- Filetypes:
{ "markdown" }
- Method:
diagnostics
- Command:
mdl
- Args:
{ "--json" }
Checks commonly misspelled English words in source files.
local sources = { null_ls.builtins.diagnostics.misspell }
- Filetypes:
{}
- Method:
diagnostics
- Command:
misspell
Linter for MATLAB files
local sources = { null_ls.builtins.diagnostics.mlint }
- Filetypes:
{ "matlab" }
- Method:
diagnostics_on_save
- Command:
mlint
- Args:
{ "$FILENAME" }
Mypy is an optional static type checker for Python that aims to combine the benefits of dynamic (or "duck") typing and static typing.
local sources = { null_ls.builtins.diagnostics.mypy }
- Filetypes:
{ "python" }
- Method:
diagnostics
- Command:
mypy
- Args: dynamically resolved (see source)
Check Rego source files for parse and compilation errors.
local sources = { null_ls.builtins.diagnostics.opacheck }
- Filetypes:
{ "rego" }
- Method:
diagnostics_on_save
- Command:
opa
- Args:
{ "check", "-f", "json", "--strict", "$ROOT/src/", "$ROOT/test/" }
Uses the php command-line tool's built in -l
flag to check for syntax errors.
local sources = { null_ls.builtins.diagnostics.php }
- Filetypes:
{ "php" }
- Method:
diagnostics
- Command:
php
- Args:
{ "-l", "-d", "display_errors=STDERR", "-d", " log_errors=Off" }
PHP_CodeSniffer is a script that tokenizes PHP, JavaScript and CSS files to detect violations of a defined coding standard.
local sources = { null_ls.builtins.diagnostics.phpcs }
- Filetypes:
{ "php" }
- Method:
diagnostics
- Command:
phpcs
- Args:
{ "--report=json", "-q", "-s", "--runtime-set", "ignore_warnings_on_exit", "1", "--runtime-set", "ignore_errors_on_exit", "1", "--stdin-path=$FILENAME", "-" }
Runs PHP Mess Detector against PHP files.
local sources = { null_ls.builtins.diagnostics.phpmd }
- Filetypes:
{ "php" }
- Method:
diagnostics
- Command:
phpmd
- Args:
{ "$FILENAME", "json" }
PHP static analysis tool.
local sources = { null_ls.builtins.diagnostics.phpstan }
- Filetypes:
{ "php" }
- Method:
diagnostics
- Command:
phpstan
- Args:
{ "analyze", "--error-format", "json", "--no-progress", "$FILENAME" }
- Requires a valid
phpstan.neon
at root. - If in place validation is required set
method
todiagnostics_on_save
andto_temp_file
tofalse
An English prose linter.
local sources = { null_ls.builtins.diagnostics.proselint }
- Filetypes:
{ "markdown", "tex" }
- Method:
diagnostics
- Command:
proselint
- Args:
{ "--json" }
A plug-in for Google's Protocol Buffers (protobufs) compiler to lint .proto files for style violations.
local sources = { null_ls.builtins.diagnostics.protoc_gen_lint }
- Filetypes:
{ "proto" }
- Method:
diagnostics
- Command:
protoc
- Args:
{ "--lint_out", "$FILENAME", "-I", "/tmp", "$FILENAME" }
A pluggable linter and fixer to enforce Protocol Buffer style and conventions.
local sources = { null_ls.builtins.diagnostics.protolint }
- Filetypes:
{ "proto" }
- Method:
diagnostics
- Command:
protolint
- Args:
{ "--reporter", "json", "$FILENAME" }
A static analysis tool for finding errors in PHP applications.
local sources = { null_ls.builtins.diagnostics.psalm }
- Filetypes:
{ "php" }
- Method:
diagnostics
- Command:
psalm
- Args:
{ "--output-format=json", "--no-progress", "$FILENAME" }
An unopinionated and configurable linter and style checker for Pug.
local sources = { null_ls.builtins.diagnostics.puglint }
- Filetypes:
{ "pug" }
- Method:
diagnostics
- Command:
pug-lint
- Args:
{ "--reporter=inline", "$FILENAME" }
Check that your Puppet manifest conforms to the style guide.
local sources = { null_ls.builtins.diagnostics.puppet_lint }
- Filetypes:
{ "puppet", "epuppet" }
- Method:
diagnostics
- Command:
puppet-lint
- Args:
{ "--json", "$FILENAME" }
pydocstyle is a static analysis tool for checking compliance with Python docstring conventions.
local sources = { null_ls.builtins.diagnostics.pydocstyle }
- Filetypes:
{ "python" }
- Method:
diagnostics
- Command:
pydocstyle
- Args:
{ "$FILENAME" }
- May fail to resolve config files. See the wiki for workarounds.
Code audit tool for Python.
local sources = { null_ls.builtins.diagnostics.pylama }
- Filetypes:
{ "python" }
- Method:
diagnostics
- Command:
pylama
- Args:
{ "--from-stdin", "$FILENAME", "-f", "json" }
Pylint is a Python static code analysis tool which looks for programming errors, helps enforcing a coding standard, sniffs for code smells and offers simple refactoring suggestions.
local sources = { null_ls.builtins.diagnostics.pylint }
- Filetypes:
{ "python" }
- Method:
diagnostics
- Command:
pylint
- Args:
{ "--from-stdin", "$FILENAME", "-f", "json" }
pyproject-flake8 is a flake8 wrapper to use with pyproject.toml
configuration.
local sources = { null_ls.builtins.diagnostics.pyproject_flake8 }
- Filetypes:
{ "python" }
- Method:
diagnostics
- Command:
pflake8
- Args:
{ "--format", "default", "--stdin-display-name", "$FILENAME", "-" }
qmllint is a tool shipped with Qt that verifies the syntatic validity of QML files. It also warns about some QML anti-patterns.
local sources = { null_ls.builtins.diagnostics.qmllint }
- Filetypes:
{ "qml" }
- Method:
diagnostics
- Command:
qmllint
- Args:
{ "$FILENAME" }
Fast, configurable, extensible, flexible, and beautiful linter for Go.
local sources = { null_ls.builtins.diagnostics.revive }
- Filetypes:
{ "go" }
- Method:
diagnostics_on_save
- Command:
revive
- Args:
{ "-formatter", "json", "./..." }
extra_args
does not work with this linter, since it does not support additional non-file arguments after the first file or./...
is specified. Overwriteargs
instead.
Command line tool to parse RPM spec files.
local sources = { null_ls.builtins.diagnostics.rpmspec }
- Filetypes:
{ "spec" }
- Method:
diagnostics
- Command:
rpmspec
- Args:
{ "-P", "$FILENAME" }
Checks syntax of reStructuredText and code blocks nested within it.
local sources = { null_ls.builtins.diagnostics.rstcheck }
- Filetypes:
{ "rst" }
- Method:
diagnostics_on_save
- Command:
rstcheck
- Args:
{ "-r", "$DIRNAME" }
The Ruby Linter/Formatter that Serves and Protects.
local sources = { null_ls.builtins.diagnostics.rubocop }
- Filetypes:
{ "ruby" }
- Method:
diagnostics
- Command:
rubocop
- Args:
{ "-f", "json", "--stdin", "$FILENAME" }
Command line tool designed to help write correct and idiomatic Lua code.
local sources = { null_ls.builtins.diagnostics.selene }
- Filetypes:
{ "lua" }
- Method:
diagnostics
- Command:
selene
- Args:
{ "--display-style", "quiet", "-" }
Semgrep is a fast, open-source, static analysis tool for finding bugs and enforcing code standards at editor, commit, and CI time.
local sources = { null_ls.builtins.diagnostics.semgrep }
- Filetypes:
{ "typescript", "typescriptreact", "ruby", "python", "java", "go" }
- Method:
diagnostics
- Command:
semgrep
- Args:
{ "-q", "--json", "$FILENAME" }
A shell script static analysis tool.
local sources = { null_ls.builtins.diagnostics.shellcheck }
- Filetypes:
{ "sh" }
- Method:
diagnostics
- Command:
shellcheck
- Args:
{ "--format", "json1", "--source-path=$DIRNAME", "--external-sources", "-" }
An open source project for linting Solidity code. It provides both security and style guide validations.
local sources = { null_ls.builtins.diagnostics.solhint }
- Filetypes:
{ "solidity" }
- Method:
diagnostics
- Command:
solhint
- Args:
{ "$FILENAME", "--formatter", "unix" }
A SQL linter and auto-formatter for Humans
local sources = {
null_ls.builtins.diagnostics.sqlfluff.with({
extra_args = {"--dialect", "postgres"} -- change to your dialect
})
}
- Filetypes:
{ "sql" }
- Method:
diagnostics
- Command:
sqlfluff
- Args:
{ "lint", "-f", "github-annotation", "-n", "--disable_progress_bar", "-" }
- SQLFluff needs a mandatory
--dialect
argument. Useextra_args
to add yours.extra_args
can also be a function to build more sophisticated logic.
JavaScript style guide, linter, and formatter.
local sources = { null_ls.builtins.diagnostics.standardjs }
- Filetypes:
{ "javascript", "javascriptreact" }
- Method:
diagnostics
- Command:
standard
- Args:
{ "--stdin" }
Ruby style guide, linter, and formatter.
local sources = { null_ls.builtins.diagnostics.standardrb }
- Filetypes:
{ "ruby" }
- Method:
diagnostics
- Command:
standardrb
- Args:
{ "--no-fix", "-f", "json", "--stdin", "$FILENAME" }
Advanced Go linter.
local sources = { null_ls.builtins.diagnostics.staticcheck }
- Filetypes:
{ "go" }
- Method:
diagnostics_on_save
- Command:
staticcheck
- Args:
{ "-f", "json", "./..." }
extra_args
does not work with this linter, since it does not support additional non-file arguments after the first file or./...
is specified. Overwriteargs
instead.
Lints and suggestions for the Nix programming language.
local sources = { null_ls.builtins.diagnostics.statix }
- Filetypes:
{ "nix" }
- Method:
diagnostics
- Command:
statix
- Args:
{ "check", "--stdin", "--format=errfmt" }
A mighty, modern linter that helps you avoid errors and enforce conventions in your styles.
local sources = { null_ls.builtins.diagnostics.stylelint }
- Filetypes:
{ "scss", "less", "css", "sass" }
- Method:
diagnostics
- Command:
stylelint
- Args:
{ "--formatter", "json", "--stdin-filename", "$FILENAME" }
A linter for the Stylus CSS preprocessor.
local sources = { null_ls.builtins.diagnostics.stylint }
- Filetypes:
{ "stylus" }
- Method:
diagnostics
- Command:
stylint
- Args:
{ "$FILENAME" }
The compiler for Teal, a typed dialect of Lua.
local sources = { null_ls.builtins.diagnostics.teal }
- Filetypes:
{ "teal" }
- Method:
diagnostics
- Command:
tl
- Args:
{ "check", "$FILENAME" }
The pluggable linting tool for text and Markdown.
local sources = { null_ls.builtins.diagnostics.textlint }
- Filetypes:
{}
- Method:
diagnostics
- Command:
textlint
- Args:
{ "-f", "json", "--stdin", "--stdin-filename", "$FILENAME" }
Tidy corrects and cleans up HTML and XML documents by fixing markup errors and upgrading legacy code to modern standards.
local sources = { null_ls.builtins.diagnostics.tidy }
- Filetypes:
{ "html", "xml" }
- Method:
diagnostics
- Command:
tidy
- Args: dynamically resolved (see source)
Uses inbuilt Lua code to detect lines with trailing whitespace and show a diagnostic warning on each line where it's present.
local sources = { null_ls.builtins.diagnostics.trail_space }
- Filetypes:
{}
- Method:
diagnostics
Parses diagnostics from the TypeScript compiler.
local sources = { null_ls.builtins.diagnostics.tsc }
- Filetypes:
{ "typescript", "typescriptreact" }
- Method:
diagnostics_on_save
- Command:
tsc
- Args:
{ "--pretty", "false", "--noEmit" }
Runs Twigcs against Twig files.
local sources = { null_ls.builtins.diagnostics.twigcs }
- Filetypes:
{ "twig" }
- Method:
diagnostics
- Command:
twigcs
- Args:
{ "--reporter", "json", "$FILENAME" }
Syntax-aware linter for prose built with speed and extensibility in mind.
local sources = { null_ls.builtins.diagnostics.vale }
- Filetypes:
{ "markdown", "tex", "asciidoc" }
- Method:
diagnostics
- Command:
vale
- Args: dynamically resolved (see source)
- vale does not include a syntax by itself, so you probably need to grab a
vale.ini
(at~/.vale.ini
) and a StylesPath (somewhere, pointed fromvale.ini
) from the list of configurations.
Linter for Vimscript.
local sources = { null_ls.builtins.diagnostics.vint }
- Filetypes:
{ "vim" }
- Method:
diagnostics
- Command:
vint
- Args:
{ "--style-problem", "--json", "$FILENAME" }
Vulture finds unused code in Python programs.
local sources = { null_ls.builtins.diagnostics.vulture }
- Filetypes:
{ "python" }
- Method:
diagnostics
- Command:
vulture
- Args:
{ "$FILENAME" }
English prose linter.
local sources = { null_ls.builtins.diagnostics.write_good }
- Filetypes:
{ "markdown" }
- Method:
diagnostics
- Command:
write-good
- Args:
{ "--text=$TEXT", "--parse" }
❤️ JavaScript/TypeScript linter (ESLint wrapper) with great defaults.
local sources = { null_ls.builtins.diagnostics.xo }
- Filetypes:
{ "javascript", "javascriptreact", "typescript", "typescriptreact" }
- Method:
diagnostics
- Command:
xo
- Args:
{ "--reporter", "json", "--stdin", "--stdin-filename", "$FILENAME" }
A linter for YAML files.
local sources = { null_ls.builtins.diagnostics.yamllint }
- Filetypes:
{ "yaml" }
- Method:
diagnostics
- Command:
yamllint
- Args:
{ "--format", "parsable", "-" }
Uses zsh's own -n option to evaluate, but not execute, zsh scripts. Effectively, this acts somewhat like a linter, although it only really checks for serious errors - and will likely only show the first error.
local sources = { null_ls.builtins.diagnostics.zsh }
- Filetypes:
{ "zsh" }
- Method:
diagnostics
- Command:
zsh
- Args:
{ "-n", "$FILENAME" }
The Uncompromising Nix Code Formatter
local sources = { null_ls.builtins.formatting.alejandra }
- Filetypes:
{ "nix" }
- Method:
formatting
- Command:
alejandra
- Args:
{ "--quiet" }
Format your assembler code in a similar way that gofmt
formats your go
code.
local sources = { null_ls.builtins.formatting.asmfmt }
- Filetypes:
{ "asm" }
- Method:
formatting
- Command:
asmfmt
Artistic Style is a source code indenter, formatter, and beautifier for the C, C++, C++/CLI, Objective‑C, C# and Java programming languages. This formatter works well for Arduino project files and is the same formatter used in the Arduino IDE.
local sources = { null_ls.builtins.formatting.astyle }
- Filetypes:
{ "arduino", "c", "cpp", "cs", "java" }
- Method:
formatting
- Command:
astyle
- Args:
{ "--quiet" }
A tool that automatically formats Python code to conform to the PEP 8 style guide.
local sources = { null_ls.builtins.formatting.autopep8 }
- Filetypes:
{ "python" }
- Methods:
formatting, range_formatting
- Command:
autopep8
- Args: dynamically resolved (see source)
This pure text processing tool will reformat beancount
input to right-align all the numbers at the same, minimal column.
local sources = { null_ls.builtins.formatting.bean_format }
- Filetypes:
{ "beancount" }
- Method:
formatting
- Command:
bean-format
- It left-aligns all the currencies.
- It only modifies whitespace.
A portable program (written in C) that will pretty-print, syntax check, and generally sort out a BibTeX database file.
local sources = { null_ls.builtins.formatting.bibclean }
- Filetypes:
{ "bib" }
- Method:
formatting
- Command:
bibclean
- Args:
{ "-align-equals", "-delete-empty-values" }
- See bibclean: prettyprint and syntax check BibTeX and Scribe bibliography data base files for latest version.
The uncompromising Python code formatter
local sources = { null_ls.builtins.formatting.black }
- Filetypes:
{ "python" }
- Method:
formatting
- Command:
black
- Args:
{ "--stdin-filename", "$FILENAME", "--quiet", "-" }
Blue -- Some folks like black but I prefer blue.
local sources = { null_ls.builtins.formatting.blue }
- Filetypes:
{ "python" }
- Method:
formatting
- Command:
blue
- Args:
{ "--stdin-filename", "$FILENAME", "--quiet", "-" }
haskell source code formatter
local sources = { null_ls.builtins.formatting.brittany }
- Filetypes:
{ "haskell" }
- Method:
formatting
- Command:
brittany
A new way of working with Protocol Buffers.
local sources = { null_ls.builtins.formatting.buf }
- Filetypes:
{ "proto" }
- Method:
formatting
- Command:
buf
- Args:
{ "format", "-w", "$FILENAME" }
buildifier is a tool for formatting and linting bazel BUILD, WORKSPACE, and .bzl files.
local sources = { null_ls.builtins.formatting.buildifier }
- Filetypes:
{ "bzl" }
- Method:
formatting
- Command:
buildifier
- Args:
{ "-path=$FILENAME" }
Format .cabal files preserving the original field ordering, and comments.
local sources = { null_ls.builtins.formatting.cabal_fmt }
- Filetypes:
{ "cabal" }
- Method:
formatting
- Command:
cabal-fmt
Tool to format C/C++/… code according to a set of rules and heuristics.
local sources = { null_ls.builtins.formatting.clang_format }
- Filetypes:
{ "c", "cpp", "cs", "java", "cuda" }
- Methods:
formatting, range_formatting
- Command:
clang-format
- Args: dynamically resolved (see source)
Formatter for Clojure code.
local sources = { null_ls.builtins.formatting.cljstyle }
- Filetypes:
{ "clojure" }
- Method:
formatting
- Command:
cljstyle
- Args:
{ "pipe" }
Parse cmake listfiles and format them nicely.
local sources = { null_ls.builtins.formatting.cmake_format }
- Filetypes:
{ "cmake" }
- Method:
formatting
- Command:
cmake-format
- Args:
{ "-" }
Fix common misspellings in text files.
local sources = { null_ls.builtins.formatting.codespell }
- Filetypes:
{}
- Method:
formatting
- Command:
codespell
- Args:
{ "--write-changes", "$FILENAME" }
A tool for automatically checking and correcting the style of code in a project.
local sources = { null_ls.builtins.formatting.crystal_format }
- Filetypes:
{ "crystal" }
- Method:
formatting
- Command:
crystal
- Args:
{ "tool", "format" }
A CUE language formatter.
local sources = { null_ls.builtins.formatting.cue_fmt }
- Filetypes:
{ "cue" }
- Method:
formatting
- Command:
cue
- Args:
{ "fmt", "$FILENAME" }
Replace the whitespace in your program with formatting that follows Dart guidelines.
local sources = { null_ls.builtins.formatting.dart_format }
- Filetypes:
{ "dart" }
- Method:
formatting
- Command:
dart
- Args:
{ "format" }
Use Deno to format TypeScript and JavaScript code.
local sources = { null_ls.builtins.formatting.deno_fmt }
- Filetypes:
{ "javascript", "javascriptreact", "typescript", "typescriptreact" }
- Method:
formatting
- Command:
deno
- Args:
{ "fmt", "-" }
Formatter for D source code.
local sources = { null_ls.builtins.formatting.dfmt }
- Filetypes:
{ "d" }
- Method:
formatting
- Command:
dfmt
A pure-Python Django/Jinja template indenter without dependencies.
local sources = { null_ls.builtins.formatting.djhtml }
- Filetypes:
{ "django", "jinja.html", "htmldjango" }
- Method:
formatting
- Command:
djhtml
✨ 📜 🪄 ✨ HTML Template Linter and Formatter.
local sources = { null_ls.builtins.formatting.djlint }
- Filetypes:
{ "django", "jinja.html", "htmldjango" }
- Method:
formatting
- Command:
djlint
- Args:
{ "--reformat", "-" }
elm-format formats Elm source code according to a standard set of rules based on the official Elm Style Guide.
local sources = { null_ls.builtins.formatting.elm_format }
- Filetypes:
{ "elm" }
- Method:
formatting
- Command:
elm-format
- Args:
{ "--stdin" }
Lint your ERB or HTML files
local sources = { null_ls.builtins.formatting.erb_lint }
- Filetypes:
{ "eruby" }
- Method:
formatting
- Command:
erblint
- Args:
{ "--autocorrect", "--stdin", "$FILENAME" }
An opinionated Erlang code formatter.
local sources = { null_ls.builtins.formatting.erlfmt }
- Filetypes:
{ "erlang" }
- Method:
formatting
- Command:
erlfmt
- Args:
{ "-" }
Find and fix problems in your JavaScript code.
local sources = { null_ls.builtins.formatting.eslint }
- Filetypes:
{ "javascript", "javascriptreact", "typescript", "typescriptreact", "vue" }
- Method:
formatting
- Command:
eslint
- Args:
{ "--fix-dry-run", "--format", "json", "--stdin", "--stdin-filename", "$FILENAME" }
- Slow and not suitable for formatting on save. If at all possible, use eslint_d.
Like ESLint, but faster.
local sources = { null_ls.builtins.formatting.eslint_d }
- Filetypes:
{ "javascript", "javascriptreact", "typescript", "typescriptreact", "vue" }
- Method:
formatting
- Command:
eslint_d
- Args:
{ "--fix-to-stdout", "--stdin", "--stdin-filename", "$FILENAME" }
- Once spawned, the server will continue to run in the background. This is normal and not related to null-ls. You can stop it by running
eslint_d stop
from the command line.
Indent or otherwise prettify a piece of fish code.
local sources = { null_ls.builtins.formatting.fish_indent }
- Filetypes:
{ "fish" }
- Method:
formatting
- Command:
fish_indent
A JSON file fixer/formatter for humans using (relaxed) JSON5.
local sources = { null_ls.builtins.formatting.fixjson }
- Filetypes:
{ "json" }
- Method:
formatting
- Command:
fixjson
fnlfmt is a Fennel code formatter which follows established Lisp conventions when determining how to format a given piece of code.
local sources = { null_ls.builtins.formatting.fnlfmt }
- Filetypes:
{ "fennel", "fnl" }
- Method:
formatting
- Command:
fnlfmt
- Args:
{ "-" }
Format R code automatically.
local sources = { null_ls.builtins.formatting.format_r }
- Filetypes:
{ "r", "rmd" }
- Method:
formatting
- Command:
R
- Args: dynamically resolved (see source)
Fourmolu is a formatter for Haskell source code.
local sources = { null_ls.builtins.formatting.fourmolu }
- Filetypes:
{ "haskell" }
- Method:
formatting
- Command:
fourmolu
fprettify is an auto-formatter for modern Fortran code that imposes strict whitespace formatting, written in Python.
local sources = { null_ls.builtins.formatting.fprettify }
- Filetypes:
{ "fortran" }
- Method:
formatting
- Command:
fprettify
- Args:
{ "--silent" }
A formatter for Godot's gdscript
local sources = { null_ls.builtins.formatting.gdformat }
- Filetypes:
{ "gd", "gdscript", "gdscript3" }
- Method:
formatting
- Command:
gdformat
- Args:
{ "-" }
Formats go programs.
local sources = { null_ls.builtins.formatting.gofmt }
- Filetypes:
{ "go" }
- Method:
formatting
- Command:
gofmt
- It uses tabs for indentation and blanks for alignment.
- Aligntment assumes that the editor is using a fixed-width font.
Enforce a stricter format than gofmt, while being backwards compatible. That is, gofumpt is happy with a subset of the formats that gofmt is happy with.
local sources = { null_ls.builtins.formatting.gofumpt }
- Filetypes:
{ "go" }
- Method:
formatting
- Command:
gofumpt
Updates your Go import lines, adding missing ones and removing unreferenced ones.
local sources = { null_ls.builtins.formatting.goimports }
- Filetypes:
{ "go" }
- Method:
formatting
- Command:
goimports
- Args:
{ "-srcdir", "$DIRNAME" }
Applies a base formatter (eg. goimports or gofmt), then shortens long lines of code.
local sources = { null_ls.builtins.formatting.golines }
- Filetypes:
{ "go" }
- Method:
formatting
- Command:
golines
Reformats Java source code according to Google Java Style.
local sources = { null_ls.builtins.formatting.google_java_format }
- Filetypes:
{ "java" }
- Method:
formatting
- Command:
google-java-format
- Args:
{ "-" }
Python utility / library to sort imports alphabetically and automatically separate them into sections and by type.
local sources = { null_ls.builtins.formatting.isort }
- Filetypes:
{ "python" }
- Method:
formatting
- Command:
isort
- Args:
{ "--stdout", "--filename", "$FILENAME", "-" }
joker is a small Clojure interpreter, linter and formatter written in Go.
local sources = { null_ls.builtins.formatting.joker }
- Filetypes:
{ "clj" }
- Method:
formatting
- Command:
joker
- Args:
{ "--format", "-" }
Command-line JSON processor
local sources = { null_ls.builtins.formatting.jq }
- Filetypes:
{ "json" }
- Method:
formatting
- Command:
jq
Provides a simple command line interface to validate and pretty-print JSON objects.
local sources = { null_ls.builtins.formatting.json_tool }
- Filetypes:
{ "json" }
- Method:
formatting
- Command:
python
- Args:
{ "-m", "json.tool" }
An anti-bikeshedding Kotlin linter with built-in formatter.
local sources = { null_ls.builtins.formatting.ktlint }
- Filetypes:
{ "kotlin" }
- Method:
formatting
- Command:
ktlint
- Args:
{ "--format", "--stdin" }
A perl script for formatting LaTeX files that is generally included in major TeX distributions.
local sources = { null_ls.builtins.formatting.latexindent }
- Filetypes:
{ "tex" }
- Method:
formatting
- Command:
latexindent
- Args:
{ "-" }
Reformats your Lua source code.
local sources = { null_ls.builtins.formatting.lua_format }
- Filetypes:
{ "lua" }
- Method:
formatting
- Command:
lua-format
- Args:
{ "-i" }
A Node.js style checker and lint tool for Markdown/CommonMark files.
local sources = { null_ls.builtins.formatting.markdownlint }
- Filetypes:
{ "markdown" }
- Method:
formatting
- Command:
markdownlint
- Args:
{ "--fix", "$FILENAME" }
- Can fix some (but not all!) markdownlint issues. If possible, use Prettier, which can also fix Markdown files.
An opinionated Markdown formatter that can be used to enforce a consistent style in Markdown files
local sources = { null_ls.builtins.formatting.mdformat }
- Filetypes:
{ "markdown" }
- Method:
formatting
- Command:
mdformat
- Args:
{ "$FILENAME" }
- Mdformat offers an extensible plugin system for both code fence content formatting and Markdown parser extensions (like GFM tables). A comprehensive list of plugins is documented here
Build tool that provides tasks for creating, compiling, and testing elixir projects, managing its dependencies, and more.
local sources = { null_ls.builtins.formatting.mix }
- Filetypes:
{ "elixir" }
- Method:
formatting
- Command:
mix
- Args:
{ "format", "-" }
Beautifies and formats nginx configuration files.
local sources = { null_ls.builtins.formatting.nginx_beautifier }
- Filetypes:
{ "nginx" }
- Method:
formatting
- Command:
nginxbeautifier
- Args:
{ "-i", "-o", "$FILENAME" }
nimpretty is a Nim source code beautifier, to format code according to the official style guide.
local sources = { null_ls.builtins.formatting.nimpretty }
- Filetypes:
{ "nim" }
- Method:
formatting
- Command:
nimpretty
- Args:
{ "$FILENAME" }
nixfmt is a formatter for Nix code, intended to apply a uniform style.
local sources = { null_ls.builtins.formatting.nixfmt }
- Filetypes:
{ "nix" }
- Method:
formatting
- Command:
nixfmt
nixpkgs-fmt is a Nix code formatter for nixpkgs.
local sources = { null_ls.builtins.formatting.nixpkgs_fmt }
- Filetypes:
{ "nix" }
- Method:
formatting
- Command:
nixpkgs-fmt
perl script which indents and reformats perl scripts to make them easier to read. If you write perl scripts, or spend much time reading them, you will probably find it useful.
local sources = { null_ls.builtins.formatting.perltidy }
- Filetypes:
{ "perl" }
- Method:
formatting
- Command:
perltidy
- Args:
{ "-q" }
PostgreSQL SQL syntax beautifier
local sources = { null_ls.builtins.formatting.pg_format }
- Filetypes:
{ "sql", "pgsql" }
- Method:
formatting
- Command:
pg_format
Tokenizes PHP files and detects violations of a defined set of coding standards.
local sources = { null_ls.builtins.formatting.phpcbf }
- Filetypes:
{ "php" }
- Method:
formatting
- Command:
phpcbf
- Args:
{ "-q", "--stdin-path=$FILENAME", "-" }
Formatter for php files.
local sources = { null_ls.builtins.formatting.phpcsfixer }
- Filetypes:
{ "php" }
- Method:
formatting
- Command:
php-cs-fixer
- Args:
{ "--no-interaction", "--quiet", "fix", "$FILENAME" }
Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.
local sources = { null_ls.builtins.formatting.prettier }
- Filetypes:
{ "javascript", "javascriptreact", "typescript", "typescriptreact", "vue", "css", "scss", "less", "html", "json", "jsonc", "yaml", "markdown", "graphql", "handlebars" }
- Methods:
formatting, range_formatting
- Command:
prettier
- Args: dynamically resolved (see source)
- Supports more filetypes such as Svelte and TOML via plugins. These filetypes are not enabled by default, but you can follow the instructions here to define your own list of filetypes.
- To increase speed, you may want to try prettierd. You can also set up eslint-plugin-prettier and format via eslint_d.
prettier, as a daemon, for ludicrous formatting speed.
local sources = { null_ls.builtins.formatting.prettierd }
- Filetypes:
{ "javascript", "javascriptreact", "typescript", "typescriptreact", "vue", "css", "scss", "less", "html", "json", "jsonc", "yaml", "markdown", "graphql", "handlebars" }
- Method:
formatting
- Command:
prettierd
- Args:
{ "$FILENAME" }
Makes prettier fast.
local sources = { null_ls.builtins.formatting.prettier_d_slim }
- Filetypes:
{ "javascript", "javascriptreact", "typescript", "typescriptreact", "vue", "css", "scss", "less", "html", "json", "jsonc", "yaml", "markdown", "graphql", "handlebars" }
- Methods:
formatting, range_formatting
- Command:
prettier_d_slim
- Args: dynamically resolved (see source)
- May not work on some filetypes.
prettierd
is more stable and recommended.
Formats with Prettier and lints with ESLint+Standard! (✿◠‿◠)
local sources = { null_ls.builtins.formatting.prettier_standard }
- Filetypes:
{ "javascript", "javascriptreact" }
- Method:
formatting
- Command:
prettier-standard
- Args:
{ "--stdin" }
Formatter for the prisma filetype.
local sources = { null_ls.builtins.formatting.prismaFmt }
- Filetypes:
{ "prisma" }
- Method:
formatting
- Command:
prisma-fmt
- Args:
{ "format", "-i", "$FILENAME" }
A pluggable linter and fixer to enforce Protocol Buffer style and conventions.
local sources = { null_ls.builtins.formatting.protolint }
- Filetypes:
{ "proto" }
- Method:
formatting
- Command:
protolint
- Args:
{ "--fix", "$FILENAME" }
The FPC Pascal configurable source beautifier. Name means 'Pascal-TO-Pascal'.
local sources = { null_ls.builtins.formatting.ptop }
- Filetypes:
{ "pascal", "delphi" }
- Method:
formatting
- Command:
ptop
- Args:
{ "$FILENAME", "$FILENAME" }
Check that your Puppet manifest conforms to the style guide
local sources = { null_ls.builtins.formatting.puppet_lint }
- Filetypes:
{ "puppet", "epuppet" }
- Method:
formatting
- Command:
puppet-lint
- Args:
{ "--fix", "$FILENAME" }
qmlformat is a tool that automatically formats QML files according to the QML Coding Conventions.
local sources = { null_ls.builtins.formatting.qmlformat }
- Filetypes:
{ "qml" }
- Method:
formatting
- Command:
qmlformat
- Args:
{ "-i", "$FILENAME" }
The fmt package provides an extensible tool to format Racket code, using an expressive pretty printer library to compute the optimal layout.
local sources = { null_ls.builtins.formatting.raco_fmt }
- Filetypes:
{ "racket" }
- Method:
formatting
- Command:
raco
- Args:
{ "fmt" }
- Requires Racket 8.0 or later
- Install with
raco pkg install fmt
remark is an extensive and complex Markdown formatter/prettifier.
local sources = { null_ls.builtins.formatting.remark }
- Filetypes:
{ "markdown" }
- Method:
formatting
- Command:
remark
- Args:
{ "--no-color", "--silent" }
- Depends on remark-cli.
Tool for automatically reordering python imports. Similar to isort but uses static analysis more.
local sources = { null_ls.builtins.formatting.reorder_python_imports }
- Filetypes:
{ "python" }
- Method:
formatting
- Command:
reorder-python-imports
- Args:
{ "-", "--exit-zero-even-if-changed" }
The ReScript format builtin.
local sources = { null_ls.builtins.formatting.rescript }
- Filetypes:
{ "rescript" }
- Method:
formatting
- Command:
rescript
- Args: dynamically resolved (see source)
Formatter, linter, bundler, and more for JavaScript, TypeScript, JSON, HTML, Markdown, and CSS.
local sources = { null_ls.builtins.formatting.rome }
- Filetypes:
{ "javascript", "typescript" }
- Method:
formatting
- Command:
rome
- Args:
{ "format", "--write", "$FILENAME" }
- Currently support only JavaScript and TypeScript. See status here
Ruby static code analyzer and formatter, based on the community Ruby style guide.
local sources = { null_ls.builtins.formatting.rubocop }
- Filetypes:
{ "ruby" }
- Method:
formatting
- Command:
rubocop
- Args:
{ "--auto-correct", "-f", "quiet", "--stderr", "--stdin", "$FILENAME" }
Opinionated ruby formatter.
local sources = { null_ls.builtins.formatting.rufo }
- Filetypes:
{ "ruby" }
- Method:
formatting
- Command:
rufo
- Args:
{ "-x" }
A tool for formatting rust code according to style guidelines.
local sources = { null_ls.builtins.formatting.rustfmt }
- Filetypes:
{ "rust" }
- Method:
formatting
- Command:
rustfmt
- Args:
{ "--emit=stdout" }
--edition
defaults to2015
. To set a different edition, useextra_args
.- See the wiki for other workarounds.
CLI for organizing Tailwind CSS classes.
local sources = { null_ls.builtins.formatting.rustywind }
- Filetypes:
{ "javascript", "javascriptreact", "typescript", "typescriptreact", "vue", "svelte", "html" }
- Method:
formatting
- Command:
rustywind
- Args:
{ "--stdin" }
Code formatter for Scala
local sources = { null_ls.builtins.formatting.scalafmt }
- Filetypes:
{ "scala" }
- Method:
formatting
- Command:
scalafmt
- Args:
{ "--stdin" }
Hardens shell scripts by quoting variables, replacing function_call
with $(function_call)
, and more.
local sources = { null_ls.builtins.formatting.shellharden }
- Filetypes:
{ "sh" }
- Method:
formatting
- Command:
shellharden
- Args:
{ "--transform", "" }
A shell parser, formatter, and interpreter with bash
support.
local sources = { null_ls.builtins.formatting.shfmt }
- Filetypes:
{ "sh" }
- Method:
formatting
- Command:
shfmt
- Args:
{ "-filename", "$FILENAME" }
A SQL linter and auto-formatter for Humans
local sources = {
null_ls.builtins.formatting.sqlfluff.with({
extra_args = {"--dialect", "postgres"} -- change to your dialect
})
}
- Filetypes:
{ "sql" }
- Method:
formatting
- Command:
sqlfluff
- Args:
{ "fix", "--disable_progress_bar", "-f", "-n", "-" }
- SQLFluff needs a mandatory
--dialect
argument. Useextra_args
to add yours.extra_args
can also be a function to build more sophisticated logic.
The sqlformat command-line tool can reformat SQL files according to specified options.
local sources = { null_ls.builtins.formatting.sqlformat }
- Filetypes:
{ "sql" }
- Method:
formatting
- Command:
sqlformat
- Args:
{ "-" }
A whitespace formatter for different query languages
local sources = { null_ls.builtins.formatting.sql_formatter }
- Filetypes:
{ "sql" }
- Method:
formatting
- Command:
sql-formatter
JavaScript Standard Style, a no-configuration automatic code formatter that just works.
local sources = { null_ls.builtins.formatting.standardjs }
- Filetypes:
{ "javascript", "javascriptreact" }
- Method:
formatting
- Command:
standard
- Args:
{ "--stdin", "--fix" }
Ruby Style Guide, with linter & automatic code fixer. Based on Rubocop.
local sources = { null_ls.builtins.formatting.standardrb }
- Filetypes:
{ "ruby" }
- Method:
formatting
- Command:
standardrb
- Args:
{ "--fix", "--format", "quiet", "--stderr", "--stdin", "$FILENAME" }
A mighty, modern linter that helps you avoid errors and enforce conventions in your styles.
local sources = { null_ls.builtins.formatting.stylelint }
- Filetypes:
{ "scss", "less", "css", "sass" }
- Method:
formatting
- Command:
stylelint
- Args:
{ "--fix", "--stdin", "--stdin-filename", "$FILENAME" }
Non-invasive pretty printing of R code.
local sources = { null_ls.builtins.formatting.styler }
- Filetypes:
{ "r", "rmd" }
- Method:
formatting
- Command:
R
- Args: dynamically resolved (see source)
An opinionated code formatter for Lua.
local sources = { null_ls.builtins.formatting.stylua }
- Filetypes:
{ "lua" }
- Methods:
formatting, range_formatting
- Command:
stylua
- Args: dynamically resolved (see source)
A code formatter for Surface, the server-side rendering component library for Phoenix.
local sources = { null_ls.builtins.formatting.surface }
- Filetypes:
{ "elixir", "surface" }
- Method:
formatting
- Command:
mix
- Args:
{ "surface.format", "-" }
SwiftFormat is a code library and command-line tool for reformatting swift
code on macOS or Linux.
local sources = { null_ls.builtins.formatting.swiftformat }
- Filetypes:
{ "swift" }
- Method:
formatting
- Command:
swiftformat
- Args:
{ "--stdinpath", "$FILENAME" }
A versatile, feature-rich TOML toolkit.
local sources = { null_ls.builtins.formatting.taplo }
- Filetypes:
{ "toml" }
- Method:
formatting
- Command:
taplo
- Args:
{ "format", "-" }
The terrafmt command formats terraform
blocks embedded in Markdown files.
local sources = { null_ls.builtins.formatting.terrafmt }
- Filetypes:
{ "markdown" }
- Method:
formatting
- Command:
terrafmt
- Args:
{ "fmt", "$FILENAME" }
The terraform-fmt command rewrites terraform
configuration files to a canonical format and style.
local sources = { null_ls.builtins.formatting.terraform_fmt }
- Filetypes:
{ "terraform", "tf" }
- Method:
formatting
- Command:
terraform
- Args:
{ "fmt", "-" }
Tidy corrects and cleans up HTML and XML documents by fixing markup errors and upgrading legacy code to modern standards.
local sources = { null_ls.builtins.formatting.tidy }
- Filetypes:
{ "html", "xml" }
- Method:
formatting
- Command:
tidy
- Args:
{ "--tidy-mark", "no", "-quiet", "-indent", "-wrap", "-" }
A simple wrapper around awk
to remove trailing newlines.
local sources = { null_ls.builtins.formatting.trim_newlines }
- Filetypes:
{}
- Method:
formatting
- Command:
awk
- Args:
{ 'NF{print s $0; s=""; next} {s=s ORS}' }
A simple wrapper around awk
to remove trailing whitespace.
local sources = { null_ls.builtins.formatting.trim_whitespace }
- Filetypes:
{}
- Method:
formatting
- Command:
awk
- Args:
{ '{ sub(/[ \t]+$/, ""); print }' }
A source code beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and Vala.
local sources = { null_ls.builtins.formatting.uncrustify }
- Filetypes:
{ "c", "cpp", "cs", "java" }
- Method:
formatting
- Command:
uncrustify
- Args: dynamically resolved (see source)
Safe, minimal import sorting for Python projects.
local sources = { null_ls.builtins.formatting.usort }
- Filetypes:
{ "python" }
- Method:
formatting
- Command:
usort
- Args:
{ "format", "-" }
The verible-verilog-format formatter manages whitespace in accordance with a particular style. The main goal is to relieve humans of having to manually manage whitespace, wrapping, and indentation, and to provide a tool that can be integrated into any editor to enable editor-independent consistency.
local sources = { null_ls.builtins.formatting.verible_verilog_format }
- Filetypes:
{ "verilog", "systemverilog" }
- Method:
formatting
- Command:
verible-verilog-format
- Args:
{ "--stdin_name", "$FILENAME", "-" }
Despite the name, xmllint can be used to format XML files as well as lint them, and that's the mode this builtin is using.
local sources = { null_ls.builtins.formatting.xmllint }
- Filetypes:
{ "xml" }
- Method:
formatting
- Command:
xmllint
- Args:
{ "--format", "-" }
Formatter for Python.
local sources = { null_ls.builtins.formatting.yapf }
- Filetypes:
{ "python" }
- Methods:
formatting, range_formatting
- Command:
yapf
- Args: dynamically resolved (see source)
Reformat Zig source into canonical form.
local sources = { null_ls.builtins.formatting.zigfmt }
- Filetypes:
{ "zig" }
- Method:
formatting
- Command:
zig
- Args:
{ "fmt", "--stdin" }
Beautifully format Clojure and Clojurescript source code and s-expressions.
local sources = { null_ls.builtins.formatting.zprint }
- Filetypes:
{ "clojure" }
- Method:
formatting
- Command:
zprint
- Requires that
zprint
is executable and on $PATH.
Shows the first available definition for the current word under the cursor.
local sources = { null_ls.builtins.hover.dictionary }
- Filetypes:
{ "text", "markdown" }
- Method:
hover
- Depends on Plenary's
curl
module, which itself depends on havingcurl
installed and available on your$PATH
.