jsji created this revision. jsji added reviewers: djasper, klimek. Herald added a project: All. jsji requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits.
The vim Formatonsave integration is not working if we create a new file directly using vim. eg: vi -V9t.log t.cpp It will not able to format the buffer. Traceback (most recent call last): File "<string>", line 1, in <module> File "...clang/tools/clang-format/clang-format.py", line 156, in <module> main() File "...clang/tools/clang-format/clang-format.py", line 80, in main with open(vim.current.buffer.name, 'r') as f: FileNotFoundError: [Errno 2] No such file or directory: '...t.cpp' This patch check the file before we try to open it. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D138234 Files: clang/tools/clang-format/clang-format.py Index: clang/tools/clang-format/clang-format.py =================================================================== --- clang/tools/clang-format/clang-format.py +++ clang/tools/clang-format/clang-format.py @@ -45,6 +45,7 @@ import subprocess import sys import vim +import os.path # set g:clang_format_path to the path to clang-format if it is not on the path # Change this to the full path if clang-format is not on the path. @@ -76,7 +77,7 @@ # Determine range to format. if vim.eval('exists("l:lines")') == '1': lines = ['-lines', vim.eval('l:lines')] - elif vim.eval('exists("l:formatdiff")') == '1': + elif vim.eval('exists("l:formatdiff")') == '1' and os.path.exists(vim.current.buffer.name): with open(vim.current.buffer.name, 'r') as f: ondisk = f.read().splitlines(); sequence = difflib.SequenceMatcher(None, ondisk, vim.current.buffer)
Index: clang/tools/clang-format/clang-format.py =================================================================== --- clang/tools/clang-format/clang-format.py +++ clang/tools/clang-format/clang-format.py @@ -45,6 +45,7 @@ import subprocess import sys import vim +import os.path # set g:clang_format_path to the path to clang-format if it is not on the path # Change this to the full path if clang-format is not on the path. @@ -76,7 +77,7 @@ # Determine range to format. if vim.eval('exists("l:lines")') == '1': lines = ['-lines', vim.eval('l:lines')] - elif vim.eval('exists("l:formatdiff")') == '1': + elif vim.eval('exists("l:formatdiff")') == '1' and os.path.exists(vim.current.buffer.name): with open(vim.current.buffer.name, 'r') as f: ondisk = f.read().splitlines(); sequence = difflib.SequenceMatcher(None, ondisk, vim.current.buffer)
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits