https://github.com/vimjas/vint
Fast and Highly Extensible Vim script Language Lint implemented in Python.
https://github.com/vimjas/vint
lint vim vim-script
Last synced: 7 months ago
JSON representation
Fast and Highly Extensible Vim script Language Lint implemented in Python.
- Host: GitHub
- URL: https://github.com/vimjas/vint
- Owner: Vimjas
- License: mit
- Created: 2014-06-15T14:38:32.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2023-12-29T07:20:16.000Z (almost 2 years ago)
- Last Synced: 2025-05-06T13:21:30.359Z (8 months ago)
- Topics: lint, vim, vim-script
- Language: Python
- Homepage:
- Size: 2.44 MB
- Stars: 705
- Watchers: 22
- Forks: 32
- Open Issues: 86
-
Metadata Files:
- Readme: README.rst
- Contributing: CONTRIBUTING.rst
- License: LICENSE.txt
Awesome Lists containing this project
README
.. figure:: https://raw.githubusercontent.com/Kuniwak/vint/logo/logo.png
:alt: logo
----
|Development Status| |Latest Version| |Supported Python versions|
|Supported Python implementations| |Build Status|
Vint is a Vim script Language Lint. The goal to reach for Vint is:
- Highly extensible
- Highly customizable
- High performance
**But now, Vint is under development. We hope you develop a policy to
help us.**
Quick start
-----------
You can install with `pip `__.
::
$ pip install vim-vint
You can use Vint with
`vim-syntastic/syntastic `__::
let g:syntastic_vim_checkers = ['vint']
You can install with `vim-plug `__::
plug Vimjas/vint
Configure
---------
Vint will read config files on the following priority order:
- `User config <#user-config>`__:
- e.g. ``~/.vintrc.yaml`` (the filename can be ``.vintrc.yml`` or ``.vintrc``)
- `Project config <#project-config>`__:
- e.g. ``path/to/proj/.vintrc.yaml`` (the filename can be ``.vintrc.yml`` or ``.vintrc``)
- `Command line config <#command-line-config>`__:
- e.g. ``$ vint --error``, ``$ vint --max-violations 10``
- `Comment config <#comment-config>`__ (highest priority):
- e.g. ``" vint: -ProhibitAbbreviationOption +ProhibitSetNoCompatible``
You can see all options on `Wiki `__.
The default configuration is defined in
`default_config.yaml `_.
User config
~~~~~~~~~~~
You can configure global Vint config by ``~/.vintrc.yaml`` as following:
.. code:: yaml
cmdargs:
# Checking more strictly
severity: style_problem
# Enable coloring
color: true
# Enable Neovim syntax
env:
neovim: true
policies:
# Disable a violation
ProhibitSomethingEvil:
enabled: false
# Enable a violation
ProhibitSomethingBad:
enabled: true
You can see all policy names on `Vint linting policy
summary `__.
Project config
~~~~~~~~~~~~~~
You can configure project local Vint config by ``.vintrc.yaml`` as
following:
.. code:: yaml
cmdargs:
# Checking more strictly
severity: style_problem
# Enable coloring
color: true
# Enable Neovim syntax
env:
neovim: true
policies:
# Disable a violation
ProhibitSomethingEvil:
enabled: false
# Enable a violation
ProhibitSomethingBad:
enabled: true
You can see all policy names on `Vint linting policy
summary `__.
Command line config
~~~~~~~~~~~~~~~~~~~
You can configure linting severity, max errors, ... as following:
::
$ vint --color --style ~/.vimrc
And you can see all available options by using `--help`:
::
$ vint --help
usage: vint [-h] [-v] [-V] [-e] [-w] [-s] [-m MAX_VIOLATIONS] [-c]
[--no-color] [-j] [-t] [--enable-neovim] [-f FORMAT]
[--stdin-display-name STDIN_DISPLAY_NAME]
[files [files ...]]
Lint Vim script
positional arguments:
files file or directory path to lint
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-V, --verbose output verbose message
-e, --error report only errors
-w, --warning report errors and warnings
-s, --style-problem report errors, warnings and style problems
-m MAX_VIOLATIONS, --max-violations MAX_VIOLATIONS
limit max violations count
-c, --color colorize output when possible
--no-color do not colorize output
-j, --json output json style
-t, --stat output statistic info
--enable-neovim enable Neovim syntax
-f FORMAT, --format FORMAT
set output format
--stdin-display-name STDIN_DISPLAY_NAME
specify a file path that is used for reporting when
linting standard inputs
Comment config
~~~~~~~~~~~~~~
You can enable/disable linting policies by a comment as following:
.. code:: vim
" vint: -ProhibitAbbreviationOption
let s:save_cpo = &cpo
set cpo&vim
" vint: +ProhibitAbbreviationOption
" do something...
" vint: -ProhibitAbbreviationOption
let &cpo = s:save_cpo
unlet s:save_cpo
And you can use line config comments. It can enable/disable linting policies in only one line by the postfix comment:
.. code:: vim
" vint: next-line -ProhibitUnusedVariable
let s:foobar = 'x'
echo s:{'foo' . 'bar'}
This syntax is: `" vint: [next-line] [+-] [+-] ...`.
You can see all policy names on `Vint linting policy summary `__.
Code health
-----------
|Coverage Status| |Code Health| |Dependency Status|
License
-------
`MIT `__
Acknowledgement
---------------
- `vim-jp/vim-vimlparser `__
- `Google Vimscript Style
Guide `__
- `Anti-pattern of
vimrc `__
.. |Development Status| image:: https://img.shields.io/pypi/status/vim-vint.svg
:target: https://pypi.python.org/pypi/vim-vint/
.. |Latest Version| image:: https://img.shields.io/pypi/v/vim-vint.svg
:target: https://pypi.python.org/pypi/vim-vint/
.. |Supported Python versions| image:: https://img.shields.io/pypi/pyversions/vim-vint.svg
:target: https://pypi.python.org/pypi/vim-vint/
.. |Supported Python implementations| image:: https://img.shields.io/pypi/implementation/vim-vint.svg
:target: https://pypi.python.org/pypi/vim-vint/
.. |Build Status| image:: https://github.com/Vimjas/vint/actions/workflows/ci.yml/badge.svg
:target: https://github.com/Vimjas/vint/actions/workflows/ci.yml
.. |Coverage Status| image:: https://codecov.io/gh/Vimjas/vint/branch/master/graph/badge.svg
:target: https://app.codecov.io/gh/Vimjas/vint
.. |Code Health| image:: https://landscape.io/github/Kuniwak/vint/master/landscape.png
:target: https://landscape.io/github/Kuniwak/vint/master
.. |Dependency Status| image:: https://gemnasium.com/Kuniwak/vint.svg
:target: https://gemnasium.com/Kuniwak/vint