Commit Graph

15 Commits

Author SHA1 Message Date
w0rp c546f47cc0 Merge everything into the one global map. 2016-10-24 20:21:42 +01:00
w0rp 0dbf08f6d5 Add some comments to some lines to make things clearer. 2016-10-24 09:58:45 +01:00
w0rp 7481facd73 #107 Stop jobs when buffers close 2016-10-23 22:41:00 +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 1e756c0e24 Shut up about there being no autocmd events. 2016-10-14 19:17:12 +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 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
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