Commit Graph

283 Commits

Author SHA1 Message Date
LCD 47
c18065ea52 Security: disable the perl checker by default. 2014-03-03 09:43:14 +02:00
LCD 47
e323437303 More preparations for the foreign checkers feature. 2014-02-24 11:04:34 +02:00
LCD 47
25271f89ae Add buffer-local versions for auto_loc_list and loc_list_height. 2014-02-24 10:10:18 +02:00
LCD 47
b0191a144c Refactor of quiet_message filters.
Optimisation: merge handling of global and per-checker filters.
Feature: allow [] and '' values for quiet_messages filter elements.
Feature: allow overrides for quiet_messages filters.
Feature: buffer-local auto_jump and quiet_messages.
Safety: add magic specifiers to catch regexps.
Cleanup: minor restructuring for the forthcoming foreign checkers
feature.
2014-02-24 01:10:33 +02:00
LCD 47
47e5739f2e Formatting.
Improved folding.
Consistent naming of private methods.
Moving a few functions arround.
2014-02-23 11:07:39 +02:00
LCD 47
0f3a1bf450 Cleanup.
Enforce sane loading order.
Group global initialization.
Minor logging fixes.
New option: g:syntastic_bash_hack.
2014-02-23 10:22:37 +02:00
LCD 47
c658ff15a5 Registry refactor.
Simplify registry data structure.
Simplify registru functions.
Optimisations.
2014-02-17 23:32:53 +02:00
LCD 47
7795dff24b Add support for buffer versions of makeprgBuild variables.
New utility function syntastic#util#var().  Cleanup.
2014-02-12 21:25:51 +02:00
Joshua Rahm
0eed307fdb added syntax checking for .asm and .s files using gcc 2014-02-07 20:51:59 -07:00
LCD 47
8e49a6cfa7 Bug fix: pilot error adding g:syntastic_extra_filetypes. 2014-02-07 16:53:28 +02:00
LCD 47
b9cddb729f Add support for g:syntastic_extra_filetypes.
This is useful when registering checkers outside syntastic.
2014-02-07 11:37:28 +02:00
LCD 47
daf74923b7 Escape Festschrift, vol. 2: add function getExecEscaped(). 2014-02-07 11:19:30 +02:00
LCD 47
f5a45095e2 Escape Festschrift: getExec() needs to be escaped before being used. 2014-02-06 16:50:27 +02:00
LCD 47
ac09497345 Add shellcheck as zsh checker. 2014-02-05 09:31:50 +02:00
LCD 47
9c804a7be8 Bug fix: default highlighting incorrectly computes end of line. 2014-02-02 18:16:15 +02:00
LCD 47
dfc94ad8f8 New checker for texinfo: makeinfo. 2014-02-02 17:16:25 +02:00
LCD 47
650ee9c309 Allow makeprgBuild() arguments to be lists.
String arguments to makeprgBuild() are used unchanged.  Lists, both
inside checkers and in user variables, have their elements run through
syntastic#util#shescape() first.  This solves an otherwise untractable
escaping problem.
2014-02-02 12:20:47 +02:00
LCD 47
4948e5c254 Remove the gnumake checker.
There are situations when `make -s` can get stuck in a loop, even if
`make` itself would finish just fine.  When this happens, Vim gets stuck
too, and has to be killed.
2014-02-01 08:25:26 +02:00
LCD 47
2b3df92350 New jump mode for g:syntastic_auto_jump.
If g:syntastic_auto_jump is set to 2, jump only if the first issue found
is an error.
2014-01-30 13:20:40 +02:00
LCD 47
46a2181849 Cleanup for gnumake. 2014-01-29 10:22:57 +02:00
LCD 47
8aa2a6f4c1 Cleanup. 2014-01-29 01:12:42 +02:00
LCD 47
552078320c Further refactor: remove SyntasticMakeprgBuilder class. 2014-01-29 00:31:06 +02:00
LCD 47
44d7ffd7e0 makeprgBuild() refactor: add *_before and *_after options. 2014-01-28 21:44:44 +02:00
LCD 47
7434054e21 Optimisation: cache statusline flag. 2014-01-28 17:30:22 +02:00
LCD 47
f3240e6001 Cleanup: shut up lint warnings, formatting, doc nit. 2014-01-26 09:10:26 +02:00
Sergey Tatarintsev
0973ba27b8 Add bemhtml syntax checker 2014-01-24 17:19:39 +02:00
LCD 47
87e237a9d1 New checker: vimlint. 2014-01-24 11:58:57 +02:00
LCD 47
c78cf647a3 Remove deprecation warning for hasErrorsOrWarningsToDisplay().
Detecting whether hasErrorsOrWarningsToDisplay() is the same as
!isEmpty() can't be done reliably.  Just leave it alone for now.
2014-01-22 23:19:21 +02:00
LCD 47
d629be9e8d Workaround for powerline: resurrect hasErrorsOrWarningsToDisplay(). 2014-01-22 22:07:11 +02:00
LCD 47
e30c80623d Bug fix: loclist clobbered by filter().
Loclist cleanup: hasErrorsOrWarningsToDisplay() == !isEmpty().
Loclist cleanup: rename filteredRaw() --> getRaw().
Loclist cleanup: rename toRaw() --> copyRaw().
2014-01-22 21:14:31 +02:00
LCD 47
327ba4c415 Optimise loclist.filter(). 2014-01-04 10:01:43 +02:00
LCD 47
ee3c56c6f7 New feature: message filtering.
New options: g:syntastic_quiet_messages, and a per-checker version
of it named g:syntastic_<filetype>_<checker>_quiet_messages.
Option g:syntastic_quiet_warnings is now deprecated.
Option g:syntastic_ignore_files now refers only to files that shouldn't
be checked.
2014-01-04 10:01:43 +02:00
Joshua Rahm
e86385f789 added glsl checker 2013-12-27 01:07:08 -07:00
Andy Earnshaw
7b29bea72d New syntax checker actionscript/mxmlc 2013-12-20 23:35:29 +00:00
LCD 47
1852b5d386 :SyntasticInfo now takes an optional argument.
Added several clarifications to the manual.
2013-12-16 18:06:30 +02:00
LCD 47
6aafacbbb8 Update: dart_analyzer has been replaced by dartanalyzer. 2013-12-13 13:51:55 +02:00
LCD 47
c18ad3e5b8 New checker for yacc: bison. 2013-12-02 16:31:45 +02:00
LCD 47
9856b73b3a New checker for lex: flex. 2013-12-02 13:11:32 +02:00
LCD 47
aa63e1d79e Cleanup fo the racket checker. 2013-12-01 19:09:33 +02:00
LCD 47
1ee2930e24 SyntasticCheck accepts multiple arguments. Cache available checkers. 2013-11-30 00:56:10 +02:00
LCD 47
31a882e52e Minor cleanup: qualify case sensitivity. 2013-11-29 10:35:21 +02:00
LCD 47
cf66f35658 Cleanup the limbo checker. 2013-11-25 20:01:21 +02:00
syucream
1319e52925 Add syntax checking plugin for po files of gettext 2013-11-23 03:49:45 +09:00
LCD 047
fcb83a0d43 Merge pull request #876 from jcristovao/master
Bit rot: the registered name for ghc-mod is ghc_mod.
2013-11-21 08:38:05 -08:00
LCD 47
f97ebd2173 Minor cleanup.
Cleanup highlighting initialization.
Document the syntax highlight groups involved.
2013-11-21 18:27:52 +02:00
João Cristóvão
3721d9fca9 Name specified in ghc-mod.vim is ghc_mod, not ghc-mod. 2013-11-21 09:48:29 +00:00
LCD 47
4cc0b119c0 Minor cleanup. 2013-11-19 09:35:16 +02:00
LCD 47
cfe2ac68a4 New command :SyntasticSetLoclist. 2013-11-16 12:49:43 +02:00
LCD 47
7b36f9147f More detailed debugging.
Moved logging functions to autoload/syntastic/log.vim.
Cleanup debug functions.
Add a function to dump option variables.
2013-11-14 10:13:05 +02:00
LCD 47
bbd382ba5d Detailed debugging.
New variables: g:syntastic_debug_file, the name of a file where to write
debugging messages, in addition to adding them to the message history.

