Commit Graph

128 Commits

Author SHA1 Message Date
w0rp
36461b69d7 Support loading eslint from node_modules, re issue #118. 2016-10-23 13:04:41 +01:00
Bjorn Neergaard
f49f615ef6
Add support for dot-seperate linters, improve linter tests
This PR first and formost implements support for dot-seperate filetypes,
a very trivial change.

This closes #132

But more importantly, this PR vastly improves the test quality for
`ale#linter#Get`. It enables us to reset the state of ale's internal
linter cache, to facilitate better testing, as well as making use of
mocked linters instead of depending on linters on disk (which may
change). In addition, a dummy linter is defined to test the autoloading
behavior.

Header guards were removed from all linters as:

* A: ale won't try and load linters if they already exist in memory
* B: we can't reset state for testing if they can't be loaded again
2016-10-21 21:02:20 -05:00
Bjorn Neergaard
c697ef05bb
Add PEP8 handler test. 2016-10-20 22:52:25 -05:00
Bjorn Neergaard
c34664120b
Add ansible-lint support and factor out PEP8 handler 2016-10-20 09:23:23 -05:00
Bart Libert
a34fb0a6a7 Add support for cppcheck (#126)
* Add support for cppcheck

* Fix vint error in cppcheck handler

* Add vader test for CppCheck format handler
2016-10-20 12:30:45 +01:00
w0rp
02e42feeaa Make the function for waiting for jobs to complete more reliable. 2016-10-17 23:43:31 +01:00
w0rp
bf45ab6d8d Add a function for waiting for linters to complete, and add a test which checks that linting updates the loclist. 2016-10-17 23:26:19 +01:00
w0rp
654a172473 Make the nearest file search result absolute paths, and add tests to cover it. 2016-10-17 21:14:34 +01:00
w0rp
15df679765 #115 - Make ALE shut up about not being able to load linter files which don't exist when it works anyway. 2016-10-17 11:26:21 +01:00
w0rp
b07161fe38 #109 Use norm! instead of norm to solve remapping issues. 2016-10-16 16:09:01 +01:00
w0rp
1e756c0e24 Shut up about there being no autocmd events. 2016-10-14 19:17:12 +01:00
w0rp
a089fabb5c Add some unit tests for the BinarySearch function. 2016-10-13 21:24:47 +01:00
w0rp
f506887b28 Add a unit test for the loclist comparison function. 2016-10-13 20:56:18 +01:00
w0rp
ed44d8a146 #107 - Check if the buffer is gone by looking for a key in the map instead. 2016-10-13 15:21:28 +01:00
w0rp
a8c83a097b #107 - Handle jobs finishing for closed buffers 2016-10-13 15:13:11 +01:00
Bjorn Neergaard
f37896a898 Implement autocommand support 2016-10-13 15:05:42 +01:00
Bjorn Neergaard
d7b36e0cf2
Make statusline initial updates more elegant 2016-10-13 08:51:40 -05:00
Bjorn Neergaard
dc58db7640
Implement a more efficient statusbar
The statusbar now keeps its state in a separate variable, in order to
avoid excess iterations. The engine now updates said variable on run,
and a new function is made available for external statusbars to call (to
avoid dependencies on internal implementation details of ale).

To keep things light, the status bar code is not loaded unless invoked
by the user or an external plugin. On the first load it will update
itself from the global loclist, after that, the engine will handle all
updates.

The external integration function, `ale#statusline#Count()`, will return
a tuple in the format [E, W] (where E is errors, W is warnings), unless
no data exists (ie, the plugin doesn't have a linter for a file or has
not run yet), in which case it returns 0/false.
2016-10-13 08:51:38 -05:00
w0rp
1a8d596d26 Fix #99 2016-10-12 14:05:03 +01:00
w0rp
1d2405f2bc Fix an ale:linters bug, and add a test for it. 2016-10-11 23:48:43 +01:00
w0rp
78bcf96e34 Fix #87 - Allow linter filetypes to be aliased 2016-10-11 23:11:45 +01:00
Bjorn Neergaard
fc711a0615
Clean and reorganize flags/preferences 2016-10-11 10:02:36 -05:00
Bjorn Neergaard
ef14a04470
Make HandleUnixFormat Windows-compatible 2016-10-11 08:54:41 -05:00
Bjorn Neergaard
23442a2ec3
Introduce generic unix formatter
Two wrapper functions allow treating lines as errors or as warnings
2016-10-11 08:43:57 -05:00
Bjorn Neergaard
ca4badfb3a
Use explicit scope in the ale core, as advised by vint -s 2016-10-11 06:14:20 -05:00
w0rp
c37e053944 #81 - Run commands through the shell on Unix machines 2016-10-10 22:56:12 +01:00
w0rp
e9ad21b679 Fix cursor bugs. 2016-10-10 19:56:05 +01:00
Bjorn Neergaard
7f0ce89d2b First pass at optimizing ale to autoload (#80)
* First pass at optimizing ale to autoload

First off, the structure/function names should be revised a bit,
but I will wait for @w0rp's input before unifying the naming style.
Second off, the docs probably need some more work, I just did some
simple find-and-replace work.

With that said, this pull brings major performance gains for ale. On my
slowest system, fully loading ale and all its code takes around 150ms.

I have moved all of ale's autoload-able code to autoload/, and in
addition, implemented lazy-loading of linters. This brings load time on
that same system down to 5ms.

The only downside of lazy loading is that `g:ale_linters` cannot be
changed at runtime; however, it also speeds up performance at runtime by
simplfying the logic greatly.

Please let me know what you think!

Closes #59

* Address Travis/Vint errors

For some reason, ale isn't running vint for me...

* Incorporate feedback, make fixes

Lazy-loading logic is much improved.

* Add header comments; remove incorrect workaround

* Remove unneeded plugin guards

* Fix lazy-loading linter logic

Set the wrong variable....

* Fix capitialization
2016-10-10 19:51:29 +01:00