开发者

What vim errorformat to use for Android's layoutopt tool?

开发者 https://www.devze.com 2023-03-12 15:46 出处:网络
What vim errorformat do you use when running Androi开发者_运维技巧d\'s layoutopt tool? (So you can load the results in Vim\'s quickfix window.)

What vim errorformat do you use when running Androi开发者_运维技巧d's layoutopt tool? (So you can load the results in Vim's quickfix window.)

Sample layoutopt output:

res/layout/main.xml
    31:31 Use an android:layout_height of 0dip instead of fill_parent for better performance


I think 31:31 means from line 31 to line 31. So we can ignore the second number (since there's no ranges in quickfix).

Put the following in ~/.vim/after/ftplugin/android-layout.vim

" Set the error format. Output is on multiple lines, so we use %P to push the
" filename onto the stack and %Q to pop it off. There are two kinds of errors
" I've seen: regular ones (begin with \t) and fatal ones.
"
" efm=Read the filename
"   ,regular errors
"   ,fatal errors
"   ,forget the filename
setlocal efm=%-P%f
    \,\ %l:%*[0-9]\ %m
    \,[Fatal\ Error]\ :%l:%*[0-9]:\ %m
    \,%-Q


" For some reason, I can't set layoutopt as the makeprg -- it never outputs
" anything when run from vim, but it works fine from a terminal or from vim's
" :!
setlocal makeprg=make\ layoutopt

Here's the corresponding makefile (put this in your project root -- so the LAYOUTS path is valid).

LAYOUTOPT = $(HOME)/data/code/android/android-sdk-linux_86/tools/layoutopt
LAYOUTS = res/layout/*.xml

layoutopt:  $(LAYOUTS)
    $(LAYOUTOPT) $(LAYOUTS)
.PHONY: layoutopt

Sidenote: You can use this to auto-invoke your ftplugin (instead of making a subtype of the xml filetype):

au BufRead,BufNewFile *.xml if match(expand('%:p'), '/res/layout/', 0) >= 0 | runtime ftplugin/android-layout.vim | endif
0

精彩评论

暂无评论...
验证码 换一张
取 消