The old g:syntastic_debug is now a sum of flags:

*  1 - trace checker calls
*  2 - dump loclists
*  4 - trace notifiers
*  8 - trace autocommands
* 16 - dump syntastic variables (not implemented yet)
2013-11-13 10:58:33 +02:00
LCD 47
7c638f6f70 Minor cleanup. 2013-11-11 22:14:05 +02:00
LCD 47
802ccf53ab Fix luac highlighting. 2013-11-11 18:24:36 +02:00
LCD 47
a5b5fb784e Merge branch 'registry_cleanup' 2013-11-11 10:36:20 +02:00
LCD 47
a9e3b52c73 Add default checkers for all filetypes. 2013-11-08 17:28:41 +02:00
LCD 47
8922dc2388 Cleanup related to the HighlightRegex() functions. 2013-11-07 18:27:11 +02:00
LCD 47
1a5bf0118a Cleanup related to the HighlightRegex() functions. 2013-11-07 18:24:10 +02:00
LCD 47
6d81ac5dd0 Registry cleanup, stage 3.
Make syntastic#makeprg#build() a dictionary function.
Remove the mandatory checker argument to syntastic#makeprg#build().
2013-11-02 10:44:06 +02:00
LCD 47
3694908d05 Registry cleanup, stage 2.
(1) Checkers now have an _exec attribute, and an accessor getExec().
(2) CreateAndRegisterChecker() initializes _exec from an optional argument
'exec'.  If this argument is missing, 'name' is used instead.
(3) Functions SyntaxCheckers_*_IsAvailable() are now dictionary functions.
(4) Functions SyntaxCheckers_*_IsAvailable() are now optional.  When
they are missing, they are assumed to return executable(expand(self.getExec())).
(5) Argument 'exe' of function syntastic#makeprg#build() is now optional.
If this argument is missing, expand(self.getExec()) is used to set checker
executables.
2013-11-02 10:44:06 +02:00
LCD 47
28bce98a68 Registry cleanup, stage 1.
Make SyntaxCheckers_*_GetLocList() dictionary functions.
Pass a reference to the current checker to syntastic#makeprg#build().
Add an optional 'redirect' argument to CreateAndRegisterChecker().
Change the sh checker to use the new dictionary functions.
Add a new registry method getLocListRaw() (needed for the sh checker).
2013-11-02 10:44:06 +02:00
LCD 47
14cb306414 New option g:syntastic_id_checkers.
Default: 1.  There is also a local version b:syntastic_id_checkers.
2013-11-02 10:39:06 +02:00
LCD 47
c2e1429c4e Reword the message given by SyntasticInfo. 2013-11-01 16:51:50 +02:00
LCD 47
cd1d1a2a55 Cleanup. 2013-11-01 11:51:04 +02:00
LCD 47
c87d17444f Make syntastic re-read g:syntastic_mode_map at every check. 2013-10-28 21:53:10 +02:00
LCD 47
95aab2530e Try to avoid fun with magic / nomagic by qualifying regexps. 2013-10-25 15:46:16 +03:00
LCD 47
d238665385 Fix unwanted filter() and map() side effects. Minor cleanup. 2013-10-23 12:59:23 +03:00
LCD 47
500bac5f64 Make 'litcoffee' filetype an alias to 'coffee'. 2013-09-20 01:01:57 +03:00
LCD 47
e6482164f8 Fix setting title of the error window.
Sadly this is slow.
2013-08-15 21:24:57 +03:00
LCD 47
148021e348 Reuse loclists when possible, to allow :lolder and :lnewer.
This is not completely safe: if a loclist is created by something
other than syntastic before the error window is displayed, syntastic
will obliterate it.  There is currently no way to tell if a
loclist was created by syntastic or not.  Undocumented variable
g:syntastic_reuse_loc_lists can be used to disable reuse of loclists.
2013-08-13 09:31:43 +03:00
LCD 47
d82ee05a80 Add filetype maps for lhaskell and gentoo-metadata.
Remove checker for gentoo-metadata, since this is now an alias.
2013-07-29 18:16:54 +03:00
LCD 47
8c05dbf16e A first attempt at checking the exit code from the checkers. 2013-07-12 08:08:41 +03:00
LCD 47
6ba8e651cb Make shell escaping less produce fewer useless quotes.
Function inspired by tpope's vim-dispatch.
2013-07-04 21:04:20 +03:00
LCD 47
9dfc53c9c7 Optimisation: avoid placing duplicate signs. 2013-06-22 20:01:22 +03:00
LCD 47
e291f9f06d Bug fix: add enabled/disabled guards to notifiers.
Also handle the case when user disables notifiers after the first run.
This doesn't work for signs though, since it causes an ugly flicker in
the common case.
2013-06-22 08:03:03 +03:00
LCD 47
6a0dc699e0 Make cursor echo handle include files. 2013-06-21 20:48:17 +03:00
LCD 47
3a322a700f Registry defaults for puppet. 2013-06-18 18:53:28 +03:00
LCD 47
4f5320f2cb Debug message: shell return value. 2013-06-15 08:28:04 +03:00
LCD 47
6574872b55 Preserve order in checker lists. Fixes #684.
Keep order from g:syntastic_[filetype]_checkers and s:defaultCheckers in
getActiveCheckers().  Keep order in syntastic#util#unique().
2013-06-10 23:14:59 +03:00
LCD 47
7a919a4d0a Bug fix: getwinvar() got its third argument only in Vim 7.3.831. 2013-06-07 22:23:56 +03:00
LCD 47
4c888855d6 Sets the status line of the location window.
Shows the command used to produce the error list on the status line of
the location window.  Also fixed a (harmless) refresh bug.
2013-06-07 00:34:05 +03:00
LCD 47
8f430620c2 Cleanup: method naming. 2013-06-01 07:45:42 +03:00
LCD 47
d3354f175c Make syntastic#makeprg#build() aware of filetypes. Fixes #667. 2013-05-31 21:05:45 +03:00
LCD 47
e903f48b10 Merge branch 'ft_aliases' 2013-05-31 20:41:41 +03:00
LCD 47
e6bb7bd4c6 Bug fix: :SyntasticInfo didn't return information for composite filetypes. 2013-05-31 19:06:33 +03:00
LCD 47
1e8cc9e506 Added some registry defaults. 2013-05-31 14:37:51 +03:00
LCD 47
48b934b8aa Adds filetype aliases.
This allows checking of files with non-standard filetypes.
2013-05-31 10:19:52 +03:00
LCD 47
bad592ece8 Minor fixes. 2013-05-30 19:08:12 +03:00
LCD 47
d205c97e95 Clear loclist if there are no errors. Fixes #650. 2013-05-27 09:23:09 +03:00
LCD 47
7b5b259d89 More fixes backported from the buffers branch. 2013-05-15 09:04:34 +03:00
LCD 47
8a998efe54 Backport of small fixes from the buffers branch. 2013-05-14 20:21:57 +03:00
LCD 47
431508e19e Fix for #641: back off 003751a. 2013-05-06 19:26:45 +03:00
LCD 47
003751a48d Be less wastefull about loclists.
This is a first step towards making :lolder and :lnewer work with
Syntastic.  It still has a long way to go: a new loclist is now craeted
at each run of SyntasticMake(), but the notification machinery can only
use the last one.  Ideally a single loclist would be created per window
and then reused.
2013-05-04 09:36:52 +03:00
LCD 47
f7508703d6 Call notifiers.reset() only for enabled notifiers. 2013-05-03 09:24:34 +03:00
LCD 47
c9b9a9ef5e Fix for #624.
Handle closing the loclist window in a QuitPre.
Remove the prematurely added option g:syntastic_allow_quit.
2013-04-27 13:59:19 +03:00
LCD 47
63ec78cfb1 Adds an option "syntastic_allow_quit". 2013-04-26 16:20:43 +03:00
Martin Grenfell
b72d9e57da add :SyntasticInfo command to echo info about current checkers
Closes #557
2013-04-13 23:36:18 +01:00
Martin Grenfell
49b6012f98 add basic deprecation warning system 2013-04-13 17:19:24 +01:00
LCD 47
3083df59fc Addresses #530.
If variable g:syntastic_[filetype]_checker is found in user's config,
g:syntastic_[filetype]_checkers is set and a warning is issued.
2013-04-13 11:04:47 +03:00
LCD 47
4e32123b53 Make the enabled() method optional. 2013-04-11 23:49:39 +03:00
LCD 47
0248a848d3 Minor bug fix. 2013-04-10 13:48:19 +03:00
LCD 47
fac0d46c85 Rename signer.vim -> signs.vim. 2013-04-10 13:45:18 +03:00
LCD 47
11380c2d51 Minor cleanup.
Warning signs should not overwrite error ones.
Use buffers instead of file names when placing signs.
Other minor changes.
2013-04-10 13:40:03 +03:00
LCD 47
31b654301b Fix for #597.
If the first error in the location list refers to a file that isn't
loaded, entering the quickfix window would close it.

