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
-python3 << endpython3
+python3 << EndPython3
import collections
import os
import sys
import vim
+from distutils.util import strtobool
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),
]
if not virtualenv_path.is_dir():
print('Please wait, one time setup for Black.')
_executable = sys.executable
+ _base_executable = getattr(sys, "_base_executable", _executable)
try:
- sys.executable = str(_get_python_binary(Path(sys.exec_prefix)))
+ executable = str(_get_python_binary(Path(sys.exec_prefix)))
+ sys.executable = executable
+ sys._base_executable = executable
print(f'Creating a virtualenv in {virtualenv_path}...')
print('(this path can be customized in .vimrc by setting g:black_virtualenv)')
venv.create(virtualenv_path, with_pip=True)
+ except Exception:
+ print('Encountered exception while creating virtualenv (see traceback below).')
+ print(f'Removing {virtualenv_path}...')
+ import shutil
+ shutil.rmtree(virtualenv_path)
+ raise
finally:
sys.executable = _executable
+ sys._base_executable = _base_executable
first_install = True
if first_install:
print('Installing Black with pip...')
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():
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
}
def BlackVersion():
print(f'Black, version {black.__version__} on Python {sys.version}.')
-endpython3
+EndPython3
command! Black :py3 Black()
command! BlackUpgrade :py3 BlackUpgrade()