46 lines
1008 B
Python
46 lines
1008 B
Python
#
|
|
# linter.py
|
|
# Linter for SublimeLinter3, a code checking framework for Sublime Text 3
|
|
#
|
|
# Written by Gregory Oschwald
|
|
# Copyright (c) 2013 Gregory Oschwald
|
|
#
|
|
# License: MIT
|
|
#
|
|
|
|
"""This module exports the Perl plugin class."""
|
|
|
|
import shlex
|
|
from SublimeLinter.lint import Linter, util
|
|
|
|
|
|
class Perl(Linter):
|
|
|
|
"""Provides an interface to perl -c."""
|
|
defaults = {
|
|
'selector': 'source.perl, source.modernperl'
|
|
}
|
|
executable = 'perl'
|
|
|
|
regex = r'(?P<message>.+?) at - line (?P<line>\d+)(, near "(?P<near>.+?)")?'
|
|
error_stream = util.STREAM_STDERR
|
|
|
|
def cmd(self):
|
|
"""
|
|
Return the command line to execute.
|
|
|
|
Overridden so we can add include paths based on the 'include_dirs'
|
|
settings.
|
|
|
|
"""
|
|
|
|
command = [self.executable_path, '-c']
|
|
|
|
include_dirs = self.get_view_settings().get('include_dirs', [])
|
|
|
|
for e in include_dirs:
|
|
command.append('-I')
|
|
command.append(shlex.quote(e))
|
|
|
|
return command
|