If `hidden` is set, `:quit`-ing the main file would not close the
quickfix window.
2013-04-09 18:20:14 +03:00
Martin Grenfell
2b6f6a5724 move s:Loclist() into SyntasticLoclist as a class method 2013-04-09 09:52:02 +01:00
LCD 47
92a25ed1a2 More cleaning up.
Renames notification classes.
Fixes a stupid bug related to the cursor notifier.
2013-04-09 01:10:17 +03:00
LCD 47
90dce6d3e7 Cleanup.
Makes cursor a standard notifier.
Adds a method enabled() to the notifiers.
Adds an optional method reset() to the notifiers.
2013-04-09 00:24:54 +03:00
Martin Grenfell
9a7db4a50b move a couple of options out into relevant notifiers 2013-04-07 23:30:24 +01:00
Martin Grenfell
dc3d80a204 more refactors to the Notifier classes
Move the autoloc list toggling out into its own notifier class.

Move the function that echos the error on the current line out into its
own notifier.

A few other changes were required in the process:
* move s:WideMsg() out into syntastic#util autoload lib so it is
  available from the cursor notifier.
* move s:ShowLocList() into the LocList class so it is available for
  the autoloclist notifier
* move s:HideLocList() into Loclist as a class method mainly to keep the
  two show/hide methods together
* move the s:old_line var into the Cursor notifier where it is needed
2013-04-07 23:06:02 +01:00
LCD 47
0deeefd08e Notifiers refactor.
Creates a notifier class.
Changes the existing signer class to fit the new notifier.
Moves balloons and highlighting to their own classes.
Caches and speeds up EchoCurrentError().
Adds all relevant messages to balloons rather than using the first one.
Fixes yet another (minor) bug related to g:syntastic_quiet_warnings.
2013-04-07 22:10:26 +03:00
LCD 47
01232979aa Fix signs initialization.
Signs should be initialized even if they aren't enabled at startup.
2013-04-06 23:10:27 +03:00
LCD 47
e473038e66 Fixes handling of g:syntastic_quiet_warnings.
Fixes signs (leftover from commit 878bcea).
2013-04-06 21:19:30 +03:00
LCD 47
878bceaac7 Fixes handling of g:syntastic_quiet_warnings. 2013-04-03 21:53:56 +03:00
Yosuke ONOUE
01ce9e3daf Fixed error on SyntasticToggleMode. 2013-03-25 14:16:58 +09:00
Martin Grenfell
d35e273d33 move the modemap code out into its own class 2013-03-22 22:50:47 +00:00
Martin Grenfell
925ba796c9 move the sign options into the sign class file 2013-03-22 18:08:27 +00:00
Martin Grenfell
84aae9b87f fix some guards 2013-03-22 18:07:50 +00:00
Martin Grenfell
6193c99f69 extract the sign code out into its own class 2013-03-21 17:46:13 +00:00
Martin Grenfell
fd90fdf9f4 SyntasticChecker: extract out the highlight regex population code 2013-03-18 10:01:56 +00:00
LCD 47
0906a5c5d1 Cleanup: a simpler and more efficient approach. 2013-03-18 10:01:56 +00:00
LCD 47
ff3c05a413 Fix syntax highlighting.
The variable force_highlight_callback is gone.

Highlight functions are now consistently named
SyntaxCheckers_<filetype>_<checker>_GetHighlightRegex(), and they
take precedence over highlighting based on column.
2013-03-08 14:45:57 +00:00
David Barnett
a4a2867e8e Add support for buffer-local b:syntastic_checkers var. 2013-02-24 21:35:57 -08:00
Martin Grenfell
8cc63c729a be more strict with default checker settings
If a filetype has default checker settings, then only allow those
checkers to be used by default. The user must manually specify other
checkers to use if they dont want the default.

In future the `s:defaultCheckers` hash should be more complex (or
possibly an object) that allows us to specify "only" vs "preferred".

This change was made in response to the html filetype using the w3
checker when tidy is not installed.
2013-02-21 16:50:39 +00:00
Martin Grenfell
924cf68c2e add a function to get the active checker names for a filetype 2013-02-09 17:49:01 +00:00
Martin Grenfell
368505eb60 coffee: split up coffee and coffeelint 2013-02-06 13:59:27 +00:00
Martin Grenfell
9f08ff9cf6 html: only try to run tidy by default - not w3c
The w3c checker goes out to the internet to get its results so disable
it by default.
2013-02-06 13:47:41 +00:00
Martin Grenfell
a66c19f731 move the MakeprgBuilder class in with the rest of the classes 2013-02-01 17:06:32 +00:00
Martin Grenfell
0b0dbc56e6 dont allow checkers with duplicate names for the same filetype 2013-02-01 15:01:31 +00:00
Martin Grenfell
c97951b601 make a few refactors
Add CurrentFiletypes function as this logic was getting used in a couple
of places and needed a home/name - mostly because of the bizarre
substitute call that needs explanation.

Move the code to get a syntax checker by name into SyntasticRegistry
2013-02-01 14:38:53 +00:00
Martin Grenfell
8f4695c6de add a class to encapsulate loclists
Add SyntasticLoclist class to wrap up loclists, and move loclist query
methods from syntatic.vim to the new class.

Make SyntasticChecker#getLocList() return a SyntasticLoclist.
2013-02-01 14:17:55 +00:00
Martin Grenfell
653611ccac split up php checker into php, phpmd and phpcs 2013-01-31 17:31:40 +00:00
Martin Grenfell
c166029fd8 add a couple more default checker settings 2013-01-31 10:52:15 +00:00
Martin Grenfell
a4a7b5697c update how checkers are chosen
* add a system for setting default checkers
* return the first check we find, unless told to chain checkers together
  by default settings, or user settings
2013-01-27 23:59:47 +00:00
Martin Grenfell
e0b8e87c93 refactor all the syntax checkers to use the new API and dir layout 2013-01-27 20:08:30 +00:00
Martin Grenfell
58ba8d3161 refactor how we represent and store checkers using python as a demo
Add 2 classes: SyntasticChecker and SyntasticRegistry.

SyntasticChecker represents a checker. It holds funcrefs to the checker
func, the highlight regex func and a new `isAvailable()` func (that
essentially just checks if the checker exe is installed)

SyntasticRegistry is responsible for:
* loading checkers
* storing checkers
* fetching the checkers to use according to availability and the users
  settings

Motivation/benefits:
* in the current system only one checker can be loaded per filetype
* syntax checkers cant be "chained" together
* the system is hard to add features to since fundamental concepts like
  syntax checkers and location lists arent represented explicitly

Things left to do:
* add a call to g:SyntasticRegistry.CreateAndRegisterChecker() to all
  checkers
* add an `isAvailable` function to all checkers
* move all checkers into `syntax_checkers/filetype/checkername.vim` -
  g:SyntasticRegistry assumes this layout, and its a good idea anyway
  for consistency and it makes it easier for users to add their own
  checkers

Things to do after all of the above:
* add a LocationList class and move all the filtering functions onto it
* possibly add an Error class that wraps up each item in a loc list

Random notes:
* with the new system you can select the checkers to use with e.g.
    `let g:syntastic_python_checkers=['flake8', 'pylint']`
  This will try flake8 first, and if no errors are detected it will move
  onto pylint.
2013-01-24 00:19:13 +00:00