From e5f5d54a224254bb7227f0379d0af0dde81aff37 Mon Sep 17 00:00:00 2001 From: Matthew Walster Date: Wed, 6 Jun 2018 15:45:17 -0700 Subject: [PATCH] vim: add "--skip-string-normalization" support (#310) Since 18.6b0 was released, there has been a new option to skip string normalization when Black is called, but it wasn't able to be specified from within the vim plugin. This commit adds that functionality. Tested with g:black_skip_string_normalization set to 0 (off) and 1 (on). --- README.md | 1 + plugin/black.vim | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cf9db96..bdc000a 100644 --- a/README.md +++ b/README.md @@ -542,6 +542,7 @@ Commands and shortcuts: Configuration: * `g:black_fast` (defaults to `0`) * `g:black_linelength` (defaults to `88`) +* `g:black_skip_string_normalization` (defaults to `0`) * `g:black_virtualenv` (defaults to `~/.vim/black`) To install with [vim-plug](https://github.com/junegunn/vim-plug): diff --git a/plugin/black.vim b/plugin/black.vim index c5c663c..09261db 100644 --- a/plugin/black.vim +++ b/plugin/black.vim @@ -30,6 +30,9 @@ 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 +endif python3 << endpython3 import sys @@ -94,9 +97,11 @@ def Black(): start = time.time() fast = bool(int(vim.eval("g:black_fast"))) line_length = int(vim.eval("g:black_linelength")) + if bool(int(vim.eval("g:black_skip_string_normalization"))): + mode = black.FileMode.AUTO_DETECT & black.FileMode.NO_STRING_NORMALIZATION buffer_str = '\n'.join(vim.current.buffer) + '\n' try: - new_buffer_str = black.format_file_contents(buffer_str, line_length=line_length, fast=fast) + new_buffer_str = black.format_file_contents(buffer_str, line_length=line_length, fast=fast, mode=mode) except black.NothingChanged: print(f'Already well formatted, good job. (took {time.time() - start:.4f}s)') except Exception as exc: -- 2.39.5