Commit Graph

1211 Commits

Author SHA1 Message Date
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