| 
									
										
										
										
											2022-06-14 17:41:28 +01:00
										 |  |  | " Vim compiler file | 
					
						
							|  |  |  | " Compiler:      Perl syntax checks (perl -Wc) | 
					
						
							|  |  |  | " Maintainer:    vim-perl <vim-perl@googlegroups.com> | 
					
						
							|  |  |  | " Author:        Christian J. Robinson <heptite@gmail.com> | 
					
						
							|  |  |  | " Homepage:      https://github.com/vim-perl/vim-perl | 
					
						
							|  |  |  | " Bugs/requests: https://github.com/vim-perl/vim-perl/issues | 
					
						
							|  |  |  | " License:       Vim License (see :help license) | 
					
						
							|  |  |  | " Last Change:   2021 Nov 2 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | if exists("current_compiler") | 
					
						
							|  |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | let current_compiler = "perl" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if exists(":CompilerSet") != 2		" older Vim always used :setlocal | 
					
						
							|  |  |  |   command -nargs=* CompilerSet setlocal <args> | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let s:savecpo = &cpo | 
					
						
							|  |  |  | set cpo&vim | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-14 17:41:28 +01:00
										 |  |  | if get(g:, 'perl_compiler_force_warnings', 1) | 
					
						
							| 
									
										
										
										
											2008-06-24 22:09:24 +00:00
										 |  |  | 	let s:warnopt = 'W' | 
					
						
							| 
									
										
										
										
											2022-06-14 17:41:28 +01:00
										 |  |  | else | 
					
						
							|  |  |  | 	let s:warnopt = 'w' | 
					
						
							| 
									
										
										
										
											2008-06-24 22:09:24 +00:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | if getline(1) =~# '-[^ ]*T' | 
					
						
							| 
									
										
										
										
											2008-06-24 22:09:24 +00:00
										 |  |  | 	let s:taintopt = 'T' | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | else | 
					
						
							| 
									
										
										
										
											2008-06-24 22:09:24 +00:00
										 |  |  | 	let s:taintopt = '' | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-31 21:07:14 +02:00
										 |  |  | exe 'CompilerSet makeprg=perl\ -' . s:warnopt . s:taintopt . 'c\ %:S' | 
					
						
							| 
									
										
										
										
											2008-06-24 22:09:24 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | CompilerSet errorformat= | 
					
						
							|  |  |  | 	\%-G%.%#had\ compilation\ errors., | 
					
						
							|  |  |  | 	\%-G%.%#syntax\ OK, | 
					
						
							|  |  |  | 	\%m\ at\ %f\ line\ %l., | 
					
						
							|  |  |  | 	\%+A%.%#\ at\ %f\ line\ %l\\,%.%#, | 
					
						
							|  |  |  | 	\%+C%.%# | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Explanation: | 
					
						
							|  |  |  | " %-G%.%#had\ compilation\ errors.,  - Ignore the obvious. | 
					
						
							|  |  |  | " %-G%.%#syntax\ OK,                 - Don't include the 'a-okay' message. | 
					
						
							|  |  |  | " %m\ at\ %f\ line\ %l.,             - Most errors... | 
					
						
							|  |  |  | " %+A%.%#\ at\ %f\ line\ %l\\,%.%#,  - As above, including ', near ...' | 
					
						
							|  |  |  | " %+C%.%#                            -   ... Which can be multi-line. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let &cpo = s:savecpo | 
					
						
							|  |  |  | unlet s:savecpo |