X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/68a3c75eb2a7096a7d5b3cfa6a6f3a5b894a1d72..b3ceb293d9e69295a190fed93517cbe1b7372154:/plugin/black.vim diff --git a/plugin/black.vim b/plugin/black.vim index f3e4409..39a31f1 100644 --- a/plugin/black.vim +++ b/plugin/black.vim @@ -41,8 +41,15 @@ endif if !exists("g:black_linelength") let g:black_linelength = 88 endif -if !exists("g:black_skip_string_normalization") - let g:black_skip_string_normalization = 0 +if !exists("g:black_string_normalization") + if exists("g:black_skip_string_normalization") + let g:black_string_normalization = !g:black_skip_string_normalization + else + let g:black_string_normalization = 1 + endif +endif +if !exists("g:black_quiet") + let g:black_quiet = 0 endif python3 << EndPython3 @@ -50,6 +57,7 @@ import collections import os import sys import vim +from distutils.util import strtobool class Flag(collections.namedtuple("FlagBase", "name, cast")): @@ -62,15 +70,14 @@ class Flag(collections.namedtuple("FlagBase", "name, cast")): name = self.var_name if name == "line_length": name = name.replace("_", "") - if name == "string_normalization": - name = "skip_" + name return "g:black_" + name FLAGS = [ Flag(name="line_length", cast=int), - Flag(name="fast", cast=bool), - Flag(name="string_normalization", cast=bool), + Flag(name="fast", cast=strtobool), + Flag(name="string_normalization", cast=strtobool), + Flag(name="quiet", cast=strtobool), ] @@ -96,9 +103,9 @@ def _get_virtualenv_site_packages(venv_path, pyver): return venv_path / 'lib' / f'python{pyver[0]}.{pyver[1]}' / 'site-packages' def _initialize_black_env(upgrade=False): - pyver = sys.version_info[:2] - if pyver < (3, 6): - print("Sorry, Black requires Python 3.6+ to run.") + pyver = sys.version_info[:3] + if pyver < (3, 6, 2): + print("Sorry, Black requires Python 3.6.2+ to run.") return False from pathlib import Path @@ -138,7 +145,7 @@ def _initialize_black_env(upgrade=False): if first_install: print('Pro-tip: to upgrade Black in the future, use the :BlackUpgrade command and restart Vim.\n') if virtualenv_site_packages not in sys.path: - sys.path.append(virtualenv_site_packages) + sys.path.insert(0, virtualenv_site_packages) return True if _initialize_black_env(): @@ -153,6 +160,7 @@ def Black(): string_normalization=configs["string_normalization"], is_pyi=vim.current.buffer.name.endswith('.pyi'), ) + quiet = configs["quiet"] buffer_str = '\n'.join(vim.current.buffer) + '\n' try: @@ -162,7 +170,8 @@ def Black(): mode=mode, ) except black.NothingChanged: - print(f'Already well formatted, good job. (took {time.time() - start:.4f}s)') + if not quiet: + print(f'Already well formatted, good job. (took {time.time() - start:.4f}s)') except Exception as exc: print(exc) else: @@ -180,7 +189,8 @@ def Black(): window.cursor = cursor except vim.error: window.cursor = (len(window.buffer), 0) - print(f'Reformatted in {time.time() - start:.4f}s.') + if not quiet: + print(f'Reformatted in {time.time() - start:.4f}s.') def get_configs(): path_pyproject_toml = black.find_pyproject_toml(vim.eval("fnamemodify(getcwd(), ':t')")) @@ -190,7 +200,7 @@ def get_configs(): toml_config = {} return { - flag.var_name: toml_config.get(flag.name, flag.cast(vim.eval(flag.vim_rc_name))) + flag.var_name: flag.cast(toml_config.get(flag.name, vim.eval(flag.vim_rc_name))) for flag in FLAGS }