pep257.vim 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. "============================================================================
  2. "File: pep257.vim
  3. "Description: Docstring style checking plugin for syntastic.vim
  4. "============================================================================
  5. if exists('g:loaded_syntastic_python_pep257_checker')
  6. finish
  7. endif
  8. let g:loaded_syntastic_python_pep257_checker = 1
  9. let s:save_cpo = &cpo
  10. set cpo&vim
  11. function! SyntaxCheckers_python_pep257_GetLocList() dict
  12. if !exists('s:pep257_new')
  13. let s:pep257_new = syntastic#util#versionIsAtLeast(self.getVersion(), [0, 3])
  14. endif
  15. let makeprg = self.makeprgBuild({})
  16. if s:pep257_new
  17. let errorformat =
  18. \ '%E%f:%l %.%#:,' .
  19. \ '%+C %m'
  20. else
  21. let errorformat =
  22. \ '%E%f:%l:%c%\%.%\%.%\d%\+:%\d%\+: %m,' .
  23. \ '%E%f:%l:%c: %m,' .
  24. \ '%+C %m'
  25. endif
  26. let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }
  27. let loclist = SyntasticMake({
  28. \ 'makeprg': makeprg,
  29. \ 'errorformat': errorformat,
  30. \ 'env': env,
  31. \ 'subtype': 'Style',
  32. \ 'preprocess': 'killEmpty',
  33. \ 'postprocess': ['compressWhitespace'] })
  34. if s:pep257_new == 0
  35. " byte offsets rather than column numbers
  36. for e in loclist
  37. let e['col'] = get(e, 'col', 0) + 1
  38. endfor
  39. endif
  40. return loclist
  41. endfunction
  42. call g:SyntasticRegistry.CreateAndRegisterChecker({
  43. \ 'filetype': 'python',
  44. \ 'name': 'pep257'})
  45. let &cpo = s:save_cpo
  46. unlet s:save_cpo
  47. " vim: set sw=4 sts=4 et fdm=marker: