mirror of
https://github.com/gryf/.vim.git
synced 2025-12-18 03:50:30 +01:00
Update plugins: ctrl_p, syntastic, tagbar, taglisttoo and mark.
Added skeleton to make autocompletion for kickassembler.
This commit is contained in:
132
bundle/git_syntastic/syntax_checkers/ada.vim
Normal file
132
bundle/git_syntastic/syntax_checkers/ada.vim
Normal file
@@ -0,0 +1,132 @@
|
||||
"============================================================================
|
||||
"File: ada.vim
|
||||
"Description: Syntax checking plugin for syntastic.vim
|
||||
"Maintainer: Alfredo Di Napoli <alfredo.dinapoli@gmail.com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law.
|
||||
"
|
||||
"============================================================================
|
||||
|
||||
" in order to also check header files add this to your .vimrc:
|
||||
" (this usually creates a .gch file in your source directory)
|
||||
"
|
||||
" let g:syntastic_ada_check_header = 1
|
||||
"
|
||||
" To disable the search of included header files after special
|
||||
" libraries like gtk and glib add this line to your .vimrc:
|
||||
"
|
||||
" let g:syntastic_ada_no_include_search = 1
|
||||
"
|
||||
" In order to add some custom include directories that should be added to the
|
||||
" gcc command line you can add those to the global variable
|
||||
" g:syntastic_ada_include_dirs. This list can be used like this:
|
||||
"
|
||||
" let g:syntastic_ada_include_dirs = [ 'includes', 'headers' ]
|
||||
"
|
||||
" To enable header files being re-checked on every file write add the
|
||||
" following line to your .vimrc. Otherwise the header files are checked only
|
||||
" one time on initially loading the file.
|
||||
" In order to force syntastic to refresh the header includes simply
|
||||
" unlet b:syntastic_ada_includes. Then the header files are being re-checked
|
||||
" on the next file write.
|
||||
"
|
||||
" let g:syntastic_ada_auto_refresh_includes = 1
|
||||
"
|
||||
" Alternatively you can set the buffer local variable b:syntastic_ada_cflags.
|
||||
" If this variable is set for the current buffer no search for additional
|
||||
" libraries is done. I.e. set the variable like this:
|
||||
"
|
||||
" let b:syntastic_ada_cflags = ' -I/usr/include/libsoup-2.4'
|
||||
"
|
||||
" Moreover it is possible to add additional compiler options to the syntax
|
||||
" checking execution via the variable 'g:syntastic_ada_compiler_options':
|
||||
"
|
||||
" let g:syntastic_ada_compiler_options = ' -std=c++0x'
|
||||
"
|
||||
" Additionally the setting 'g:syntastic_ada_config_file' allows you to define
|
||||
" a file that contains additional compiler arguments like include directories
|
||||
" or CFLAGS. The file is expected to contain one option per line. If none is
|
||||
" given the filename defaults to '.syntastic_ada_config':
|
||||
"
|
||||
" let g:syntastic_ada_config_file = '.config'
|
||||
"
|
||||
" Using the global variable 'g:syntastic_ada_remove_include_errors' you can
|
||||
" specify whether errors of files included via the
|
||||
" g:syntastic_ada_include_dirs' setting are removed from the result set:
|
||||
"
|
||||
" let g:syntastic_ada_remove_include_errors = 1
|
||||
|
||||
if exists('loaded_ada_syntax_checker')
|
||||
finish
|
||||
endif
|
||||
let loaded_ada_syntax_checker = 1
|
||||
|
||||
if !executable('gcc')
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
if !exists('g:syntastic_ada_config_file')
|
||||
let g:syntastic_ada_config_file = '.syntastic_ada_config'
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_ada_GetLocList()
|
||||
let makeprg = 'gcc -c -fsyntax-only '
|
||||
let errorformat = '%-G%f:%s:,%f:%l:%c: %m,%f:%l: %m'
|
||||
|
||||
if exists('g:syntastic_ada_compiler_options')
|
||||
let makeprg .= g:syntastic_ada_compiler_options
|
||||
endif
|
||||
|
||||
let makeprg .= ' ' . shellescape(expand('%')) .
|
||||
\ ' ' . syntastic#c#GetIncludeDirs('ada')
|
||||
|
||||
if expand('%') =~? '\%(.h\|.hpp\|.hh\)$'
|
||||
if exists('g:syntastic_ada_check_header')
|
||||
let makeprg = 'g++ -c '.shellescape(expand('%')).
|
||||
\ ' ' . syntastic#c#GetIncludeDirs('ada')
|
||||
else
|
||||
return []
|
||||
endif
|
||||
endif
|
||||
|
||||
if !exists('b:syntastic_ada_cflags')
|
||||
if !exists('g:syntastic_ada_no_include_search') ||
|
||||
\ g:syntastic_ada_no_include_search != 1
|
||||
if exists('g:syntastic_ada_auto_refresh_includes') &&
|
||||
\ g:syntastic_ada_auto_refresh_includes != 0
|
||||
let makeprg .= syntastic#c#SearchHeaders()
|
||||
else
|
||||
if !exists('b:syntastic_ada_includes')
|
||||
let b:syntastic_ada_includes = syntastic#c#SearchHeaders()
|
||||
endif
|
||||
let makeprg .= b:syntastic_ada_includes
|
||||
endif
|
||||
endif
|
||||
else
|
||||
let makeprg .= b:syntastic_ada_cflags
|
||||
endif
|
||||
|
||||
" add optional config file parameters
|
||||
let makeprg .= ' ' . syntastic#c#ReadConfig(g:syntastic_ada_config_file)
|
||||
|
||||
" process makeprg
|
||||
let errors = SyntasticMake({ 'makeprg': makeprg,
|
||||
\ 'errorformat': errorformat })
|
||||
|
||||
" filter the processed errors if desired
|
||||
if exists('g:syntastic_ada_remove_include_errors') &&
|
||||
\ g:syntastic_ada_remove_include_errors != 0
|
||||
return filter(errors,
|
||||
\ 'has_key(v:val, "bufnr") && v:val["bufnr"]=='.bufnr(''))
|
||||
else
|
||||
return errors
|
||||
endif
|
||||
endfunction
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: set et sts=4 sw=4:
|
||||
35
bundle/git_syntastic/syntax_checkers/c/checkpatch.vim
Normal file
35
bundle/git_syntastic/syntax_checkers/c/checkpatch.vim
Normal file
@@ -0,0 +1,35 @@
|
||||
"============================================================================
|
||||
"File: checkpatch.vim
|
||||
"Description: Syntax checking plugin for syntastic.vim using checkpatch.pl
|
||||
"Maintainer: Daniel Walker <dwalker at fifo99 dot com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"============================================================================
|
||||
if exists("loaded_checkpatch_syntax_checker")
|
||||
finish
|
||||
endif
|
||||
let loaded_checkpatch_syntax_checker = 1
|
||||
|
||||
" Bail if the user doesn't have `checkpatch.pl` or ./scripts/checkpatch.pl installed.
|
||||
if executable("checkpatch.pl")
|
||||
let g:syntastic_c_checker_checkpatch_location = 'checkpatch.pl'
|
||||
elseif executable("./scripts/checkpatch.pl")
|
||||
let g:syntastic_c_checker_checkpatch_location = './scripts/checkpatch.pl'
|
||||
else
|
||||
finish
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_c_GetLocList()
|
||||
let makeprg = g:syntastic_c_checker_checkpatch_location
|
||||
let makeprg .= " --no-summary --no-tree --terse --file ".shellescape(expand('%'))
|
||||
|
||||
let errorformat = '%f:%l: %tARNING: %m,%f:%l: %tRROR: %m'
|
||||
|
||||
let loclist = SyntasticMake({ 'makeprg': makeprg,
|
||||
\ 'errorformat': errorformat,
|
||||
\ 'defaults': {'bufnr': bufnr("")} })
|
||||
return loclist
|
||||
endfunction
|
||||
159
bundle/git_syntastic/syntax_checkers/c/gcc.vim
Normal file
159
bundle/git_syntastic/syntax_checkers/c/gcc.vim
Normal file
@@ -0,0 +1,159 @@
|
||||
"============================================================================
|
||||
"File: c.vim
|
||||
"Description: Syntax checking plugin for syntastic.vim
|
||||
"Maintainer: Gregor Uhlenheuer <kongo2002 at gmail dot com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
"============================================================================
|
||||
|
||||
" In order to also check header files add this to your .vimrc:
|
||||
"
|
||||
" let g:syntastic_c_check_header = 1
|
||||
"
|
||||
" To disable the search of included header files after special
|
||||
" libraries like gtk and glib add this line to your .vimrc:
|
||||
"
|
||||
" let g:syntastic_c_no_include_search = 1
|
||||
"
|
||||
" To enable header files being re-checked on every file write add the
|
||||
" following line to your .vimrc. Otherwise the header files are checked only
|
||||
" one time on initially loading the file.
|
||||
" In order to force syntastic to refresh the header includes simply
|
||||
" unlet b:syntastic_c_includes. Then the header files are being re-checked on
|
||||
" the next file write.
|
||||
"
|
||||
" let g:syntastic_c_auto_refresh_includes = 1
|
||||
"
|
||||
" Alternatively you can set the buffer local variable b:syntastic_c_cflags.
|
||||
" If this variable is set for the current buffer no search for additional
|
||||
" libraries is done. I.e. set the variable like this:
|
||||
"
|
||||
" let b:syntastic_c_cflags = ' -I/usr/include/libsoup-2.4'
|
||||
"
|
||||
" In order to add some custom include directories that should be added to the
|
||||
" gcc command line you can add those to the global variable
|
||||
" g:syntastic_c_include_dirs. This list can be used like this:
|
||||
"
|
||||
" let g:syntastic_c_include_dirs = [ 'includes', 'headers' ]
|
||||
"
|
||||
" Moreover it is possible to add additional compiler options to the syntax
|
||||
" checking execution via the variable 'g:syntastic_c_compiler_options':
|
||||
"
|
||||
" let g:syntastic_c_compiler_options = ' -ansi'
|
||||
"
|
||||
" Additionally the setting 'g:syntastic_c_config_file' allows you to define a
|
||||
" file that contains additional compiler arguments like include directories or
|
||||
" CFLAGS. The file is expected to contain one option per line. If none is
|
||||
" given the filename defaults to '.syntastic_c_config':
|
||||
"
|
||||
" let g:syntastic_c_config_file = '.config'
|
||||
"
|
||||
" Using the global variable 'g:syntastic_c_remove_include_errors' you can
|
||||
" specify whether errors of files included via the g:syntastic_c_include_dirs'
|
||||
" setting are removed from the result set:
|
||||
"
|
||||
" let g:syntastic_c_remove_include_errors = 1
|
||||
"
|
||||
" Use the variable 'g:syntastic_c_errorformat' to override the default error
|
||||
" format:
|
||||
"
|
||||
" let g:syntastic_c_errorformat = '%f:%l:%c: %trror: %m'
|
||||
|
||||
if exists('loaded_gcc_syntax_checker')
|
||||
finish
|
||||
endif
|
||||
let loaded_gcc_syntax_checker = 1
|
||||
|
||||
if !executable('gcc')
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
if !exists('g:syntastic_c_compiler_options')
|
||||
let g:syntastic_c_compiler_options = '-std=gnu99'
|
||||
endif
|
||||
|
||||
if !exists('g:syntastic_c_config_file')
|
||||
let g:syntastic_c_config_file = '.syntastic_c_config'
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_c_GetLocList()
|
||||
let makeprg = 'gcc -fsyntax-only '
|
||||
let errorformat = '%-G%f:%s:,%-G%f:%l: %#error: %#(Each undeclared '.
|
||||
\ 'identifier is reported only%.%#,%-G%f:%l: %#error: %#for '.
|
||||
\ 'each function it appears%.%#,%-GIn file included%.%#,'.
|
||||
\ '%-G %#from %f:%l\,,%f:%l:%c: %trror: %m,%f:%l:%c: '.
|
||||
\ '%tarning: %m,%f:%l:%c: %m,%f:%l: %trror: %m,'.
|
||||
\ '%f:%l: %tarning: %m,%f:%l: %m'
|
||||
|
||||
if exists('g:syntastic_c_errorformat')
|
||||
let errorformat = g:syntastic_c_errorformat
|
||||
endif
|
||||
|
||||
" add optional user-defined compiler options
|
||||
let makeprg .= g:syntastic_c_compiler_options
|
||||
|
||||
let makeprg .= ' '.shellescape(expand('%')).
|
||||
\ ' '.syntastic#c#GetIncludeDirs('c')
|
||||
|
||||
" determine whether to parse header files as well
|
||||
if expand('%') =~? '.h$'
|
||||
if exists('g:syntastic_c_check_header')
|
||||
let makeprg = 'gcc -c '.shellescape(expand('%')) .
|
||||
\ ' ' . g:syntastic_c_compiler_options .
|
||||
\ ' ' . syntastic#c#GetNullDevice() .
|
||||
\ ' ' . syntastic#c#GetIncludeDirs('c')
|
||||
else
|
||||
return []
|
||||
endif
|
||||
endif
|
||||
|
||||
" check if the user manually set some cflags
|
||||
if !exists('b:syntastic_c_cflags')
|
||||
" check whether to search for include files at all
|
||||
if !exists('g:syntastic_c_no_include_search') ||
|
||||
\ g:syntastic_c_no_include_search != 1
|
||||
" refresh the include file search if desired
|
||||
if exists('g:syntastic_c_auto_refresh_includes') &&
|
||||
\ g:syntastic_c_auto_refresh_includes != 0
|
||||
let makeprg .= syntastic#c#SearchHeaders()
|
||||
else
|
||||
" search for header includes if not cached already
|
||||
if !exists('b:syntastic_c_includes')
|
||||
let b:syntastic_c_includes = syntastic#c#SearchHeaders()
|
||||
endif
|
||||
let makeprg .= b:syntastic_c_includes
|
||||
endif
|
||||
endif
|
||||
else
|
||||
" use the user-defined cflags
|
||||
let makeprg .= b:syntastic_c_cflags
|
||||
endif
|
||||
|
||||
" add optional config file parameters
|
||||
let makeprg .= ' '.syntastic#c#ReadConfig(g:syntastic_c_config_file)
|
||||
|
||||
" process makeprg
|
||||
let errors = SyntasticMake({ 'makeprg': makeprg,
|
||||
\ 'errorformat': errorformat })
|
||||
|
||||
" filter the processed errors if desired
|
||||
if exists('g:syntastic_c_remove_include_errors') &&
|
||||
\ g:syntastic_c_remove_include_errors != 0
|
||||
return filter(errors,
|
||||
\ 'has_key(v:val, "bufnr") && v:val["bufnr"]=='.bufnr(''))
|
||||
else
|
||||
return errors
|
||||
endif
|
||||
endfunction
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: set et sts=4 sw=4:
|
||||
34
bundle/git_syntastic/syntax_checkers/c/sparse.vim
Normal file
34
bundle/git_syntastic/syntax_checkers/c/sparse.vim
Normal file
@@ -0,0 +1,34 @@
|
||||
"============================================================================
|
||||
"File: sparse.vim
|
||||
"Description: Syntax checking plugin for syntastic.vim using sparse.pl
|
||||
"Maintainer: Daniel Walker <dwalker at fifo99 dot com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"============================================================================
|
||||
if exists("loaded_sparse_syntax_checker")
|
||||
finish
|
||||
endif
|
||||
let loaded_sparse_syntax_checker = 1
|
||||
|
||||
" Bail if the user doesn't have `sparse.pl` or ./scripts/checkpatch.pl installed.
|
||||
if !executable("sparse")
|
||||
finish
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_c_GetLocList()
|
||||
let makeprg = "sparse "
|
||||
|
||||
let makeprg .= ' '.syntastic#c#ReadConfig(g:syntastic_sparse_config_file).' '
|
||||
|
||||
let makeprg .= shellescape(expand('%'))
|
||||
|
||||
let errorformat = '%f:%l:%c: %trror: %m,%f:%l:%c: %tarning: %m,'
|
||||
|
||||
let loclist = SyntasticMake({ 'makeprg': makeprg,
|
||||
\ 'errorformat': errorformat,
|
||||
\ 'defaults': {'bufnr': bufnr("")} })
|
||||
return loclist
|
||||
endfunction
|
||||
27
bundle/git_syntastic/syntax_checkers/co.vim
Normal file
27
bundle/git_syntastic/syntax_checkers/co.vim
Normal file
@@ -0,0 +1,27 @@
|
||||
"============================================================================
|
||||
"File: co.vim
|
||||
"Description: Syntax checking plugin for syntastic.vim
|
||||
"Maintainer: Andrew Kelley <superjoe30@gmail.com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
"============================================================================
|
||||
if exists("loaded_co_syntax_checker")
|
||||
finish
|
||||
endif
|
||||
let loaded_co_syntax_checker = 1
|
||||
|
||||
"bail if the user doesnt have coco installed
|
||||
if !executable("coco")
|
||||
finish
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_co_GetLocList()
|
||||
let makeprg = 'coco -c -o /tmp '.shellescape(expand('%'))
|
||||
let errorformat = '%EFailed at: %f,%ZSyntax%trror: %m on line %l,%EFailed at: %f,%Z%trror: Parse error on line %l: %m'
|
||||
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
endfunction
|
||||
30
bundle/git_syntastic/syntax_checkers/cs.vim
Normal file
30
bundle/git_syntastic/syntax_checkers/cs.vim
Normal file
@@ -0,0 +1,30 @@
|
||||
"============================================================================
|
||||
"File: cs.vim
|
||||
"Description: Syntax checking plugin for syntastic.vim
|
||||
"Maintainer: Daniel Walker <dwalker@fifo99.com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
"============================================================================
|
||||
|
||||
if exists('loaded_cs_syntax_checker')
|
||||
finish
|
||||
endif
|
||||
let loaded_cs_syntax_checker = 1
|
||||
|
||||
if !executable('mcs')
|
||||
finish
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_cs_GetLocList()
|
||||
let makeprg = "mcs --parse ".shellescape(expand('%'))
|
||||
let errorformat = '%f(%l\,%c): %trror %m'
|
||||
let loclist = SyntasticMake({ 'makeprg': makeprg,
|
||||
\ 'errorformat': errorformat,
|
||||
\ 'defaults': {'bufnr': bufnr("")} })
|
||||
return loclist
|
||||
endfunction
|
||||
|
||||
30
bundle/git_syntastic/syntax_checkers/elixir.vim
Normal file
30
bundle/git_syntastic/syntax_checkers/elixir.vim
Normal file
@@ -0,0 +1,30 @@
|
||||
"============================================================================
|
||||
"File: elixir.vim
|
||||
"Description: Syntax checking plugin for syntastic.vim
|
||||
"Maintainer: Richard Ramsden <rramsden at gmail dot com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
"============================================================================
|
||||
if exists("loaded_elixir_syntax_checker")
|
||||
finish
|
||||
endif
|
||||
let loaded_elixir_syntax_checker = 1
|
||||
|
||||
if !executable('elixir')
|
||||
finish
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_elixir_GetLocList()
|
||||
let makeprg = 'elixir ' . shellescape(expand('%'))
|
||||
let errorformat = '** %*[^\ ] %f:%l: %m'
|
||||
|
||||
let elixir_results = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
|
||||
if !empty(elixir_results)
|
||||
return elixir_results
|
||||
endif
|
||||
endfunction
|
||||
@@ -12,5 +12,7 @@ main([FileName]) ->
|
||||
warn_export_vars,
|
||||
strong_validation,
|
||||
report,
|
||||
{i, filename:dirname(FileName) ++ "/../include"}
|
||||
{i, filename:dirname(FileName) ++ "/../include"},
|
||||
{i, filename:dirname(FileName) ++ "/../deps"},
|
||||
{i, filename:dirname(FileName) ++ "/../../../deps"}
|
||||
]).
|
||||
|
||||
@@ -14,23 +14,26 @@ if exists("loaded_eruby_syntax_checker")
|
||||
endif
|
||||
let loaded_eruby_syntax_checker = 1
|
||||
|
||||
if !exists("g:syntastic_ruby_exec")
|
||||
let g:syntastic_ruby_exec = "ruby"
|
||||
endif
|
||||
|
||||
"bail if the user doesnt have ruby installed
|
||||
if !executable("ruby")
|
||||
if !executable(expand(g:syntastic_ruby_exec))
|
||||
finish
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_eruby_GetLocList()
|
||||
"gsub fixes issue #7 rails has it's own eruby syntax
|
||||
if has('win32')
|
||||
let makeprg='ruby -rerb -e "puts ERB.new(File.read(''' .
|
||||
\ (expand("%")) .
|
||||
\ ''').gsub(''<\%='',''<\%''), nil, ''-'').src" \| ruby -c'
|
||||
else
|
||||
let makeprg='RUBYOPT= ruby -rerb -e "puts ERB.new(File.read(''' .
|
||||
\ (expand("%")) .
|
||||
\ ''').gsub(''<\%='',''<\%''), nil, ''-'').src" \| RUBYOPT= ruby -c'
|
||||
let ruby_exec=expand(g:syntastic_ruby_exec)
|
||||
if !has('win32')
|
||||
let ruby_exec='RUBYOPT= ' . ruby_exec
|
||||
endif
|
||||
|
||||
"gsub fixes issue #7 rails has it's own eruby syntax
|
||||
let makeprg=ruby_exec . ' -rerb -e "puts ERB.new(File.read(''' .
|
||||
\ (expand("%")) .
|
||||
\ ''').gsub(''<\%='',''<\%''), nil, ''-'').src" \| ' . ruby_exec . ' -c'
|
||||
|
||||
let errorformat='%-GSyntax OK,%E-:%l: syntax error\, %m,%Z%p^,%W-:%l: warning: %m,%Z%p^,%-C%.%#'
|
||||
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat})
|
||||
|
||||
@@ -18,5 +18,5 @@ if exists("loaded_go_syntax_checker")
|
||||
endif
|
||||
let loaded_go_syntax_checker = 1
|
||||
|
||||
let s:supported_checkers = ["go", "6g", "gofmt"]
|
||||
let s:supported_checkers = ["go", "gofmt"]
|
||||
call SyntasticLoadChecker(s:supported_checkers, 'go')
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"============================================================================
|
||||
"File: go.vim
|
||||
"Description: Check go syntax using 'go build'
|
||||
"Description: Check go syntax using 'gofmt -l' followed by 'go [build|test]'
|
||||
"Maintainer: Kamil Kisiel <kamil@kamilkisiel.net>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
@@ -8,10 +8,44 @@
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
" This syntax checker does not reformat your source code.
|
||||
" Use a BufWritePre autocommand to that end:
|
||||
" autocmd FileType go autocmd BufWritePre <buffer> Fmt
|
||||
"============================================================================
|
||||
function! SyntaxCheckers_go_GetLocList()
|
||||
let makeprg = 'go build -o /dev/null'
|
||||
let errorformat = '%f:%l:%c:%m,%E%f:%l:%m,%C%m,%-G#%.%#'
|
||||
" Check with gofmt first, since `go build` and `go test` might not report
|
||||
" syntax errors in the current file if another file with syntax error is
|
||||
" compiled first.
|
||||
let makeprg = 'gofmt -l % 1>/dev/null'
|
||||
let errorformat = '%f:%l:%c: %m,%-G%.%#'
|
||||
let errors = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'defaults': {'type': 'e'} })
|
||||
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
if !empty(errors)
|
||||
return errors
|
||||
endif
|
||||
|
||||
" Test files, i.e. files with a name ending in `_test.go`, are not
|
||||
" compiled by `go build`, therefore `go test` must be called for those.
|
||||
if match(expand('%'), '_test.go$') == -1
|
||||
let makeprg = 'go build -o /dev/null'
|
||||
else
|
||||
let makeprg = 'go test -c -o /dev/null'
|
||||
endif
|
||||
let errorformat = '%f:%l:%c:%m,%f:%l%m,%-G#%.%#'
|
||||
|
||||
" The go compiler needs to either be run with an import path as an
|
||||
" argument or directly from the package directory. Since figuring out
|
||||
" the poper import path is fickle, just pushd/popd to the package.
|
||||
let popd = getcwd()
|
||||
let pushd = expand('%:p:h')
|
||||
"
|
||||
" pushd
|
||||
exec 'lcd ' . fnameescape(pushd)
|
||||
|
||||
let errors = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
|
||||
" popd
|
||||
exec 'lcd ' . fnameescape(popd)
|
||||
|
||||
return errors
|
||||
endfunction
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"============================================================================
|
||||
"File: gofmt.vim
|
||||
"Description: Check go syntax using gofmt
|
||||
"Description: Check go syntax using 'gofmt -l'
|
||||
"Maintainer: Brandon Thomson <bt@brandonthomson.com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
@@ -8,9 +8,12 @@
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
" This syntax checker does not reformat your source code.
|
||||
" Use a BufWritePre autocommand to that end:
|
||||
" autocmd FileType go autocmd BufWritePre <buffer> Fmt
|
||||
"============================================================================
|
||||
function! SyntaxCheckers_go_GetLocList()
|
||||
let makeprg = 'gofmt %'
|
||||
let makeprg = 'gofmt -l % 1>/dev/null'
|
||||
let errorformat = '%f:%l:%c: %m,%-G%.%#'
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'defaults': {'type': 'e'} })
|
||||
endfunction
|
||||
|
||||
@@ -9,34 +9,23 @@
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
"============================================================================
|
||||
if exists("loaded_haskell_syntax_checker")
|
||||
if exists('g:loaded_haskell_syntax_checker')
|
||||
finish
|
||||
endif
|
||||
let loaded_haskell_syntax_checker = 1
|
||||
let g:loaded_haskell_syntax_checker = 1
|
||||
|
||||
"bail if the user doesnt have ghc-mod installed
|
||||
if !executable("ghc-mod")
|
||||
finish
|
||||
if !exists('g:syntastic_haskell_checker')
|
||||
if executable('hdevtools')
|
||||
runtime! syntax_checkers/haskell/hdevtools.vim
|
||||
elseif executable('ghc-mod')
|
||||
runtime! syntax_checkers/haskell/ghc-mod.vim
|
||||
endif
|
||||
elseif g:syntastic_haskell_checker == 'hdevtools'
|
||||
if executable('hdevtools')
|
||||
runtime! syntax_checkers/haskell/hdevtools.vim
|
||||
endif
|
||||
elseif g:syntastic_haskell_checker == 'ghc-mod'
|
||||
if executable('ghc-mod')
|
||||
runtime! syntax_checkers/haskell/ghc-mod.vim
|
||||
endif
|
||||
endif
|
||||
|
||||
if !exists('g:syntastic_haskell_checker_args')
|
||||
let g:syntastic_haskell_checker_args = '--hlintOpt="--language=XmlSyntax"'
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_haskell_GetLocList()
|
||||
let ghcmod = 'ghc-mod ' . g:syntastic_haskell_checker_args
|
||||
let makeprg =
|
||||
\ "{ ".
|
||||
\ ghcmod . " check ". shellescape(expand('%')) . "; " .
|
||||
\ ghcmod . " lint " . shellescape(expand('%')) . ";" .
|
||||
\ " }"
|
||||
let errorformat = '%-G\\s%#,%f:%l:%c:%trror: %m,%f:%l:%c:%tarning: %m,'.
|
||||
\ '%f:%l:%c: %trror: %m,%f:%l:%c: %tarning: %m,%f:%l:%c:%m,'.
|
||||
\ '%E%f:%l:%c:,%Z%m,'
|
||||
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
endfunction
|
||||
|
||||
function! SyntaxCheckers_lhaskell_GetLocList()
|
||||
return SyntaxCheckers_haskell_GetLocList()
|
||||
endfunction
|
||||
|
||||
33
bundle/git_syntastic/syntax_checkers/haskell/ghc-mod.vim
Normal file
33
bundle/git_syntastic/syntax_checkers/haskell/ghc-mod.vim
Normal file
@@ -0,0 +1,33 @@
|
||||
"============================================================================
|
||||
"File: ghc-mod.vim
|
||||
"Description: Syntax checking plugin for syntastic.vim
|
||||
"Maintainer: Anthony Carapetis <anthony.carapetis at gmail dot com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
"============================================================================
|
||||
|
||||
if !exists('g:syntastic_haskell_checker_args')
|
||||
let g:syntastic_haskell_checker_args = '--hlintOpt="--language=XmlSyntax"'
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_haskell_GetLocList()
|
||||
let ghcmod = 'ghc-mod ' . g:syntastic_haskell_checker_args
|
||||
let makeprg =
|
||||
\ "{ ".
|
||||
\ ghcmod . " check ". shellescape(expand('%')) . "; " .
|
||||
\ ghcmod . " lint " . shellescape(expand('%')) . ";" .
|
||||
\ " }"
|
||||
let errorformat = '%-G\\s%#,%f:%l:%c:%trror: %m,%f:%l:%c:%tarning: %m,'.
|
||||
\ '%f:%l:%c: %trror: %m,%f:%l:%c: %tarning: %m,%f:%l:%c:%m,'.
|
||||
\ '%E%f:%l:%c:,%Z%m,'
|
||||
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
endfunction
|
||||
|
||||
function! SyntaxCheckers_lhaskell_GetLocList()
|
||||
return SyntaxCheckers_haskell_GetLocList()
|
||||
endfunction
|
||||
30
bundle/git_syntastic/syntax_checkers/haskell/hdevtools.vim
Normal file
30
bundle/git_syntastic/syntax_checkers/haskell/hdevtools.vim
Normal file
@@ -0,0 +1,30 @@
|
||||
"============================================================================
|
||||
"File: hdevtools.vim
|
||||
"Description: Syntax checking plugin for syntastic.vim
|
||||
"Maintainer: Anthony Carapetis <anthony.carapetis at gmail dot com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
"============================================================================
|
||||
|
||||
function! SyntaxCheckers_haskell_GetLocList()
|
||||
let makeprg = 'hdevtools check ' . get(g:, 'hdevtools_options', '') .
|
||||
\ ' ' . shellescape(expand('%'))
|
||||
|
||||
let errorformat= '\%-Z\ %#,'.
|
||||
\ '%W%f:%l:%c:\ Warning:\ %m,'.
|
||||
\ '%E%f:%l:%c:\ %m,'.
|
||||
\ '%E%>%f:%l:%c:,'.
|
||||
\ '%+C\ \ %#%m,'.
|
||||
\ '%W%>%f:%l:%c:,'.
|
||||
\ '%+C\ \ %#%tarning:\ %m,'
|
||||
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
endfunction
|
||||
|
||||
function! SyntaxCheckers_lhaskell_GetLocList()
|
||||
return SyntaxCheckers_haskell_GetLocList()
|
||||
endfunction
|
||||
33
bundle/git_syntastic/syntax_checkers/java/checkstyle.vim
Normal file
33
bundle/git_syntastic/syntax_checkers/java/checkstyle.vim
Normal file
@@ -0,0 +1,33 @@
|
||||
"============================================================================
|
||||
"File: checkstyle.vim
|
||||
"Description: Syntax checking plugin for syntastic.vim
|
||||
"Maintainer: Dmitry Geurkov <d.geurkov at gmail dot com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
" Tested with checkstyle 5.5
|
||||
"============================================================================
|
||||
if !exists("g:syntastic_java_checkstyle_classpath")
|
||||
let g:syntastic_java_checkstyle_classpath = 'checkstyle-5.5-all.jar'
|
||||
endif
|
||||
|
||||
if !exists("g:syntastic_java_checkstyle_conf_file")
|
||||
let g:syntastic_java_checkstyle_conf_file = 'sun_checks.xml'
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_java_GetLocList()
|
||||
|
||||
let makeprg = 'java -cp ' . g:syntastic_java_checkstyle_classpath . ' com.puppycrawl.tools.checkstyle.Main -c '
|
||||
\. g:syntastic_java_checkstyle_conf_file . ' '
|
||||
\. expand ( '%:p:h' ) . '/' . expand ( '%:t' )
|
||||
\. ' 2>&1 '
|
||||
|
||||
" check style format
|
||||
let errorformat = '%f:%l:%c:\ %m,%f:%l:\ %m'
|
||||
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
|
||||
endfunction
|
||||
160
bundle/git_syntastic/syntax_checkers/java/javac.vim
Normal file
160
bundle/git_syntastic/syntax_checkers/java/javac.vim
Normal file
@@ -0,0 +1,160 @@
|
||||
"============================================================================
|
||||
"File: javac.vim
|
||||
"Description: Syntax checking plugin for syntastic.vim
|
||||
"Maintainer: Jochen Keil <jochen.keil at gmail dot com>
|
||||
" Dmitry Geurkov <d.geurkov at gmail dot com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
"============================================================================
|
||||
|
||||
" Global Options
|
||||
if !exists("g:syntastic_java_javac_executable")
|
||||
let g:syntastic_java_javac_executable = 'javac'
|
||||
endif
|
||||
|
||||
if !exists("g:syntastic_java_javac_options")
|
||||
let g:syntastic_java_javac_options = '-Xlint'
|
||||
endif
|
||||
|
||||
if !exists("g:syntastic_java_javac_classpath")
|
||||
let g:syntastic_java_javac_classpath = ''
|
||||
endif
|
||||
|
||||
if !exists("g:syntastic_java_javac_delete_output")
|
||||
let g:syntastic_java_javac_delete_output = 1
|
||||
endif
|
||||
|
||||
if !exists("g:syntastic_java_javac_autoload_maven_classpath")
|
||||
let g:syntastic_java_javac_autoload_maven_classpath = 1
|
||||
endif
|
||||
|
||||
" Internal variables, do not ovveride those
|
||||
if !exists("g:syntastic_java_javac_maven_pom_cwd")
|
||||
let g:syntastic_java_javac_maven_pom_cwd = ''
|
||||
endif
|
||||
|
||||
if !exists("g:syntastic_java_javac_maven_pom_ftime")
|
||||
let g:syntastic_java_javac_maven_pom_ftime = 0
|
||||
endif
|
||||
|
||||
if !exists("g:syntastic_java_javac_maven_pom_classpath")
|
||||
let g:syntastic_java_javac_maven_pom_classpath = ''
|
||||
endif
|
||||
|
||||
function! s:AddToClasspath(classpath,path)
|
||||
if a:path == ''
|
||||
return a:classpath
|
||||
endif
|
||||
if a:classpath != '' && a:path != ''
|
||||
return a:classpath . ":" . a:path
|
||||
else
|
||||
return a:path
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:SaveClasspath()
|
||||
let path = ''
|
||||
let lines = getline(1,line('$'))
|
||||
for l in lines
|
||||
if l != ''
|
||||
let path .= l."\n"
|
||||
endif
|
||||
endfor
|
||||
let g:syntastic_java_javac_classpath = path
|
||||
let &modified = 0
|
||||
endfunction
|
||||
|
||||
function! s:EditClasspath()
|
||||
let command = 'syntastic javac classpath'
|
||||
let winnr = bufwinnr('^' . command . '$')
|
||||
if winnr < 0
|
||||
let pathlist = split(g:syntastic_java_javac_classpath,"\n")
|
||||
execute (len(pathlist)+5) . 'sp ' . fnameescape(command)
|
||||
au BufWriteCmd <buffer> call s:SaveClasspath() | bwipeout
|
||||
setlocal buftype=acwrite bufhidden=wipe nobuflisted noswapfile nowrap number
|
||||
for p in pathlist | call append(line('$')-1,p) | endfor
|
||||
else
|
||||
execute winnr . 'wincmd w'
|
||||
endif
|
||||
endfunction
|
||||
command! SyntasticJavacEditClasspath call s:EditClasspath()
|
||||
|
||||
function! s:GetMavenClasspath()
|
||||
if filereadable('pom.xml')
|
||||
if g:syntastic_java_javac_maven_pom_ftime != getftime('pom.xml') || g:syntastic_java_javac_maven_pom_cwd != getcwd()
|
||||
let mvn_classpath_output = split(system('mvn dependency:build-classpath'),"\n")
|
||||
let class_path_next = 0
|
||||
for line in mvn_classpath_output
|
||||
if class_path_next == 1
|
||||
let mvn_classpath = line
|
||||
break
|
||||
endif
|
||||
if match(line,'Dependencies classpath:') >= 0
|
||||
let class_path_next = 1
|
||||
endif
|
||||
endfor
|
||||
let mvn_classpath = s:AddToClasspath(mvn_classpath,'target/classes')
|
||||
let g:syntastic_java_javac_maven_pom_cwd = getcwd()
|
||||
let g:syntastic_java_javac_maven_pom_ftime = getftime('pom.xml')
|
||||
let g:syntastic_java_javac_maven_pom_classpath = mvn_classpath
|
||||
endif
|
||||
return g:syntastic_java_javac_maven_pom_classpath
|
||||
endif
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
function! SyntaxCheckers_java_GetLocList()
|
||||
|
||||
let javac_opts = g:syntastic_java_javac_options
|
||||
|
||||
if g:syntastic_java_javac_delete_output
|
||||
let output_dir = '/tmp/vim-syntastic'
|
||||
let javac_opts .= ' -d ' .output_dir
|
||||
endif
|
||||
|
||||
let javac_classpath = ''
|
||||
|
||||
" add classpathes to javac_classpath
|
||||
for path in split(g:syntastic_java_javac_classpath,"\n")
|
||||
if path != ''
|
||||
let ps = glob(path,0,1)
|
||||
if type(ps) == type([])
|
||||
for p in ps
|
||||
if p != '' | let javac_classpath = s:AddToClasspath(javac_classpath,p) | endif
|
||||
endfor
|
||||
else
|
||||
let javac_classpath = s:AddToClasspath(javac_classpath,ps)
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
|
||||
if g:syntastic_java_javac_autoload_maven_classpath
|
||||
let maven_classpath = s:GetMavenClasspath()
|
||||
let javac_classpath = s:AddToClasspath(javac_classpath,maven_classpath)
|
||||
endif
|
||||
|
||||
if javac_classpath != ''
|
||||
let javac_opts .= ' -cp ' . javac_classpath
|
||||
endif
|
||||
|
||||
let makeprg = g:syntastic_java_javac_executable . ' '. javac_opts . ' '
|
||||
\. expand ( '%:p:h' ) . '/' . expand ( '%:t' )
|
||||
\. ' 2>&1 '
|
||||
|
||||
" unashamedly stolen from *errorformat-javac* (quickfix.txt) and modified to include error types
|
||||
let errorformat = '%E%f:%l:\ error:\ %m,%W%f:%l:\ warning:\ %m,%A%f:%l:\ %m,%+Z%p^,%+C%.%#,%-G%.%#'
|
||||
|
||||
if g:syntastic_java_javac_delete_output
|
||||
call system('mkdir -p ' . output_dir)
|
||||
endif
|
||||
let r = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
if g:syntastic_java_javac_delete_output
|
||||
call system('rm -rf ' . output_dir)
|
||||
endif
|
||||
return r
|
||||
|
||||
endfunction
|
||||
@@ -0,0 +1,43 @@
|
||||
"============================================================================
|
||||
"File: closurecompiler.vim
|
||||
"Description: Javascript syntax checker - using Google Closure Compiler
|
||||
"Maintainer: Motohiro Takayama <mootoh at gmail dot com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"============================================================================
|
||||
"
|
||||
" To enable this plugin, edit the .vimrc like this:
|
||||
"
|
||||
" let g:syntastic_javascript_checker = "closurecompiler"
|
||||
"
|
||||
" and set the path to the Google Closure Compiler:
|
||||
"
|
||||
" let g:syntastic_javascript_closure_compiler_path = '/path/to/google-closure-compiler.jar'
|
||||
"
|
||||
" It takes additional options for Google Closure Compiler with the variable
|
||||
" g:syntastic_javascript_closure_compiler_options.
|
||||
"
|
||||
|
||||
if !exists("g:syntastic_javascript_closure_compiler_options")
|
||||
let g:syntastic_javascript_closure_compiler_options = ""
|
||||
endif
|
||||
|
||||
"bail if the user does not specify the path to closure compiler.
|
||||
if !exists("g:syntastic_javascript_closure_compiler_path")
|
||||
finish
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_javascript_GetLocList()
|
||||
if exists("g:syntastic_javascript_closure_compiler_file_list")
|
||||
let file_list = join(readfile(g:syntastic_javascript_closure_compiler_file_list), ' ')
|
||||
else
|
||||
let file_list = shellescape(expand('%'))
|
||||
endif
|
||||
|
||||
let makeprg = 'java -jar ' . g:syntastic_javascript_closure_compiler_path . ' ' . g:syntastic_javascript_closure_compiler_options . ' --js ' . file_list
|
||||
let errorformat = '%-GOK,%E%f:%l: ERROR - %m,%Z%p^,%W%f:%l: WARNING - %m,%Z%p^'
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
endfunction
|
||||
@@ -12,8 +12,16 @@ if !exists("g:syntastic_javascript_jsl_conf")
|
||||
let g:syntastic_javascript_jsl_conf = ""
|
||||
endif
|
||||
|
||||
function s:ConfFlag()
|
||||
if !empty(g:syntastic_javascript_jsl_conf)
|
||||
return "-conf " . g:syntastic_javascript_jsl_conf
|
||||
endif
|
||||
|
||||
return ""
|
||||
endfunction
|
||||
|
||||
function! SyntaxCheckers_javascript_GetLocList()
|
||||
let makeprg = "jsl " . g:syntastic_javascript_jsl_conf . " -nologo -nofilelisting -nosummary -nocontext -process ".shellescape(expand('%'))
|
||||
let makeprg = "jsl " . s:ConfFlag() . " -nologo -nofilelisting -nosummary -nocontext -process ".shellescape(expand('%'))
|
||||
let errorformat='%W%f(%l): lint warning: %m,%-Z%p^,%W%f(%l): warning: %m,%-Z%p^,%E%f(%l): SyntaxError: %m,%-Z%p^,%-G'
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
endfunction
|
||||
|
||||
41
bundle/git_syntastic/syntax_checkers/less-lint.coffee
Normal file
41
bundle/git_syntastic/syntax_checkers/less-lint.coffee
Normal file
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
fs = require 'fs'
|
||||
less = require 'less'
|
||||
args = process.argv.slice(1)
|
||||
options = {}
|
||||
|
||||
args = args.filter (arg) ->
|
||||
match = arg.match(/^-I(.+)$/)
|
||||
if match
|
||||
options.paths.push(match[1]);
|
||||
return false
|
||||
|
||||
match = arg.match(/^--?([a-z][\-0-9a-z]*)(?:=([^\s]+))?$/i)
|
||||
if match
|
||||
arg = match[1]
|
||||
else
|
||||
return arg
|
||||
|
||||
switch arg
|
||||
when 'strict-imports' then options.strictImports = true
|
||||
when 'include-path'
|
||||
options.paths = match[2].split(if os.type().match(/Windows/) then ';' else ':')
|
||||
.map (p) ->
|
||||
if p
|
||||
return path.resolve(process.cwd(), p)
|
||||
when 'O0' then options.optimization = 0
|
||||
when 'O1' then options.optimization = 1
|
||||
when 'O2' then options.optimization = 2
|
||||
|
||||
options.filename = args[1]
|
||||
|
||||
parser = new(less.Parser) options
|
||||
|
||||
fs.readFile(options.filename, 'utf-8', (err,data) ->
|
||||
parser.parse(data, (err, tree) ->
|
||||
if err
|
||||
less.writeError err
|
||||
process.exit(1)
|
||||
)
|
||||
)
|
||||
57
bundle/git_syntastic/syntax_checkers/less-lint.js
Normal file
57
bundle/git_syntastic/syntax_checkers/less-lint.js
Normal file
@@ -0,0 +1,57 @@
|
||||
// Generated by CoffeeScript 1.3.3
|
||||
(function() {
|
||||
var args, fs, less, options, parser;
|
||||
|
||||
fs = require('fs');
|
||||
|
||||
less = require('less');
|
||||
|
||||
args = process.argv.slice(1);
|
||||
|
||||
options = {};
|
||||
|
||||
args = args.filter(function(arg) {
|
||||
var match;
|
||||
match = arg.match(/^-I(.+)$/);
|
||||
if (match) {
|
||||
options.paths.push(match[1]);
|
||||
return false;
|
||||
}
|
||||
match = arg.match(/^--?([a-z][\-0-9a-z]*)(?:=([^\s]+))?$/i);
|
||||
if (match) {
|
||||
arg = match[1];
|
||||
} else {
|
||||
return arg;
|
||||
}
|
||||
switch (arg) {
|
||||
case 'strict-imports':
|
||||
return options.strictImports = true;
|
||||
case 'include-path':
|
||||
return options.paths = match[2].split(os.type().match(/Windows/) ? ';' : ':').map(function(p) {
|
||||
if (p) {
|
||||
return path.resolve(process.cwd(), p);
|
||||
}
|
||||
});
|
||||
case 'O0':
|
||||
return options.optimization = 0;
|
||||
case 'O1':
|
||||
return options.optimization = 1;
|
||||
case 'O2':
|
||||
return options.optimization = 2;
|
||||
}
|
||||
});
|
||||
|
||||
options.filename = args[1];
|
||||
|
||||
parser = new less.Parser(options);
|
||||
|
||||
fs.readFile(options.filename, 'utf-8', function(err, data) {
|
||||
return parser.parse(data, function(err, tree) {
|
||||
if (err) {
|
||||
less.writeError(err);
|
||||
return process.exit(1);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
}).call(this);
|
||||
@@ -43,7 +43,7 @@ end
|
||||
|
||||
function! SyntaxCheckers_less_GetLocList()
|
||||
let makeprg = s:check_file . ' ' . g:syntastic_less_options . ' ' .
|
||||
\ shellescape(expand('%')) . ' /dev/null'
|
||||
\ shellescape(expand('%')) . ' ' . syntastic#util#DevNull()
|
||||
let errorformat = '%m in %f:%l:%c'
|
||||
|
||||
return SyntasticMake({ 'makeprg': makeprg,
|
||||
|
||||
31
bundle/git_syntastic/syntax_checkers/lisp.vim
Normal file
31
bundle/git_syntastic/syntax_checkers/lisp.vim
Normal file
@@ -0,0 +1,31 @@
|
||||
"============================================================================
|
||||
"File: lisp.vim
|
||||
"Description: Syntax checking plugin for syntastic.vim
|
||||
"Maintainer: Karl Yngve Lervåg <karl.yngve@lervag.net>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
"============================================================================
|
||||
|
||||
if exists("loaded_lisp_syntax_checker")
|
||||
finish
|
||||
endif
|
||||
let loaded_lisp_syntax_checker = 1
|
||||
|
||||
" Bail if the user doesnt have clisp installed
|
||||
if !executable("clisp")
|
||||
finish
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_lisp_GetLocList()
|
||||
let makeprg = 'clisp -c ' . shellescape(expand('%'))
|
||||
let makeprg .= ' -o /tmp/clisp-vim-compiled-file'
|
||||
let efm = '%-G;%.%#,'
|
||||
let efm .= '%W%>WARNING:%.%#line %l : %m,%C %#%m,'
|
||||
let efm .= '%E%>The following functions were %m,%Z %m,'
|
||||
let efm .= '%-G%.%#'
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': efm })
|
||||
endfunction
|
||||
160
bundle/git_syntastic/syntax_checkers/objc.vim
Normal file
160
bundle/git_syntastic/syntax_checkers/objc.vim
Normal file
@@ -0,0 +1,160 @@
|
||||
"============================================================================
|
||||
"File: objc.vim
|
||||
"Description: Syntax checking plugin for syntastic.vim
|
||||
"Maintainer: Gregor Uhlenheuer <kongo2002 at gmail dot com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
"============================================================================
|
||||
|
||||
" In order to also check header files add this to your .vimrc:
|
||||
" (this usually creates a .gch file in your source directory)
|
||||
"
|
||||
" let g:syntastic_objc_check_header = 1
|
||||
"
|
||||
" To disable the search of included header files after special
|
||||
" libraries like gtk and glib add this line to your .vimrc:
|
||||
"
|
||||
" let g:syntastic_objc_no_include_search = 1
|
||||
"
|
||||
" To enable header files being re-checked on every file write add the
|
||||
" following line to your .vimrc. Otherwise the header files are checked only
|
||||
" one time on initially loading the file.
|
||||
" In order to force syntastic to refresh the header includes simply
|
||||
" unlet b:syntastic_objc_includes. Then the header files are being re-checked on
|
||||
" the next file write.
|
||||
"
|
||||
" let g:syntastic_objc_auto_refresh_includes = 1
|
||||
"
|
||||
" Alternatively you can set the buffer local variable b:syntastic_objc_cflags.
|
||||
" If this variable is set for the current buffer no search for additional
|
||||
" libraries is done. I.e. set the variable like this:
|
||||
"
|
||||
" let b:syntastic_objc_cflags = ' -I/usr/include/libsoup-2.4'
|
||||
"
|
||||
" In order to add some custom include directories that should be added to the
|
||||
" gcc command line you can add those to the global variable
|
||||
" g:syntastic_objc_include_dirs. This list can be used like this:
|
||||
"
|
||||
" let g:syntastic_objc_include_dirs = [ 'includes', 'headers' ]
|
||||
"
|
||||
" Moreover it is possible to add additional compiler options to the syntax
|
||||
" checking execution via the variable 'g:syntastic_objc_compiler_options':
|
||||
"
|
||||
" let g:syntastic_objc_compiler_options = ' -ansi'
|
||||
"
|
||||
" Additionally the setting 'g:syntastic_objc_config_file' allows you to define a
|
||||
" file that contains additional compiler arguments like include directories or
|
||||
" CFLAGS. The file is expected to contain one option per line. If none is
|
||||
" given the filename defaults to '.syntastic_objc_config':
|
||||
"
|
||||
" let g:syntastic_objc_config_file = '.config'
|
||||
"
|
||||
" Using the global variable 'g:syntastic_objc_remove_include_errors' you can
|
||||
" specify whether errors of files included via the g:syntastic_objc_include_dirs'
|
||||
" setting are removed from the result set:
|
||||
"
|
||||
" let g:syntastic_objc_remove_include_errors = 1
|
||||
"
|
||||
" Use the variable 'g:syntastic_objc_errorformat' to override the default error
|
||||
" format:
|
||||
"
|
||||
" let g:syntastic_objc_errorformat = '%f:%l:%c: %trror: %m'
|
||||
|
||||
if exists('loaded_objc_syntax_checker')
|
||||
finish
|
||||
endif
|
||||
let loaded_objc_syntax_checker = 1
|
||||
|
||||
if !executable('gcc')
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
if !exists('g:syntastic_objc_compiler_options')
|
||||
let g:syntastic_objc_compiler_options = ''
|
||||
endif
|
||||
|
||||
if !exists('g:syntastic_objc_config_file')
|
||||
let g:syntastic_objc_config_file = '.syntastic_objc_config'
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_objc_GetLocList()
|
||||
let makeprg = 'gcc -fsyntax-only -lobjc'
|
||||
let errorformat =
|
||||
\ '%-G%f:%s:,'.
|
||||
\ '%f:%l:%c: %trror: %m,'.
|
||||
\ '%f:%l:%c: %tarning: %m,'.
|
||||
\ '%f:%l:%c: %m,'.
|
||||
\ '%f:%l: %trror: %m,'.
|
||||
\ '%f:%l: %tarning: %m,'.
|
||||
\ '%f:%l: %m'
|
||||
|
||||
if exists('g:syntastic_objc_errorformat')
|
||||
let errorformat = g:syntastic_objc_errorformat
|
||||
endif
|
||||
|
||||
" add optional user-defined compiler options
|
||||
let makeprg .= g:syntastic_objc_compiler_options
|
||||
|
||||
let makeprg .= ' '.shellescape(expand('%')).
|
||||
\ ' '.syntastic#c#GetIncludeDirs('c')
|
||||
|
||||
" determine whether to parse header files as well
|
||||
if expand('%') =~? '.h$'
|
||||
if exists('g:syntastic_objc_check_header')
|
||||
let makeprg = 'gcc -c '.shellescape(expand('%')).
|
||||
\ ' '.syntastic#c#GetIncludeDirs('c')
|
||||
else
|
||||
return []
|
||||
endif
|
||||
endif
|
||||
|
||||
" check if the user manually set some cflags
|
||||
if !exists('b:syntastic_objc_cflags')
|
||||
" check whether to search for include files at all
|
||||
if !exists('g:syntastic_objc_no_include_search') ||
|
||||
\ g:syntastic_objc_no_include_search != 1
|
||||
" refresh the include file search if desired
|
||||
if exists('g:syntastic_objc_auto_refresh_includes') &&
|
||||
\ g:syntastic_objc_auto_refresh_includes != 0
|
||||
let makeprg .= syntastic#c#SearchHeaders()
|
||||
else
|
||||
" search for header includes if not cached already
|
||||
if !exists('b:syntastic_objc_includes')
|
||||
let b:syntastic_objc_includes = syntastic#c#SearchHeaders()
|
||||
endif
|
||||
let makeprg .= b:syntastic_objc_includes
|
||||
endif
|
||||
endif
|
||||
else
|
||||
" use the user-defined cflags
|
||||
let makeprg .= b:syntastic_objc_cflags
|
||||
endif
|
||||
|
||||
" add optional config file parameters
|
||||
let makeprg .= ' '.syntastic#c#ReadConfig(g:syntastic_objc_config_file)
|
||||
|
||||
" process makeprg
|
||||
let errors = SyntasticMake({ 'makeprg': makeprg,
|
||||
\ 'errorformat': errorformat })
|
||||
|
||||
" filter the processed errors if desired
|
||||
if exists('g:syntastic_objc_remove_include_errors') &&
|
||||
\ g:syntastic_objc_remove_include_errors != 0
|
||||
return filter(errors,
|
||||
\ 'has_key(v:val, "bufnr") && v:val["bufnr"]=='.bufnr(''))
|
||||
else
|
||||
return errors
|
||||
endif
|
||||
endfunction
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: set et sts=4 sw=4:
|
||||
@@ -24,10 +24,21 @@ if !exists("g:syntastic_phpcs_conf")
|
||||
let g:syntastic_phpcs_conf = ""
|
||||
endif
|
||||
|
||||
if !exists("g:syntastic_phpcs_disable")
|
||||
if !exists("g:syntastic_phpcs_disable") || !executable('phpcs')
|
||||
let g:syntastic_phpcs_disable = 0
|
||||
endif
|
||||
|
||||
|
||||
if !exists("g:syntastic_phpmd_disable") || !executable('phpmd')
|
||||
let g:syntastic_phpmd_disable = 0
|
||||
endif
|
||||
|
||||
|
||||
"Support passing selected rules to phpmd
|
||||
if !exists("g:syntastic_phpmd_rules")
|
||||
let g:syntastic_phpmd_rules = "codesize,design,unusedcode,naming"
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_php_GetHighlightRegex(item)
|
||||
let unexpected = matchstr(a:item['text'], "unexpected '[^']\\+'")
|
||||
if len(unexpected) < 1
|
||||
@@ -37,16 +48,19 @@ function! SyntaxCheckers_php_GetHighlightRegex(item)
|
||||
endfunction
|
||||
|
||||
function! SyntaxCheckers_php_GetLocList()
|
||||
|
||||
let errors = []
|
||||
|
||||
let makeprg = "php -l -d error_reporting=E_ALL -d display_errors=1 -d log_errors=0 ".shellescape(expand('%'))
|
||||
let errorformat='%-GNo syntax errors detected in%.%#,Parse error: %#syntax %trror\ , %m in %f on line %l,Parse %trror: %m in %f on line %l,Fatal %trror: %m in %f on line %l,%-G\s%#,%-GErrors parsing %.%#'
|
||||
let errors = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
|
||||
if empty(errors) && !g:syntastic_phpcs_disable && executable("phpcs")
|
||||
let errors = errors + s:GetPHPCSErrors()
|
||||
endif
|
||||
if empty(errors)
|
||||
if !g:syntastic_phpcs_disable
|
||||
let errors = errors + s:GetPHPCSErrors()
|
||||
endif
|
||||
|
||||
if !g:syntastic_phpmd_disable
|
||||
let errors = errors + s:GetPHPMDErrors()
|
||||
endif
|
||||
end
|
||||
|
||||
return errors
|
||||
endfunction
|
||||
@@ -56,3 +70,10 @@ function! s:GetPHPCSErrors()
|
||||
let errorformat = '%-GFile\,Line\,Column\,Type\,Message\,Source\,Severity,"%f"\,%l\,%c\,%t%*[a-zA-Z]\,"%m"\,%*[a-zA-Z0-9_.-]\,%*[0-9]'
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'subtype': 'Style' })
|
||||
endfunction
|
||||
|
||||
"Helper function. This one runs and parses phpmd tool output.
|
||||
function! s:GetPHPMDErrors()
|
||||
let makeprg = "phpmd " . shellescape(expand('%')) . " text " . g:syntastic_phpmd_rules
|
||||
let errorformat = '%E%f:%l%m'
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'subtype' : 'Style' })
|
||||
endfunction
|
||||
|
||||
@@ -23,6 +23,6 @@ endfunction
|
||||
|
||||
function! SyntaxCheckers_python_GetLocList()
|
||||
let makeprg = 'flake8 '.g:syntastic_python_checker_args.' '.shellescape(expand('%'))
|
||||
let errorformat = '%E%f:%l: could not compile,%-Z%p^,%E%f:%l:%c: %m,%E%f:%l: %m,%-G%.%#'
|
||||
let errorformat = '%E%f:%l: could not compile,%-Z%p^,%E%f:%l:%c: %m,%W%f:%l: %m,%-G%.%#'
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
endfunction
|
||||
|
||||
@@ -25,7 +25,7 @@ endif
|
||||
|
||||
function! SyntaxCheckers_rst_GetLocList()
|
||||
let makeprg = 'rst2pseudoxml.py --report=2 --exit-status=1 ' .
|
||||
\ shellescape(expand('%')) . ' /dev/null'
|
||||
\ shellescape(expand('%')) . ' ' . syntastic#util#DevNull()
|
||||
|
||||
let errorformat = '%f:%l:\ (%tNFO/1)\ %m,
|
||||
\%f:%l:\ (%tARNING/2)\ %m,
|
||||
|
||||
@@ -19,6 +19,10 @@ if !executable("sass")
|
||||
finish
|
||||
endif
|
||||
|
||||
"sass caching for large files drastically speeds up the checking, but store it
|
||||
"in a temp location otherwise sass puts .sass_cache dirs in the users project
|
||||
let s:sass_cache_location = tempname()
|
||||
|
||||
"By default do not check partials as unknown variables are a syntax error
|
||||
if !exists("g:syntastic_sass_check_partials")
|
||||
let g:syntastic_sass_check_partials = 0
|
||||
@@ -34,7 +38,7 @@ function! SyntaxCheckers_sass_GetLocList()
|
||||
if !g:syntastic_sass_check_partials && expand('%:t')[0] == '_'
|
||||
return []
|
||||
end
|
||||
let makeprg='sass --no-cache '.s:imports.' --check '.shellescape(expand('%'))
|
||||
let makeprg='sass --cache-location '.s:sass_cache_location.' '.s:imports.' --check '.shellescape(expand('%'))
|
||||
let errorformat = '%ESyntax %trror:%m,%C on line %l of %f,%Z%.%#'
|
||||
let errorformat .= ',%Wwarning on line %l:,%Z%m,Syntax %trror on line %l: %m'
|
||||
let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
|
||||
40
bundle/git_syntastic/syntax_checkers/slim.vim
Normal file
40
bundle/git_syntastic/syntax_checkers/slim.vim
Normal file
@@ -0,0 +1,40 @@
|
||||
"============================================================================
|
||||
"File: slim.vim
|
||||
"Description: Syntax checking plugin for syntastic.vim
|
||||
"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
" Want To Public License, Version 2, as published by Sam Hocevar.
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
"============================================================================
|
||||
if exists("loaded_slim_syntax_checker")
|
||||
finish
|
||||
endif
|
||||
let loaded_slim_syntax_checker = 1
|
||||
|
||||
"bail if the user doesnt have the slim binary installed
|
||||
if !executable("slimrb")
|
||||
finish
|
||||
endif
|
||||
|
||||
function! s:SlimrbVersion()
|
||||
if !exists('s:slimrb_version')
|
||||
let output = system("slimrb --version 2>/dev/null")
|
||||
let output = substitute(output, '\n$', '', '')
|
||||
let output = substitute(output, '^slim ', '', 'i')
|
||||
let s:slimrb_version = split(output, '\.')
|
||||
end
|
||||
return s:slimrb_version
|
||||
endfunction
|
||||
|
||||
function! SyntaxCheckers_slim_GetLocList()
|
||||
let makeprg = "slimrb -c " . shellescape(expand("%"))
|
||||
if SyntasticIsVersionAtLeast(s:SlimrbVersion(), [1,3,1])
|
||||
let errorformat = '%C\ %#%f\, Line %l\, Column %c,%-G\ %.%#,%ESlim::Parser::SyntaxError: %m,%+C%.%#'
|
||||
else
|
||||
let errorformat = '%C\ %#%f\, Line %l,%-G\ %.%#,%ESlim::Parser::SyntaxError: %m,%+C%.%#'
|
||||
endif
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
endfunction
|
||||
20
bundle/git_syntastic/syntax_checkers/typescript.vim
Normal file
20
bundle/git_syntastic/syntax_checkers/typescript.vim
Normal file
@@ -0,0 +1,20 @@
|
||||
"============================================================================
|
||||
"File: typescript.vim
|
||||
"Description: TypeScript syntax checker. For TypeScript v0.8.0
|
||||
"Maintainer: Bill Casarin <bill@casarin.ca>
|
||||
"============================================================================
|
||||
if exists("loaded_typescript_syntax_checker")
|
||||
finish
|
||||
endif
|
||||
let loaded_typescript_syntax_checker = 1
|
||||
|
||||
"bail if the user doesnt have tsc installed
|
||||
if !executable("tsc")
|
||||
finish
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_typescript_GetLocList()
|
||||
let makeprg = 'tsc ' . shellescape(expand("%")) . ' --out ' . syntastic#util#DevNull()
|
||||
let errorformat = '%f (%l\,%c): %m'
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
endfunction
|
||||
@@ -1,7 +1,7 @@
|
||||
"============================================================================
|
||||
"File: 6g.vim
|
||||
"File: zsh.vim
|
||||
"Description: Syntax checking plugin for syntastic.vim
|
||||
"Maintainer: Sam Nguyen <samxnguyen@gmail.com>
|
||||
"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
|
||||
"License: This program is free software. It comes without any warranty,
|
||||
" to the extent permitted by applicable law. You can redistribute
|
||||
" it and/or modify it under the terms of the Do What The Fuck You
|
||||
@@ -9,9 +9,18 @@
|
||||
" See http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
"
|
||||
"============================================================================
|
||||
function! SyntaxCheckers_go_GetLocList()
|
||||
let makeprg = '6g -o /dev/null %'
|
||||
let errorformat = '%E%f:%l: %m'
|
||||
if exists("loaded_zsh_syntax_checker")
|
||||
finish
|
||||
endif
|
||||
let loaded_zsh_syntax_checker = 1
|
||||
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
||||
"bail if the user doesnt have zsh installed
|
||||
if !executable("zsh")
|
||||
finish
|
||||
endif
|
||||
|
||||
function! SyntaxCheckers_zsh_GetLocList()
|
||||
let makeprg = 'zsh -n ' . shellescape(expand('%'))
|
||||
let errorformat = '%f:%l: %m'
|
||||
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat})
|
||||
endfunction
|
||||
Reference in New Issue
Block a user