Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tsuyoshicho/vim-efm-langserver-settings
vim lsp client - efm-langserver link and configure settings
https://github.com/tsuyoshicho/vim-efm-langserver-settings
language-server vim
Last synced: 2 months ago
JSON representation
vim lsp client - efm-langserver link and configure settings
- Host: GitHub
- URL: https://github.com/tsuyoshicho/vim-efm-langserver-settings
- Owner: tsuyoshicho
- License: mit
- Created: 2020-01-11T00:37:35.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-20T06:11:10.000Z (9 months ago)
- Last Synced: 2024-08-01T17:41:32.377Z (5 months ago)
- Topics: language-server, vim
- Language: Vim Script
- Homepage: https://tsuyoshicho.github.io/vim-efm-langserver-settings/
- Size: 335 KB
- Stars: 68
- Watchers: 4
- Forks: 17
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# 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
- [vim-lsp](https://github.com/prabirshrestha/vim-lsp)
- [ale](https://github.com/dense-analysis/ale)
- [coc.nvim](https://github.com/neoclide/coc.nvim)## Installation
ex. with `vim-lsp` plugin
```toml
[[plugins]]
repo = 'tsuyoshicho/vim-efm-langserver-settings'
depends = ['vim-lsp']
```NOTE: If you install [`vim-lsp-settings`](https://github.com/mattn/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
- [efm-langserver](https://github.com/mattn/efm-langserver)
- lsp plugin
- linter/formatter commands if you need## Support Command
| command | type | lint/format/action | require / limitation | config status | note |
| ------------------------------------------------------------------------ | ---------------------------------------------------------------------------- | ------------------------- | --------------------------------- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [vim-vint](https://pypi.org/project/vim-vint/) | vim | lint | pip | not need config | |
| [markdownlint-cli](https://www.npmjs.com/package/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](example/efm-langserver/root/.markdownlintrc). |
| [mdformat](https://pypi.org/project/mdformat/) | markdown | action(format) | pip | not need config | Install plugins if needed(project local/global) |
| [textlint](https://www.npmjs.com/package/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](https://redpen.cc/) | 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](https://github.com/errata-ai/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](example/efm-langserver/home/.vale.ini). |
| [Nvcheck](https://github.com/koron/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](https://github.com/vim-jp/vimdoc-ja-working/blob/master/dict.yml). |
| [htmllint](https://www.npmjs.com/package/htmllint-cli) | html | lint | npm (global) | user config needed | `.htmllintrc` in the project root.
Generate from command at `htmllint init`. |
| [eslint](https://www.npmjs.com/package/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](https://www.npmjs.com/package/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](https://www.npmjs.com/package/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](https://deno.com/) | 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](https://pypi.org/project/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](https://pypi.org/project/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](https://pypi.org/project/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](https://pypi.org/project/black/) | python | action(format) | pip | not need config | |
| [yapf](https://github.com/google/yapf) | python | action(format) | pip | not need config | |
| [ruff](https://github.com/astral-sh/ruff) | python | action(fix),action(format) | pip | not need config / user config affected | |
| [pydoctyle](https://pypi.org/project/pydocstyle/) | 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](https://rubygems.org/gems/rubocop) | ruby | lint, format, action(fix) | bundle install need | not need config / user config affected | `.rubocop.yml` in project root. |
| [rufo](https://rubygems.org/gems/rufo/) | ruby | format | bundle install need | not need config / user config affected | `.rufo` in project root. |
| [prettier/plugin-ruby](https://github.com/prettier/plugin-ruby) | ruby | action(format/fix) | bundle install need / npm (local) | not need config | basic support for both install (gem and npm) |
| [Cppcheck](http://cppcheck.sourceforge.net/) | c, cpp | lint | | not need config | |
| [ShellCheck](https://www.shellcheck.net/) | 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](example/efm-langserver/home/.shellcheckrc). |
| [shfmt mvdan/sh](https://github.com/mvdan/sh) | sh | format | go | not need config | |
| [checkmake](https://github.com/mrtazz/checkmake) | make | lint | go | not need config / currently do not use config. | |
| [jsonlint](https://www.npmjs.com/package/jsonlint) | json | lint | npm (global) | not need config | |
| [jq](https://stedolan.github.io/jq/) | json | format | | not need config | |
| [fixjson](https://www.npmjs.com/package/fixjson) | json, json5 | format | npm (global) | not need config | |
| [yamllint](https://pypi.org/project/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](https://github.com/rhysd/actionlint) | yaml (GitHub workflow yaml) | lint | go, bash | not need config / user config affected | project config `actionlint.yaml` or `actionlint.yml` in `.github/` |
| [buf](https://github.com/bufbuild/buf) | ProtocolBuffer | lint | go | not need config / user config affected | `buf.yaml` in the project root. (Windows do not work yet) |
| [restructuredtext-lint](https://pypi.org/project/restructuredtext-lint/) | rst | lint | pip | not need config | |
| [rstcheck](https://pypi.org/project/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](https://pandoc.org/) | markdown, rst | format | | not need config | |
| [Credo](https://github.com/rrrene/credo) | elixir | lint | mix | not need config / user config affected | `.credo.exs` in project root or `config/` dir. |
| [hadolint](https://github.com/hadolint/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](https://www.npmjs.com/package/cspell) | any | lint | npm (local) | user config needed | see [cspell document](https://cspell.org/) |
| †[excitetranslate](https://github.com/mattn/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
- [efm-langserver](https://github.com/mattn/efm-langserver)
- [vim-lsp-settings](https://github.com/mattn/vim-lsp-settings)## Special Thanks
- [mattn (mattn)](https://github.com/mattn)
- [yaegassy (yaegassy)](https://github.com/yaegassy)