From 7f0ce89d2b574fd5bdd0c050eaad92deeb63086d Mon Sep 17 00:00:00 2001 From: Bjorn Neergaard Date: Mon, 10 Oct 2016 13:51:29 -0500 Subject: 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 --- doc/ale.txt | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) (limited to 'doc/ale.txt') diff --git a/doc/ale.txt b/doc/ale.txt index bfe3cd8e..d7c5d25e 100644 --- a/doc/ale.txt +++ b/doc/ale.txt @@ -289,11 +289,30 @@ g:ale_statusline_format *g:ale_statusline_format* Type: |List| Default: `['%d error(s)', '%d warning(s)', 'OK']` - This variable defines the format of |`ALEGetStatusLine()`| output. + This variable defines the format of |`ale#statusline#status()`| output. - The 1st element is for errors - The 2nd element is for warnings - The 3rd element is for when no errors are detected +g:airline#extensions#ale#enabled *g:airline#extensions#ale#enabled* + + Type: |Number| + Default: `1` + + Enables or disables the |airline|'s native extension for ale, which displays + warnings and errors in the status line, prefixed by + |airline#extensions#ale#error_symbol| and + |airline#extensions#ale#warning_symbol|. + +g:airline#extensions#ale#enabled *g:airline#extensions#ale#enabled* + + Type: |Number| + Default: `1` + + Enables or disables the |airline|'s native extension for ale, which displays + warnings and errors in the status line, prefixed by + |airline#extensions#ale#error_symbol| and + |airline#extensions#ale#warning_symbol|. =============================================================================== 4. Linter Specific Options *ale-linter-options* @@ -413,14 +432,14 @@ g:ale_javascript_jshint_executable *g:ale_javascript_jshint_executable* =============================================================================== 5. API *ale-api* -ALELint(delay) *ALELint()* +ale#Queue(delay) *ale#Queue()* Run linters for the current buffer, based on the filetype of the buffer, with a given `delay`. A `delay` of `0` will run the linters immediately. The linters will always be run in the background. Calling this function again from the same buffer -ALEAddLinter(filetype, linter) *ALEAddLinter()* +ale#linter#Define(filetype, linter) *ale#linter#Define()* Given a |String| for a filetype and a |Dictionary| Describing a linter configuration, add a linter for the given filetype. The dictionaries each offer the following options: @@ -492,21 +511,21 @@ ALEAddLinter(filetype, linter) *ALEAddLinter()* 'command': g:ale#util#stdin_wrapper . ' .hs ghc -fno-code -v0', < -ALEGetLinters(filetype) *ALEGetLinters()* +ale#linter#Get(filetype) *ale#linter#Get()* Return all of linters configured for a given filetype as a |List| of - |Dictionary| values in the format specified by |ALEAddLinter()|. + |Dictionary| values in the format specified by |ale#linter#Define()|. -ALEGetStatusLine() *ALEGetStatusLine()* +ale#statusline#Status() *ale#statusline#Status()* Return a formatted string that can be added to the statusline. The output's format is defined in |`g:ale_statusline_format`|. To enable it, the following should be present in your |statusline| settings: > - %{ALEGetStatusLine()} + %{ale#statusline#status()} g:ale#util#stdin_wrapper *g:ale#util#stdin_wrapper* This variable names a wrapper script for sending stdin input to programs - which cannot accept input via stdin. See |ALEAddLinter| for more. + which cannot accept input via stdin. See |ale#linter#Define()| for more. =============================================================================== -- cgit v1.2.3