[cfe-commits] [PATCH] New clang-check vim integration script
Alexander Kornienko
reviews at llvm-reviews.chandlerc.com
Mon Sep 3 10:18:10 PDT 2012
Hi klimek,
New clang-check vim integration with the 're-run the last invocation when executed from .h file' feature.
http://llvm-reviews.chandlerc.com/D35
Files:
tools/clang/docs/HowToSetupToolingForLLVM.html
Index: tools/clang/docs/HowToSetupToolingForLLVM.html
===================================================================
--- tools/clang/docs/HowToSetupToolingForLLVM.html
+++ tools/clang/docs/HowToSetupToolingForLLVM.html
@@ -77,12 +77,39 @@
<p>If you're using vim, it's convenient to have clang-check integrated. Put this
into your .vimrc:</p>
<pre>
- set makeprg=clang-check\ %
- map <F5> :make<CR><CR>
-</pre>
-
-<p>When editing C++ code, hit F5 to reparse the current buffer. The output will
-go into the error window, which you can enable with <code>:cope</code>.</p>
+ function! ClangCheckImpl(cmd)
+ echo "Running " . a:cmd
+ let l:output = system(a:cmd)
+ cgete l:output
+ if v:shell_error != 0
+ copen
+ let w:quickfix_title = a:cmd
+ else
+ echo l:output
+ echo "No errors."
+ endif
+ let g:clang_check_last_cmd = a:cmd
+ endfunction
+
+ function! ClangCheck()
+ let l:filename = expand('%')
+ if l:filename =~ '\.(cpp|cxx|cc|c)$'
+ call ClangCheckImpl("clang-check " . l:filename)
+ elseif exists("g:clang_check_last_cmd")
+ call ClangCheckImpl(g:clang_check_last_cmd)
+ else
+ echo "Can't detect file's compilation arguments and no previous clang-check invocation!"
+ endif
+ endfunction
+
+ nmap <silent> <F5> :call ClangCheck()<CR>
+</pre>
+
+<p>When editing .cpp/.cxx/.cc/.c file, hit F5 to reparse the file. In case the
+current file has different extension (for example, .h), F5 will re-run the last
+clang-check invocation made from this vim instance (if any). The output will
+go into the error window, which is opened automatically when clang-check finds
+errors, and can be re-opened with <code>:cope</code>.</p>
<p>Other <code>clang-check</code> options that can be useful when working with
clang AST:</p>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D35.1.patch
Type: text/x-patch
Size: 1851 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120903/b71a902d/attachment.bin>
More information about the cfe-commits
mailing list