Какой формат vim errorformat использовать для инструмента layoutopt для Android? - PullRequest
2 голосов
/ 10 июня 2011

Какой формат ошибки vim вы используете при запуске инструмента layoutopt для Android? (Таким образом, вы можете загрузить результаты в окне быстрого исправления Vim.)

Пример вывода layoutopt:

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

1 Ответ

2 голосов
/ 11 июня 2011

Я думаю, что 31:31 означает от строки 31 до строки 31. Таким образом, мы можем игнорировать второе число (так как в QuickFix нет диапазонов).

Вставьте следующее в ~/.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

Вот соответствующий make-файл (поместите его в корень вашего проекта, чтобы путь LAYOUTS был действительным).

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

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

Sidenote: Вы можете использовать это для автоматического запуска вашего ftplugin (вместо создания подтипа типа файла xml):

au BufRead,BufNewFile *.xml if match(expand('%:p'), '/res/layout/', 0) >= 0 | runtime ftplugin/android-layout.vim | endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...