Skip to content

Commit

Permalink
feat: upgrade black plugin to 1.2 (#82)
Browse files Browse the repository at this point in the history
  • Loading branch information
thebaptiste authored Nov 21, 2023
1 parent 9edae28 commit 4c90bde
Showing 1 changed file with 50 additions and 56 deletions.
106 changes: 50 additions & 56 deletions layers/layer4_vim/0021_configvim/vim/bundle/black/plugin/black.vim
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
" Author: Łukasz Langa
" Created: Mon Mar 26 23:27:53 2018 -0700
" Requires: Vim Ver7.0+
" Version: 1.1
" Version: 1.2
"
" Documentation:
" This plugin formats Python files.
Expand All @@ -12,14 +12,21 @@
" - initial version
" 1.1:
" - restore cursor/window position after formatting
" 1.2:
" - use autoload script

if v:version < 700 || !has('python3')
echo "This script requires vim7.0+ with Python 3.6 support."
finish
if exists("g:load_black")
finish
endif

if exists("g:load_black")
finish
if v:version < 700 || !has('python3')
func! __BLACK_MISSING()
echo "The black.vim plugin requires vim7.0+ with Python 3.6 support."
endfunc
command! Black :call __BLACK_MISSING()
command! BlackUpgrade :call __BLACK_MISSING()
command! BlackVersion :call __BLACK_MISSING()
finish
endif

let g:load_black = "py1.0"
Expand All @@ -37,56 +44,43 @@ 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")
let g:black_skip_string_normalization = !g:black_string_normalization
else
let g:black_skip_string_normalization = 0
endif
endif
if !exists("g:black_skip_magic_trailing_comma")
if exists("g:black_magic_trailing_comma")
let g:black_skip_magic_trailing_comma = !g:black_magic_trailing_comma
else
let g:black_skip_magic_trailing_comma = 0
endif
endif
if !exists("g:black_quiet")
let g:black_quiet = 0
endif
if !exists("g:black_target_version")
let g:black_target_version = ""
endif
if !exists("g:black_use_virtualenv")
let g:black_use_virtualenv = 1
endif
if !exists("g:black_preview")
let g:black_preview = 0
endif

python3 << endpython3
import os
import sys
import vim
import black
import time

def Black():
start = time.time()
fast = bool(int(vim.eval("g:black_fast")))
mode = black.FileMode(
line_length=int(vim.eval("g:black_linelength")),
string_normalization=not bool(int(vim.eval("g:black_skip_string_normalization"))),
is_pyi=vim.current.buffer.name.endswith('.pyi'),
)
buffer_str = '\n'.join(vim.current.buffer) + '\n'
try:
new_buffer_str = black.format_file_contents(buffer_str, fast=fast, mode=mode)
except black.NothingChanged:
print(f'Already well formatted, good job. (took {time.time() - start:.4f}s)')
except Exception as exc:
print(exc)
else:
current_buffer = vim.current.window.buffer
cursors = []
for i, tabpage in enumerate(vim.tabpages):
if tabpage.valid:
for j, window in enumerate(tabpage.windows):
if window.valid and window.buffer == current_buffer:
cursors.append((i, j, window.cursor))
vim.current.buffer[:] = new_buffer_str.split('\n')[:-1]
for i, j, cursor in cursors:
window = vim.tabpages[i].windows[j]
try:
window.cursor = cursor
except vim.error:
window.cursor = (len(window.buffer), 0)
print(f'Reformatted in {time.time() - start:.4f}s.')

def BlackUpgrade():
pass

def BlackVersion():
print(f'Black, version {black.__version__} on Python {sys.version}.')

endpython3
function BlackComplete(ArgLead, CmdLine, CursorPos)
return [
\ 'target_version=py27',
\ 'target_version=py36',
\ 'target_version=py37',
\ 'target_version=py38',
\ 'target_version=py39',
\ 'target_version=py310',
\ ]
endfunction

command! Black :py3 Black()
command! BlackUpgrade :py3 BlackUpgrade()
command! BlackVersion :py3 BlackVersion()
command! -nargs=* -complete=customlist,BlackComplete Black :call black#Black(<f-args>)
command! BlackUpgrade :call black#BlackUpgrade()
command! BlackVersion :call black#BlackVersion()

0 comments on commit 4c90bde

Please sign in to comment.