version 2: support npm v7 or later. When you using with npm before v7, use version 1(tag v1, v1.0, v1.0.0 or some upper/branch release/v1).
vim lsp client - efm-langserver link and configure settings.
ex. with vim-lsp
plugin
[[plugins]]
repo = 'tsuyoshicho/vim-efm-langserver-settings'
depends = ['vim-lsp']
NOTE: If you install vim-lsp-settings
plugin, Using LspInstallServer
command are ok(need $PATH), but settings please keeping to disabled.
This plugin setting up efm-langserver to work.
- efm-langserver
- lsp plugin
- linter/formatter commands if you need
command | type | lint/format/action | require / limitation | config status | note |
---|---|---|---|---|---|
vim-vint | vim | lint | pip | not need config | |
markdownlint-cli | markdown | lint, action(fix) | npm (global) | not need config / user config affected | .markdownlint.json , .markdownlint.yaml (yml) in the current directory..markdownlintrc in the project root.setting in project root sample. |
textlint | text, markdown, html, rst, asciidoc, review, help | lint, action(fix) | npm (local) | user config needed | .textlintrc , .textlintrc.js , .textlintrc.json , .textlintrc.yaml (yml) or package.json textlint section in the project root. |
Redpen | text, markdown, rst, asciidoc, latex, review, help | lint | java | not included config / user config needed | redpen-conf.xml , redpen-conf-{lang}.xml in the current directory.or in $REDPEN_HOME/conf directory. |
Vale | text, markdown, rst, help | lint | go | not included config / user config needed | .vale.ini in the current directory.or in $HOME directory. setting in home sample. |
Nvcheck | text, markdown, rst, help | lint, action(fix) | go | not included config / user config needed | dict.yml in the project root.sample in vimdoc-jp-working. |
htmllint | html | lint | npm (global) | user config needed | .htmllintrc in the project root.Generate from command at htmllint init . |
eslint | javascript, typescript | lint, action(fix) | npm (local) | not need config / user config affected | .eslintrc.js , .eslintrc.yaml (yml) , .eslintrc.json or package.json eslintConfig section in the project root. |
stylelint | html, markdown, css, scss, sass, less, sugarss | lint, action(fix) | npm (local) | not included config / user config needed | .stylelintrc.json in the project root. |
prettier | typescript, css, less, scss, json, json5, graphql, markdown, vue, yaml, html | action(fix) | npm (local) | not need config / user config affected | setting into package.json in the project root. |
flake8 | python | lint | pip | not need config / user config affected | setup.cfg , tox.ini , .flake8 in project root..flake8 , ~/.config/flake8 in home. |
pylint | python | lint | pip | not need config / user config affected | pylintrc in project root or upper current directory. pylintrc , .pylintrc in current directory. .pylintrc or .config/pylintrc in $HOME directory. |
mypy | python | lint | pip | not need config / user config affected | mypy.ini , setup.cfg in project root. .mypy.ini in $HOME directory. |
black | python | action(format) | pip | not need config | |
pydoctyle | python | lint | pip | not need config / user config affected | setup.cfg , tox.ini , pydocstyle , pydocstyle.ini , pydocstylerc , pydocstylerc.ini in project root. |
rubocop | ruby | lint, format, action(fix) | bundle install need | not need config / user config affected | .rubocop.yml in project root. |
rufo | ruby | format | bundle install need | not need config / user config affected | .rufo in project root. |
prettier/plugin-ruby | ruby | action(format/fix) | bundle install need / npm (local) | not need config | basic support for both install (gem and npm) |
Cppcheck | c, cpp | lint | not need config | ||
ShellCheck | sh | lint | not need config / user config affected | .shellcheckrc or shellcheckrc in the current directory(search parent upto root)..shellcheckrc in $HOME directory. XDG config directory (usually ~/.config/shellcheckrc ) on Unix, or %APPDATA%/shellcheckrc on Windows. setting in home sample. |
|
shfmt mvdan/sh | sh | format | go | not need config | |
checkmake | make | lint | go | not need config / currently do not use config. | |
jsonlint | json | lint | npm (global) | not need config | |
jq | json | format | not need config | ||
fixjson | json, json5 | format | npm (global) | not need config | |
yamllint | yaml | lint | pip | not need config / user config affected | .yamllint , .yamllint.yaml (yml) in the current working directoryconfig in $XDG_CONFIG_HOME ~/.config/yamllint/config (support?). |
actionlint | yaml (GitHub workflow yaml) | lint | go, bash | not need config / user config affected | project config actionlint.yaml or actionlint.yml in .github/ |
buf | ProtocolBuffer | lint | go | not need config / user config affected | buf.yaml in the project root. (Windows do not work yet) |
restructuredtext-lint | rst | lint | pip | not need config | |
rstcheck | rst | lint | pip | not need config / user config affected | .rstcheck.cfg in same or upper directory.setup.cfg in project root..rstcheck.ini in $HOME directory. |
Pandoc | markdown, rst | format | not need config | ||
Credo | elixir | lint | mix | not need config / user config affected | .credo.exs in project root or config/ dir. |
hadolint | dockerfile | lint | stack | not need config / user config affected | project $PWD/.hadolint.yaml or user $XDG_CONFIG_HOME/hadolint.yaml (Windows is used %LOCALAPPDATA% instead of $XDG_CONFIG ) or fallback ~/.config/hadolint.yaml |
†excitetranslate | any (open file is not any defined type) | hover | go | not need config |
If not command exists, command’s supporting type no setup.
Please contribute any other linter setting(mapping, efm-langserver setting, user setting sample) If you contribute, fork and create PR.
- bundle install need : call via bundle - need project version and/or setting.
- npm (local) : call via npx (--no arg) - need project version and/or setting.
- npm (global) : call direct - standalone command is that tool recommended method / not need project specific.
- bash : call bash for file operation. If Windows, that need to install msys2/Git for Windows and other bash.
- Config Reload (any OS)
- Open Editor (any OS)
- Open Filer (mac,Windows)
- Open Browser (mac)
- Open Default Application (any OS)
Use vim-lsp, run command :LspDocumentFormatSync --server=efm-langserver
affect only efm-langserver formatting result (other lsp do not format).
Above command under support format
type command installed filetypes.