Find pyproject from vim relative to current file (#1871)
Commit history before merge: * Find pyproject from vim relative to current file * Merge remote-tracking branch 'upstream/main' into find-pyproject-vim * Finish and fix this patch (thanks Matt Wozniski!) Both the existing code and the proposed code are broken. The vim.eval() call (whether it's vim.eval("@%") or vim.eval("fnamemodify(getcwd(), ':t')) returns a string, and it passes that string to find_pyproject_toml, which expects a sequence of strings, not a single string, and - since a string is a sequence of single character strings - it gets turned into a list of ridiculous paths. I tested with a file called foo.py, and added a print(path_srcs) into find_project_root, which printed out: [ PosixPath('/home/matt/f'), PosixPath('/home/matt/o'), PosixPath('/home/matt/o'), PosixPath('/home/matt'), PosixPath('/home/matt/p'), PosixPath('/home/matt/y') ] This does work for an unnamed buffer, too - we wind up calling black.find_pyproject_toml(("",)), and that winds up prepending the working directory to any relative paths, so "" just gets turned into the current working directory. Note that find_pyproject_toml needs to be passed a 1-tuple, not a list, because it requires something hashable (thanks to functools.lru_cache being used) Co-authored-by: Matt Wozniski <mwozniski@bloomberg.net> * I forgot the CHANGELOG entry ... again * I'm really bad at dealing with merge conflicts sometimes * Be more correct describing search behaviour Co-authored-by: Austin Glaser <austin.glaser@spacex.com> Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com> Co-authored-by: Matt Wozniski <mwozniski@bloomberg.net>
This commit is contained in:
parent
aa31a117b1
commit
4a007a881f
@ -22,6 +22,11 @@
|
||||
- Fix handling of named escapes (`\N{...}`) when `--experimental-string-processing` is
|
||||
used (#2319)
|
||||
|
||||
### Integrations
|
||||
|
||||
- The vim plugin now searches upwards from the directory containing the current buffer
|
||||
instead of the current working directory for pyproject.toml. (#1871)
|
||||
|
||||
## 21.5b2
|
||||
|
||||
### _Black_
|
||||
|
@ -139,7 +139,8 @@ def Black():
|
||||
print(f'Reformatted in {time.time() - start:.4f}s.')
|
||||
|
||||
def get_configs():
|
||||
path_pyproject_toml = black.find_pyproject_toml(vim.eval("fnamemodify(getcwd(), ':t')"))
|
||||
filename = vim.eval("@%")
|
||||
path_pyproject_toml = black.find_pyproject_toml((filename,))
|
||||
if path_pyproject_toml:
|
||||
toml_config = black.parse_pyproject_toml(path_pyproject_toml)
|
||||
else:
|
||||
|
Loading…
Reference in New Issue
Block a user