Skip to content

tsuyoshicho/vim-efm-langserver-settings

Repository files navigation

vim-efm-langserver-settings

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).

Detail

vim lsp client - efm-langserver link and configure settings.

Support LSP Client

Installation

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.

Install Command/Plugin

Support Command

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.jsonc (json), .markdownlint.yaml (yml) in the current directory.
.markdownlintrc in the current or parent directory.
setting in project root sample.
mdformat markdown action(format) pip not need config Install plugins if needed(project local/global)
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 javascript, typescript, javascriptreact, typescriptreact, css, less, scss, json, json5, graphql, markdown, vue, yaml, html format, action(format) npm (local) user config needed setting into package.json or .prettierrc like file in the project root.
deno javascript, typescript, javascriptreact, typescriptreact, json, markdown format, action(format) not need config / user config affected setting into deno.json like file in the project root.
flake8 python lint pip not need config / user config affected pyproject.toml(plugin need), setup.cfg, tox.ini, .flake8 in project root.
(Supported in versions up to 4.0: .flake8, ~/.config/flake8 in home.)
pylint python lint pip not need config / user config affected pyproject.toml, 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 pyproject.toml, setup.cfg, mypy.ini in project root.
.mypy.ini in $HOME directory.
black python action(format) pip not need config
yapf python action(format) pip not need config
ruff python action(fix),action(format) pip not need config / user config affected
pydoctyle python lint pip not need config / user config affected pyproject.toml, 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 directory
config 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
cspell any lint npm (local) user config needed see cspell document
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.

Why Variant?

  • bundle install need : call via bundle - need project version and/or setting.
  • npm (local) : call via npx (currently --no-install arg / future use --no) - 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.

Support codeAction (global)

  • Config Reload (any OS)
  • Open Editor (any OS)
  • Open Filer (mac,Windows)
  • Open Browser (mac)
  • Open Default Application (any OS)

Tips

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.

Related

Special Thanks