aboutsummaryrefslogtreecommitdiff
path: root/.vim/doc
diff options
context:
space:
mode:
Diffstat (limited to '.vim/doc')
-rw-r--r--.vim/doc/airline.txt1554
-rw-r--r--.vim/doc/neomake.txt1052
-rw-r--r--.vim/doc/tags262
3 files changed, 2868 insertions, 0 deletions
diff --git a/.vim/doc/airline.txt b/.vim/doc/airline.txt
new file mode 100644
index 0000000..5ef18d3
--- /dev/null
+++ b/.vim/doc/airline.txt
@@ -0,0 +1,1554 @@
+*airline.txt* Lean and mean status/tabline that's light as air
+*airline* *vim-airline*
+ _ _ _ _ ~
+ __ _(_)_ __ ___ __ _(_)_ __| (_)_ __ ___ ~
+ \ \ / / | '_ ` _ \ _____ / _` | | '__| | | '_ \ / _ \ ~
+ \ V /| | | | | | |_____| (_| | | | | | | | | | __/ ~
+ \_/ |_|_| |_| |_| \__,_|_|_| |_|_|_| |_|\___| ~
+ ~
+==============================================================================
+CONTENTS *airline-contents*
+
+ 01. Intro ............................................... |airline-intro|
+ 02. Features ......................................... |airline-features|
+ 03. Name ................................................. |airline-name|
+ 04. Configuration ............................... |airline-configuration|
+ 05. Commands ......................................... |airline-commands|
+ 06. Autocommands ................................. |airline-autocommands|
+ 07. Customization ............................... |airline-customization|
+ 08. Extensions ..................................... |airline-extensions|
+ 09. Advanced Customization ............. |airline-advanced-customization|
+ 10. Funcrefs ......................................... |airline-funcrefs|
+ 11. Pipeline ......................................... |airline-pipeline|
+ 12. Writing Extensions ..................... |airline-writing-extensions|
+ 13. Writing Themes ..................................... |airline-themes|
+ 14. Troubleshooting ........................... |airline-troubleshooting|
+ 15. Contributions ............................... |airline-contributions|
+ 16. License ........................................... |airline-license|
+
+==============================================================================
+INTRODUCTION *airline-intro*
+
+vim-airline is a fast and lightweight alternative to powerline, written
+in 100% vimscript with no outside dependencies.
+
+When the plugin is correctly loaded, Vim will draw a nice statusline at the
+bottom of each window.
+
+That line consists of several sections, each one displaying some piece of
+information. By default (without configuration) this line will look like this: >
+
++-----------------------------------------------------------------------------+
+|~ |
+|~ |
+|~ VIM - Vi IMproved |
+|~ |
+|~ version 8.0 |
+|~ by Bram Moolenaar et al. |
+|~ Vim is open source and freely distributable |
+|~ |
+|~ type :h :q<Enter> to exit |
+|~ type :help<Enter> or <F1> for on-line help |
+|~ type :help version8<Enter> for version info |
+|~ |
+|~ |
++-----------------------------------------------------------------------------+
+| A | B | C X | Y | Z | [...] |
++-----------------------------------------------------------------------------+
+
+The statusline is the colored line at the bottom, which contains the sections
+(possibly in different colors):
+
+section meaning (example)~
+--------------------------
+ A displays the mode + additional flags like crypt/spell/paste (INSERT)
+ B VCS information (branch, hunk summary) (master)
+ C filename + read-only flag (~/.vim/vimrc RO)
+ X filetype (vim)
+ Y file encoding[fileformat] (utf-8[unix])
+ Z current position in the file
+ percentage % ☰ current line/number of lines ln : column
+ So this: 10% ☰ 10/100 ln : 20 means: >
+ 10% - 10 percent
+ ☰ 10 - current line 10
+ /100 ln - of 100 lines
+ : 20 - current column 20
+<
+ [...] additional sections (warning/errors/statistics)
+ from external plugins (e.g. YCM/syntastic/...)
+
+For a better look, those sections can be colored differently, depending on the mode and
+whether the current file is 'modified'
+
+Additionally, several extensions exists, that can provide additional feature (e.g. the
+tabline extension provides an extra statusline on the top of the Vim window and can
+display loaded buffers and tabs in the current Vim session).
+
+Most of this is customizable and the default sections can be configured using the vim
+variables g:airline_section_<name> (see |airline-default-sections|)
+
+==============================================================================
+FEATURES *airline-features*
+
+* tiny core written with extensibility in mind.
+* integrates with many popular plugins.
+* looks good with regular fonts, and provides configuration points so you
+ can use unicode or powerline symbols.
+* optimized for speed; it loads in under a millisecond.
+* fully customizable; if you know a little 'statusline' syntax you can
+ tweak it to your needs.
+* extremely easy to write themes.
+
+==============================================================================
+NAME *airline-name*
+
+Where did the name come from?
+
+I wrote this on an airplane, and since it's light as air it turned out to be a
+good name :-)
+
+==============================================================================
+CONFIGURATION *airline-configuration*
+
+There are a couple configuration values available (shown with their default
+values):
+
+* the separator used on the left side >
+ let g:airline_left_sep='>'
+<
+* the separator used on the right side >
+ let g:airline_right_sep='<'
+<
+* enable modified detection >
+ let g:airline_detect_modified=1
+
+* enable paste detection >
+ let g:airline_detect_paste=1
+<
+* enable crypt detection >
+ let g:airline_detect_crypt=1
+
+* enable spell detection >
+ let g:airline_detect_spell=1
+
+* display spelling language when spell detection is enabled
+ (if enough space is available) >
+ let g:airline_detect_spelllang=1
+<
+* enable iminsert detection >
+ let g:airline_detect_iminsert=0
+<
+* determine whether inactive windows should have the left section collapsed to
+ only the filename of that buffer. >
+ let g:airline_inactive_collapse=1
+<
+* Use alternative seperators for the statusline of inactive windows >
+ let g:airline_inactive_alt_sep=1
+<
+* themes are automatically selected based on the matching colorscheme. this
+ can be overridden by defining a value. >
+ let g:airline_theme='dark'
+<
+ Note: Only the dark theme is distributed with vim-airline. For more themes,
+ checkout the vim-airline-themes repository
+ (github.com/vim-airline/vim-airline-themes)
+
+* if you want to patch the airline theme before it gets applied, you can
+ supply the name of a function where you can modify the palette. >
+ let g:airline_theme_patch_func = 'AirlineThemePatch'
+ function! AirlineThemePatch(palette)
+ if g:airline_theme == 'badwolf'
+ for colors in values(a:palette.inactive)
+ let colors[3] = 245
+ endfor
+ endif
+ endfunction
+<
+* By default, airline will use unicode symbols if your encoding matches
+ utf-8. If you want the powerline symbols set this variable: >
+ let g:airline_powerline_fonts = 1
+<
+ If you want to use plain ascii symbols, set this variable: >
+ let g:airline_symbols_ascii = 1
+<
+* define the set of text to display for each mode. >
+ let g:airline_mode_map = {} " see source for the defaults
+
+ " or copy paste the following into your vimrc for shortform text
+ let g:airline_mode_map = {
+ \ '__' : '-',
+ \ 'c' : 'C',
+ \ 'i' : 'I',
+ \ 'ic' : 'I',
+ \ 'ix' : 'I',
+ \ 'n' : 'N',
+ \ 'ni' : 'N',
+ \ 'no' : 'N',
+ \ 'R' : 'R',
+ \ 'Rv' : 'R',
+ \ 's' : 'S',
+ \ 'S' : 'S',
+ \ '' : 'S',
+ \ 't' : 'T',
+ \ 'v' : 'V',
+ \ 'V' : 'V',
+ \ '' : 'V',
+ \ }
+<
+* define the set of filename match queries which excludes a window from having
+ its statusline modified >
+ let g:airline_exclude_filenames = [] " see source for current list
+<
+* define the set of filetypes which are excluded from having its window
+ statusline modified >
+ let g:airline_exclude_filetypes = [] " see source for current list
+<
+* defines whether the preview window should be excluded from have its window
+ statusline modified (may help with plugins which use the preview window
+ heavily) >
+ let g:airline_exclude_preview = 0
+<
+* disable the Airline customization for selective windows (this is a
+ window-local variable so you can disable it per-window) >
+ let w:airline_disabled = 1
+
+* Do not draw separators for empty sections (only for the active window) >
+ let g:airline_skip_empty_sections = 1
+<
+ This variable can be overriden by setting a window-local variable with
+ the same name (in the correct window): >
+ let w:airline_skip_empty_sections = 0
+<
+* Caches the changes to the highlighting groups, should therefore be faster.
+ Set this to one, if you experience a sluggish Vim: >
+ let g:airline_highlighting_cache = 0
+<
+* disable airline on FocusLost autocommand (e.g. when Vim loses focus): >
+ let g:airline_focuslost_inactive = 1
+<
+* configure the fileformat output
+ By default, it will display something like 'utf-8[unix]', however, you can
+ skip displaying it, if the output matches a configured string. To do so,
+ set >
+ let g:airline#parts#ffenc#skip_expected_string='utf-8[unix]'
+<
+==============================================================================
+COMMANDS *airline-commands*
+
+:AirlineTheme {theme-name} *:AirlineTheme*
+ Displays or changes the current theme.
+
+:AirlineToggleWhitespace *:AirlineToggleWhitespace*
+ Toggles whitespace detection.
+
+:AirlineToggle *:AirlineToggle*
+ Toggles between the standard 'statusline' and airline.
+
+:AirlineRefresh *:AirlineRefresh*
+ Refreshes all highlight groups and redraws the statusline.
+
+:AirlineExtensions *:AirlineExtensions*
+ Shows the status of all available airline extensions.
+
+==============================================================================
+AUTOCOMMANDS *airline-autocommands*
+
+Airline comes with some user-defined autocommands.
+
+|AirlineAfterInit| after plugin is initialized, but before the statusline
+ is replaced
+|AirlineAfterTheme| after theme of the statusline has been changed
+|AirlineToggledOn| after airline is activated and replaced the statusline
+|AirlineToggledOff| after airline is deactivated and the statusline is
+ restored to the original
+|AirlineModeChanged| The mode in Vim changed.
+
+==============================================================================
+CUSTOMIZATION *airline-customization*
+
+The following are some unicode symbols for customizing the left/right
+separators, as well as the powerline font glyphs.
+
+Note: You must define the dictionary first before setting values. Also, it's a
+good idea to check whether it exists as to avoid accidentally overwriting
+its contents. >
+ if !exists('g:airline_symbols')
+ let g:airline_symbols = {}
+ endif
+
+ " unicode symbols
+ let g:airline_left_sep = '»'
+ let g:airline_left_sep = '▶'
+ let g:airline_right_sep = '«'
+ let g:airline_right_sep = '◀'
+ let g:airline_symbols.crypt = '🔒'
+ let g:airline_symbols.linenr = '☰'
+ let g:airline_symbols.linenr = '␊'
+ let g:airline_symbols.linenr = '␤'
+ let g:airline_symbols.linenr = '¶'
+ let g:airline_symbols.maxlinenr = ''
+ let g:airline_symbols.maxlinenr = '㏑'
+ let g:airline_symbols.branch = '⎇'
+ let g:airline_symbols.paste = 'ρ'
+ let g:airline_symbols.paste = 'Þ'
+ let g:airline_symbols.paste = '∥'
+ let g:airline_symbols.spell = 'Ꞩ'
+ let g:airline_symbols.notexists = 'Ɇ'
+ let g:airline_symbols.whitespace = 'Ξ'
+
+ " powerline symbols
+ let g:airline_left_sep = ''
+ let g:airline_left_alt_sep = ''
+ let g:airline_right_sep = ''
+ let g:airline_right_alt_sep = ''
+ let g:airline_symbols.branch = ''
+ let g:airline_symbols.readonly = ''
+ let g:airline_symbols.linenr = '☰'
+ let g:airline_symbols.maxlinenr = ''
+
+ " old vim-powerline symbols
+ let g:airline_left_sep = '⮀'
+ let g:airline_left_alt_sep = '⮁'
+ let g:airline_right_sep = '⮂'
+ let g:airline_right_alt_sep = '⮃'
+ let g:airline_symbols.branch = '⭠'
+ let g:airline_symbols.readonly = '⭤'
+ let g:airline_symbols.linenr = '⭡'
+<
+
+For more intricate customizations, you can replace the predefined sections
+with the usual statusline syntax.
+
+Note: If you define any section variables it will replace the default values
+entirely. If you want to disable only certain parts of a section you can try
+using variables defined in the |airline-configuration| or |airline-extensions|
+section.
+ |airline-default-sections|
+>
+ variable names default contents
+ ----------------------------------------------------------------------------
+ let g:airline_section_a (mode, crypt, paste, spell, iminsert)
+ let g:airline_section_b (hunks, branch)[*]
+ let g:airline_section_c (bufferline or filename)
+ let g:airline_section_gutter (readonly, csv)
+ let g:airline_section_x (tagbar, filetype, virtualenv)
+ let g:airline_section_y (fileencoding, fileformat)
+ let g:airline_section_z (percentage, line number, column number)
+ let g:airline_section_error (ycm_error_count, syntastic-err, eclim,
+ languageclient_error_count)
+ let g:airline_section_warning (ycm_warning_count, syntastic-warn,
+ languageclient_warning_count, whitespace)
+
+ " [*] This section needs at least the fugitive extension or else
+ " it will remain empty
+ "
+ " here is an example of how you could replace the branch indicator with
+ " the current working directory (limited to 10 characters),
+ " followed by the filename.
+ let g:airline_section_b = '%-0.10{getcwd()}'
+ let g:airline_section_c = '%t'
+<
+ *airline#ignore_bufadd_pat*
+Determines a pattern to ignore a buffer name for various things (e.g. the
+tabline extension) or the read-only check. Default is
+`g:airline#extensions#tabline#ignore_bufadd_pat` (see below) or
+`'gundo|undotree|vimfiler|tagbar|nerd_tree|startify|!'` if it is unset.
+
+The "!" prevents terminal buffers to appear in the tabline.
+
+ *airline#extensions#tabline#exclude_buffers*
+Buffer numbers to be excluded from showing in the tabline (similar to
+|airline#ignore_bufadd_pat|.
+
+==============================================================================
+EXTENSIONS *airline-extensions*
+
+Most extensions are enabled by default and lazily loaded when the
+corresponding plugin (if any) is detected.
+
+By default, airline will attempt to load any extension it can find in the
+'runtimepath'. On some systems this can result in an undesirable startup
+cost. You can disable the check with the following flag. >
+ let g:airline#extensions#disable_rtp_load = 1
+<
+ Note: Third party plugins that rely on this behavior will be affected. You
+ will need to manually load them.
+
+Alternatively, if you want a minimalistic setup and would rather opt-in which
+extensions get loaded instead of disabling each individually, you can declare
+the following list variable: >
+ " an empty list disables all extensions
+ let g:airline_extensions = []
+
+ " or only load what you want
+ let g:airline_extensions = ['branch', 'tabline']
+<
+In addition, each extension can be configured individually. Following are the
+options for each extension (in alphabetical order, after the default extension)
+
+Usually, each extension will only be loaded if the required Vim plugin is
+installed as well, otherwise it will remain disabled. See the output of the
+|:AirlineExtensions| command.
+
+------------------------------------- *airline-ale*
+ale <https://github.com/w0rp/ale>
+
+* enable/disable ale integration >
+ let g:airline#extensions#ale#enabled = 1
+
+* ale error_symbol >
+ let airline#extensions#ale#error_symbol = 'E:'
+<
+* ale warning >
+ let airline#extensions#ale#warning_symbol = 'W:'
+
+* ale show_line_numbers >
+ let airline#extensions#ale#show_line_numbers = 1
+<
+* ale open_lnum_symbol >
+ let airline#extensions#ale#open_lnum_symbol = '(L'
+<
+* ale close_lnum_symbol >
+ let airline#extensions#ale#close_lnum_symbol = ')'
+<
+------------------------------------- *airline-branch*
+vim-airline will display the branch-indicator together with the branch name in
+the statusline, if one of the following plugins is installed:
+
+fugitive.vim <https://github.com/tpope/vim-fugitive>
+lawrencium <https://bitbucket.org/ludovicchabant/vim-lawrencium>
+vcscommand <http://www.vim.org/scripts/script.php?script_id=90>
+
+If a file is edited, that is not yet in the repository, the
+notexists symbol will be displayed after the branch name.
+
+* enable/disable fugitive/lawrencium integration >
+ let g:airline#extensions#branch#enabled = 1
+<
+* change the text for when no branch is detected >
+ let g:airline#extensions#branch#empty_message = ''
+<
+* define the order in which the branches of different vcs systems will be
+ displayed on the statusline (currently only for fugitive and lawrencium) >
+ let g:airline#extensions#branch#vcs_priority = ["git", "mercurial"]
+<
+* use vcscommand.vim if available >
+ let g:airline#extensions#branch#use_vcscommand = 0
+<
+* truncate long branch names to a fixed length >
+ let g:airline#extensions#branch#displayed_head_limit = 10
+<
+* customize formatting of branch name >
+ " default value leaves the name unmodifed
+ let g:airline#extensions#branch#format = 0
+
+ " to only show the tail, e.g. a branch 'feature/foo' becomes 'foo', use
+ let g:airline#extensions#branch#format = 1
+
+ " to truncate all path sections but the last one, e.g. a branch
+ " 'foo/bar/baz' becomes 'f/b/baz', use
+ let g:airline#extensions#branch#format = 2
+
+ " if a string is provided, it should be the name of a function that
+ " takes a string and returns the desired value
+ let g:airline#extensions#branch#format = 'CustomBranchName'
+ function! CustomBranchName(name)
+ return '[' . a:name . ']'
+ endfunction
+<
+* truncate sha1 commits at this number of characters >
+ let g:airline#extensions#branch#sha1_len = 10
+
+* customize branch name retrieval for any version control system >
+ let g:airline#extensions#branch#custom_head = 'GetScmBranch'
+ function! GetScmBranch()
+ if !exists('b:perforce_client')
+ let b:perforce_client = system('p4 client -o | grep Client')
+ " Invalidate cache to prevent stale data when switching clients. Use a
+ " buffer-unique group name to prevent clearing autocmds for other
+ " buffers.
+ exec 'augroup perforce_client-'. bufnr("%")
+ au!
+ autocmd BufWinLeave <buffer> silent! unlet! b:perforce_client
+ augroup END
+ endif
+ return b:perforce_client
+ endfunction
+<
+------------------------------------- *airline-bufferline*
+vim-bufferline <https://github.com/bling/vim-bufferline>
+
+* enable/disable bufferline integration >
+ let g:airline#extensions#bufferline#enabled = 1
+<
+* determine whether bufferline will overwrite customization variables >
+ let g:airline#extensions#bufferline#overwrite_variables = 1
+<
+------------------------------------- *airline-capslock*
+vim-capslock <https://github.com/tpope/vim-capslock>
+
+* enable/disable vim-capslock integration >
+ let g:airline#extensions#capslock#enabled = 1
+
+------------------------------------- *airline-csv*
+csv.vim <https://github.com/chrisbra/csv.vim>
+
+* enable/disable csv integration for displaying the current column. >
+ let g:airline#extensions#csv#enabled = 1
+<
+* change how columns are displayed. >
+ let g:airline#extensions#csv#column_display = 'Number' (default)
+ let g:airline#extensions#csv#column_display = 'Name'
+<
+------------------------------------- *airline-ctrlp*
+ctrlp <https://github.com/ctrlpvim/ctrlp.vim>
+
+* configure which mode colors should ctrlp window use (takes effect
+ only if the active airline theme doesn't define ctrlp colors) >
+ let g:airline#extensions#ctrlp#color_template = 'insert' (default)
+ let g:airline#extensions#ctrlp#color_template = 'normal'
+ let g:airline#extensions#ctrlp#color_template = 'visual'
+ let g:airline#extensions#ctrlp#color_template = 'replace'
+<
+* configure whether to show the previous and next modes (mru, buffer, etc...)
+>
+ let g:airline#extensions#ctrlp#show_adjacent_modes = 1
+<
+------------------------------------- *airline-ctrlspace*
+vim-ctrlspace <https://github.com/szw/vim-ctrlspace>
+
+* enable/disable vim-ctrlspace integration >
+ let g:airline#extensions#ctrlspace#enabled = 1
+<
+ To make the vim-ctrlspace integration work you will need to make the
+ ctrlspace statusline function call the correct airline function. Therefore
+ add the following line into your .vimrc: >
+
+ let g:CtrlSpaceStatuslineFunction = "airline#extensions#ctrlspace#statusline()"
+<
+------------------------------------- *airline-cursormode*
+cursormode <https://github.com/vheon/vim-cursormode>
+
+Built-in extension to displays cursor in different colors depending on the
+current mode (only works in terminals iTerm, AppleTerm and xterm)
+
+* enable cursormode integration >
+ let g:airline#extensions#cursormode#enabled = 1
+
+* mode function. Return value is used as key for the color mapping. Default is
+ |mode()|
+ `let g:cursormode_mode_func = 'mode'`
+
+* color mapping. Keys come from `g:cursormode_mode_func` (background value can
+ be appended)
+ `let g:cursormode_color_map = {`
+ `\ "nlight": '#000000',`
+ `\ "ndark": '#BBBBBB',`
+ `\ "i": g:airline#themes#{g:airline_theme}#palette.insert.airline_a[1],`
+ `\ "R": g:airline#themes#{g:airline_theme}#palette.replace.airline_a[1],`
+ `\ "v": g:airline#themes#{g:airline_theme}#palette.visual.airline_a[1],`
+ `\ "V": g:airline#themes#{g:airline_theme}#palette.visual.airline_a[1],`
+ `\ "\<C-V>": g:airline#themes#{g:airline_theme}#palette.visual.airline_a[1],`
+ `\ }`
+
+------------------------------------- *airline-default*
+The default extensions is an internal extension that is needed for handling
+all other extensions, takes care of how all sections will be combined into a
+'statusline' specific item and when to truncate each section.
+
+It understands all of the `g:` variables in the |airline-configuration|
+section, however it also has some more fine-tuned configuration values that
+you can use.
+
+* control which sections get truncated and at what width. >
+ let g:airline#extensions#default#section_truncate_width = {
+ \ 'b': 79,
+ \ 'x': 60,
+ \ 'y': 88,
+ \ 'z': 45,
+ \ 'warning': 80,
+ \ 'error': 80,
+ \ }
+
+ " Note: set to an empty dictionary to disable truncation.
+ let g:airline#extensions#default#section_truncate_width = {}
+<
+* configure the layout of the sections by specifying an array of two arrays
+ (first array is the left side, second array is the right side). >
+ let g:airline#extensions#default#layout = [
+ \ [ 'a', 'b', 'c' ],
+ \ [ 'x', 'y', 'z', 'error', 'warning' ]
+ \ ]
+<
+* configure the layout to not use %(%) grouping items in the statusline.
+ Try setting this to zero, if you notice bleeding color artifacts >
+ let airline#extensions#default#section_use_groupitems = 1
+<
+------------------------------------- *airline-eclim*
+eclim <https://eclim.org>
+
+* enable/disable eclim integration, which works well with the
+ |airline-syntastic| extension. >
+ let g:airline#extensions#eclim#enabled = 1
+
+------------------------------------- *airline-fugitiveline*
+This extension hides the fugitive://**// part of the buffer names, to only
+show the file name as if it were in the current working tree.
+It is deactivated by default if |airline-bufferline| is activated.
+
+* enable/disable bufferline integration >
+ let g:airline#extensions#fugitiveline#enabled = 1
+<
+------------------------------------- *airline-grepper*
+vim-grepper <https://github.com/mhinz/vim-grepper>
+
+* enable/disable vim-grepper integration >
+ let g:airline#extensions#grepper#enabled = 1
+
+------------------------------------- *airline-gutentags*
+vim-gutentags <https://github.com/ludovicchabant/vim-gutentags>
+
+* enable/disable vim-gutentags integration >
+ let g:airline#extensions#gutentags#enabled = 1
+
+------------------------------------- *airline-hunks*
+vim-gitgutter <https://github.com/airblade/vim-gitgutter>
+vim-signify <https://github.com/mhinz/vim-signify>
+changesPlugin <https://github.com/chrisbra/changesPlugin>
+quickfixsigns <https://github.com/tomtom/quickfixsigns_vim>
+
+* enable/disable showing a summary of changed hunks under source control. >
+ let g:airline#extensions#hunks#enabled = 1
+<
+* enable/disable showing only non-zero hunks. >
+ let g:airline#extensions#hunks#non_zero_only = 0
+<
+* set hunk count symbols. >
+ let g:airline#extensions#hunks#hunk_symbols = ['+', '~', '-']
+<
+------------------------------------- *airline-keymap*
+vim-keymap
+
+This extension displays the current 'keymap' in use.
+
+* enable/disable vim-keymap extension >
+ let g:airline#extensions#keymap#enabled = 1
+
+------------------------------------- *airline-languageclient*
+LanguageClient <https://github.com/autozimu/LanguageClient-neovim>
+(despite its name, it can be used for Vim and Neovim).
+
+* enable/disable LanguageClient integration >
+ let g:airline#extensions#languageclient#enabled = 1
+
+* languageclient error_symbol >
+ let airline#extensions#languageclient#error_symbol = 'E:'
+<
+* languageclient warning_symbol >
+ let airline#extensions#languageclient#warning_symbol = 'W:'
+
+* languageclient show_line_numbers >
+ let airline#extensions#languageclient#show_line_numbers = 1
+<
+* languageclient open_lnum_symbol >
+ let airline#extensions#languageclient#open_lnum_symbol = '(L'
+<
+* languageclient close_lnum_symbol >
+ let airline#extensions#languageclient#close_lnum_symbol = ')'
+
+------------------------------------- *airline-localsearch*
+localsearch <https://github.com/mox-mox/localsearch>
+
+* enable/disable localsearch indicator integration >
+ let g:airline#extensions#localsearch#enabled = 1
+
+------------------------------------- *airline-neomake*
+neomake <https://github.com/neomake/neomake>
+
+* enable/disable neomake integration >
+ let g:airline#extensions#neomake#enabled = 1
+
+* neomake error_symbol >
+ let airline#extensions#neomake#error_symbol = 'E:'
+<
+* neomake warning >
+ let airline#extensions#neomake#warning_symbol = 'W:'
+<
+------------------------------------- *airline-nerdtree*
+NerdTree <https://github.com/scrooloose/nerdtree.git>
+
+Airline displays the Nerdtree specific statusline (which can be configured using
+the |'NerdTreeStatusline'| variable (for details, see the help of NerdTree)
+
+------------------------------------- *airline-nrrwrgn*
+NrrwRgn <https://github.com/chrisbra/NrrwRgn>
+
+* enable/disable NrrwRgn integration >
+ let g:airline#extensions#nrrwrgn#enabled = 1
+
+------------------------------------- *airline-obsession*
+vim-obsession <https://github.com/tpope/vim-obsession>
+
+* enable/disable vim-obsession integration >
+ let g:airline#extensions#obsession#enabled = 1
+
+* set marked window indicator string >
+ let g:airline#extensions#obsession#indicator_text = '$'
+<
+------------------------------------- *airline-po*
+This extension will display the currently translated, untranslated and fuzzy
+messages when editing translations (po files). Related plugin (not necessary
+for this extension is po.vim from
+<http://www.vim.org/scripts/script.php?script_id=2530>
+
+It will be enabled if the `msgfmt` executable is available and one is editing
+files with the 'filetype' "po".
+
+* enable/disable po integration >
+ let g:airline#extensions#po#enabled = 1
+<
+* truncate width names to a fixed length >
+ let g:airline#extensions#po#displayed_limit = 0
+
+------------------------------------- *airline-promptline*
+promptline <https://github.com/edkolev/promptline.vim>
+
+* configure the path to the snapshot .sh file. Mandatory option. The created
+ file should be sourced by the shell on login >
+ " in .vimrc
+ airline#extensions#promptline#snapshot_file = "~/.shell_prompt.sh"
+
+ " in .bashrc/.zshrc
+ [ -f ~/.shell_prompt.sh ] && source ~/.shell_prompt.sh
+<
+* enable/disable promptline integration >
+ let g:airline#extensions#promptline#enabled = 0
+<
+* configure which mode colors should be used in prompt >
+ let airline#extensions#promptline#color_template = 'normal' (default)
+ let airline#extensions#promptline#color_template = 'insert'
+ let airline#extensions#promptline#color_template = 'visual'
+ let airline#extensions#promptline#color_template = 'replace'
+<
+------------------------------------- *airline-quickfix*
+The quickfix extension is a simple built-in extension which determines
+whether the buffer is a quickfix or location list buffer, and adjusts the
+title accordingly.
+
+* configure the title text for quickfix buffers >
+ let g:airline#extensions#quickfix#quickfix_text = 'Quickfix'
+<
+* configure the title text for location list buffers >
+ let g:airline#extensions#quickfix#location_text = 'Location'
+<
+------------------------------------- *airline-syntastic*
+syntastic <https://github.com/vim-syntastic/syntastic>
+
+* enable/disable syntastic integration >
+ let g:airline#extensions#syntastic#enabled = 1
+
+ Note: The recommendation from syntastic to modify the statusline directly
+ does not apply, if you use vim-airline, since it will take care for you of
+ adjusting the statusline.
+
+* syntastic error_symbol >
+ let airline#extensions#syntastic#error_symbol = 'E:'
+<
+* syntastic statusline error format (see |syntastic_stl_format|) >
+ let airline#extensions#syntastic#stl_format_err = '%E{[%e(#%fe)]}'
+
+* syntastic warning >
+ let airline#extensions#syntastic#warning_symbol = 'W:'
+<
+* syntastic statusline warning format (see |syntastic_stl_format|) >
+ let airline#extensions#syntastic#stl_format_warn = '%W{[%w(#%fw)]}'
+<
+------------------------------------- *airline-tabline*
+Note: If you're using the ctrlspace tabline only the option marked with (c)
+are supported!
+
+* enable/disable enhanced tabline. (c) >
+ let g:airline#extensions#tabline#enabled = 0
+
+* enable/disable displaying open splits per tab (only when tabs are opened). >
+ let g:airline#extensions#tabline#show_splits = 1
+
+* switch position of buffers and tabs on splited tabline (c)
+ (only supported for ctrlspace plugin). >
+ let g:airline#extensions#tabline#switch_buffers_and_tabs = 0
+<
+* enable/disable displaying buffers with a single tab. (c) >
+ let g:airline#extensions#tabline#show_buffers = 1
+
+Note: If you are using neovim (has('tablineat') = 1), then you can click
+on the tabline with the left mouse button to switch to that buffer, and
+with the middle mouse button to delete that buffer.
+
+* if you want to show the current active buffer like this:
+ ----------------------
+ buffer <buffer> buffer `
+>
+ let g:airline#extensions#tabline#alt_sep = 1
+< Only makes sense, if g:airline_right_sep is not empty.
+ default: 0
+
+* enable/disable displaying tabs, regardless of number. (c) >
+ let g:airline#extensions#tabline#show_tabs = 1
+<
+* configure filename match rules to exclude from the tabline. >
+ let g:airline#extensions#tabline#excludes = []
+
+* enable/disable display preview window buffer in the tabline. >
+ let g:airline#extensions#tabline#exclude_preview = 1
+
+* configure how numbers are displayed in tab mode. >
+ let g:airline#extensions#tabline#tab_nr_type = 0 " # of splits (default)
+ let g:airline#extensions#tabline#tab_nr_type = 1 " tab number
+ let g:airline#extensions#tabline#tab_nr_type = 2 " splits and tab number
+ let g:airline#extensions#tabline#tabnr_formatter = 'tabnr'
+
+ Note: last option can be used to specify a different formatter for
+ displaying the numbers. By default tabline/formatter/tabnr.vim is used
+<
+* enable/disable displaying tab number in tabs mode. >
+ let g:airline#extensions#tabline#show_tab_nr = 1
+
+* enable/disable displaying tab number in tabs mode for ctrlspace. (c) >
+ let g:airline#extensions#tabline#ctrlspace_show_tab_nr = 0
+
+* enable/disable displaying tab type (e.g. [buffers]/[tabs]) >
+ let g:airline#extensions#tabline#show_tab_type = 1
+
+* show buffer label at first position: >
+ let g:airline#extensions#tabline#buf_label_first = 1
+
+* rename label for buffers (default: 'buffers') (c) >
+ let g:airline#extensions#tabline#buffers_label = 'b'
+
+* rename label for tabs (default: 'tabs') (c) >
+ let g:airline#extensions#tabline#tabs_label = 't'
+
+* change the symbol for skipped tabs/buffers (default '...') >
+ let g:airline#extensions#tabline#overflow_marker = '…'
+
+* always show current tabpage/buffer first >
+ let airline#extensions#tabline#current_first = 1
+< default: 0
+
+* enable/disable displaying index of the buffer.
+
+ When enabled, numbers will be displayed in the tabline and mappings will be
+ exposed to allow you to select a buffer directly. Up to 11 mappings will be
+ exposed. >
+
+ let g:airline#extensions#tabline#buffer_idx_mode = 1
+ nmap <leader>1 <Plug>AirlineSelectTab1
+ nmap <leader>2 <Plug>AirlineSelectTab2
+ nmap <leader>3 <Plug>AirlineSelectTab3
+ nmap <leader>4 <Plug>AirlineSelectTab4
+ nmap <leader>5 <Plug>AirlineSelectTab5
+ nmap <leader>6 <Plug>AirlineSelectTab6
+ nmap <leader>7 <Plug>AirlineSelectTab7
+ nmap <leader>8 <Plug>AirlineSelectTab8
+ nmap <leader>9 <Plug>AirlineSelectTab9
+ nmap <leader>- <Plug>AirlineSelectPrevTab
+ nmap <leader>+ <Plug>AirlineSelectNextTab
+<
+ The <Plug>AirlineSelect<Prev/Next>Tab mapping handles counts as well,
+ so one can handle arbirtrarily number of buffers/tabs.
+
+ Note: Mappings will be ignored within "g:airline#extensions#tabline#keymap_ignored_filetypes".
+
+ Note: In buffer_idx_mode these mappings won't change the
+ current tab, but switch to the buffer visible in that tab.
+ Use |gt| for switching tabs.
+ In tabmode, those mappings will switch to the specified tab.
+
+* define the set of filetypes which are ignored selectTab keymappings >
+ let g:airline#extensions#tabline#keymap_ignored_filetypes = ['vimfiler', 'nerdtree']
+
+* change the display format of the buffer index >
+ let g:airline#extensions#tabline#buffer_idx_format = {
+ \ '0': '0 ',
+ \ '1': '1 ',
+ \ '2': '2 ',
+ \ '3': '3 ',
+ \ '4': '4 ',
+ \ '5': '5 ',
+ \ '6': '6 ',
+ \ '7': '7 ',
+ \ '8': '8 ',
+ \ '9': '9 '
+ \}
+<
+* defines the name of a formatter for how buffer names are displayed. (c) >
+ let g:airline#extensions#tabline#formatter = 'default'
+
+ " here is how you can define a 'foo' formatter:
+ " create a file in the dir autoload/airline/extensions/tabline/formatters/
+ " called foo.vim >
+ function! airline#extensions#tabline#formatters#foo#format(bufnr, buffers)
+ return fnamemodify(bufname(a:bufnr), ':t')
+ endfunction
+ let g:airline#extensions#tabline#formatter = 'foo'
+<
+
+ Note: the following variables are used by the 'default' formatter.
+ When no disambiguation is needed, both 'unique_tail_improved' and
+ 'unique_tail' delegate formatting to 'default', so these variables also
+ control rendering of unique filenames when using these formatters.
+
+ * configure whether buffer numbers should be shown. >
+ let g:airline#extensions#tabline#buffer_nr_show = 0
+<
+ * configure how buffer numbers should be formatted with |printf()|. >
+ let g:airline#extensions#tabline#buffer_nr_format = '%s: '
+<
+ * configure the formatting of filenames (see |filename-modifiers|). >
+ let g:airline#extensions#tabline#fnamemod = ':p:.'
+<
+ * configure collapsing parent directories in buffer name. >
+ let g:airline#extensions#tabline#fnamecollapse = 1
+<
+ * configure truncating non-active buffer names to specified length. >
+ let g:airline#extensions#tabline#fnametruncate = 0
+
+ " The `unique_tail` algorithm will display the tail of the filename, unless
+ " there is another file of the same name, in which it will display it along
+ " with the containing parent directory.
+ let g:airline#extensions#tabline#formatter = 'unique_tail'
+
+ " The following variables are also used by `unique_tail` formatter.
+ " the meanings are the same as the ones in default formatter.
+
+ let g:airline#extensions#tabline#fnamemod = ':p:.'
+ let g:airline#extensions#tabline#fnamecollapse = 1
+
+ " The `unique_tail_improved` - another algorithm, that will smartly uniquify
+ " buffers names with similar filename, suppressing common parts of paths.
+ let g:airline#extensions#tabline#formatter = 'unique_tail_improved'
+<
+* configure the minimum number of buffers needed to show the tabline. >
+ let g:airline#extensions#tabline#buffer_min_count = 0
+<
+ Note: this setting only applies to a single tab and when `show_buffers` is
+ true.
+
+* configure the minimum number of tabs needed to show the tabline. >
+ let g:airline#extensions#tabline#tab_min_count = 0
+<
+ Note: this setting only applies when `show_buffers` is false.
+
+* configure separators for the tabline only. >
+ let g:airline#extensions#tabline#left_sep = ''
+ let g:airline#extensions#tabline#left_alt_sep = ''
+ let g:airline#extensions#tabline#right_sep = ''
+ let g:airline#extensions#tabline#right_alt_sep = ''
+
+* configure whether close button should be shown: >
+ let g:airline#extensions#tabline#show_close_button = 1
+
+* configure symbol used to represent close button >
+ let g:airline#extensions#tabline#close_symbol = 'X'
+
+* configure pattern to be ignored on BufAdd autocommand >
+ " fixes unnecessary redraw, when e.g. opening Gundo window
+ let airline#extensions#tabline#ignore_bufadd_pat =
+ \ '\c\vgundo|undotree|vimfiler|tagbar|nerd_tree'
+
+Note: Enabling this extension will modify 'showtabline' and 'guioptions'.
+
+* enable Refresh of tabline buffers on |BufAdd| autocommands
+ (set this to one, if you note 'AirlineTablineRefresh', however, this
+ won't update airline on |:badd| commands) >
+ let airline#extensions#tabline#disable_refresh = 0
+
+* preserve windows when closing a buffer from the bufferline (neovim specific,
+ only works with buffers and not real tabs, default: 0) >
+ let airline#extensions#tabline#middle_click_preserves_windows = 1
+<
+------------------------------------- *airline-taboo*
+taboo.vim <https://github.com/gcmt/taboo.vim>
+
+* enable/disable taboo.vim integration >
+ let g:airline#extensions#taboo#enabled = 1
+<
+------------------------------------- *airline-tagbar*
+tagbar <https://github.com/majutsushi/tagbar>
+
+* enable/disable tagbar integration >
+ let g:airline#extensions#tagbar#enabled = 1
+<
+* change how tags are displayed (:help tagbar-statusline) >
+ let g:airline#extensions#tagbar#flags = '' (default)
+ let g:airline#extensions#tagbar#flags = 'f'
+ let g:airline#extensions#tagbar#flags = 's'
+ let g:airline#extensions#tagbar#flags = 'p'
+<
+------------------------------------- *airline-tmuxline*
+tmuxline <https://github.com/edkolev/tmuxline.vim>
+
+* enable/disable tmuxline integration >
+ let g:airline#extensions#tmuxline#enabled = 0
+<
+* configure which mode colors should be used in tmux statusline >
+ let airline#extensions#tmuxline#color_template = 'normal' (default)
+ let airline#extensions#tmuxline#color_template = 'insert'
+ let airline#extensions#tmuxline#color_template = 'visual'
+ let airline#extensions#tmuxline#color_template = 'replace'
+<
+* if specified, setting this option will trigger writing to the file whenever the
+ airline theme is applied, i.e. when :AirlineTheme is executed and on vim
+ startup >
+ airline#extensions#tmuxline#snapshot_file = "~/.tmux-statusline-colors.conf"
+<
+------------------------------------- *airline-vimagit*
+vimagit <https://github.com/jreybert/vimagit>
+
+* enable/disable vimagit integration >
+ let g:airline#extensions#vimagit#enabled = 1
+<
+------------------------------------- *airline-vimtex*
+vimtex <https://github.com/lervag/vimtex>
+
+Shows the current file's vimtex related info.
+
+* enable/disable vimtex integration >
+ let g:airline#extensions#vimtex#enabled = 1
+<
+* left and right delimiters (shown only when status string is not empty) >
+ let g:airline#extensions#vimtex#left = "{"
+ let g:airline#extensions#vimtex#right = "}"
+
+State indicators:
+
+* the current tex file is the main project file (nothing is shown by default) >
+ let g:airline#extensions#vimtex#main = ""
+
+* the current tex file is a subfile of the project
+ and the compilation is set for the main file >
+ let g:airline#extensions#vimtex#sub_main = "m"
+
+* the current tex file is a subfile of the project
+ and the compilation is set for this subfile >
+ let g:airline#extensions#vimtex#sub_local = "l"
+
+* single compilation is running >
+ let g:airline#extensions#vimtex#compiled = "c₁"
+
+* continuous compilation is running >
+ let g:airline#extensions#vimtex#continuous = "c"
+
+* viewer is opened >
+ let g:airline#extensions#vimtex#viewer = "v"
+
+------------------------------------- *airline-virtualenv*
+virtualenv <https://github.com/jmcantrell/vim-virtualenv>
+
+* enable/disable virtualenv integration >
+ let g:airline#extensions#virtualenv#enabled = 1
+<
+------------------------------------- *airline-whitespace*
+* enable/disable detection of whitespace errors. >
+ let g:airline#extensions#whitespace#enabled = 1
+<
+* disable detection of whitespace errors. >
+ " useful to call for particular file types (e.g., in "ftplugin/*")
+ silent! call airline#extensions#whitespace#disable()
+<
+* customize the type of mixed indent checking to perform. >
+ " must be all spaces or all tabs before the first non-whitespace character
+ let g:airline#extensions#whitespace#mixed_indent_algo = 0 (default)
+
+ " certain number of spaces are allowed after tabs, but not in between
+ " this algorithm works well for /** */ style comments in a tab-indented file
+ let g:airline#extensions#whitespace#mixed_indent_algo = 1
+
+ " spaces are allowed after tabs, but not in between
+ " this algorithm works well with programming styles that use tabs for
+ " indentation and spaces for alignment
+ let g:airline#extensions#whitespace#mixed_indent_algo = 2
+<
+* customize the whitespace symbol. >
+ let g:airline#extensions#whitespace#symbol = '!'
+<
+* configure which whitespace checks to enable. >
+ " indent: mixed indent within a line
+ " long: overlong lines
+ " trailing: trailing whitespace
+ " mixed-indent-file: different indentation in different lines
+ let g:airline#extensions#whitespace#checks = [ 'indent', 'trailing', 'long', 'mixed-indent-file' ]
+
+ " this can also be configured for an individual buffer
+ let b:airline_whitespace_checks = [ 'indent', 'trailing', 'long', 'mixed-indent-file' ]
+<
+* configure the maximum number of lines where whitespace checking is enabled. >
+ let g:airline#extensions#whitespace#max_lines = 20000
+<
+* configure whether a message should be displayed. >
+ let g:airline#extensions#whitespace#show_message = 1
+<
+* configure the formatting of the warning messages. >
+ let g:airline#extensions#whitespace#trailing_format = 'trailing[%s]'
+ let g:airline#extensions#whitespace#mixed_indent_format = 'mixed-indent[%s]'
+ let g:airline#extensions#whitespace#long_format = 'long[%s]'
+ let g:airline#extensions#whitespace#mixed_indent_file_format = 'mix-indent-file[%s]'
+
+* configure custom trailing whitespace regexp rule >
+ let g:airline#extensions#whitespace#trailing_regexp = '\s$'
+
+* configure, which filetypes have special treatment of /* */ comments,
+ matters for mix-indent-file algorithm: >
+ let airline#extensions#c_like_langs = ['arduino', 'c', 'cpp', 'cuda', 'go', 'javascript', 'ld', 'php']
+<
+* disable whitespace checking for an individual buffer >
+ " Checking is enabled by default because b:airline_whitespace_disabled
+ " is by default not defined:
+ unlet b:airline_whitespace_disabled
+
+ " If b:airline_whitespace_disabled is defined and is non-zero for a buffer,
+ " then whitespace checking will be disabled for that buffer; for example:
+ " let b:airline_whitespace_disabled = 1
+<
+* disable specific whitespace checks for individual filetypes >
+ " The global variable g:airline#extensions#whitespace#skip_indent_check_ft
+ " defines what whitespaces checks to skip per filetype.
+ " the list can contain any of the available checks,
+ " (see above at g:airline#extensions#whitespace#checks)
+ " To disable mixed-indent-file for go files use:
+ let g:airline#extensions#whitespace#skip_indent_check_ft = {'go': ['mixed-indent-file']}
+<
+------------------------------------- *airline-windowswap*
+vim-windowswap <https://github.com/wesQ3/vim-windowswap>
+
+* enable/disable vim-windowswap integration >
+ let g:airline#extensions#windowswap#enabled = 1
+
+* set marked window indicator string >
+ let g:airline#extensions#windowswap#indicator_text = 'WS'
+<
+------------------------------------- *airline-wordcount*
+* enable/disable word counting of the document/visual selection >
+ let g:airline#extensions#wordcount#enabled = 1
+<
+* set list of filetypes for which word counting is enabled: >
+ " The default value matches filetypes typically used for documentation
+ " such as markdown and help files.
+ let g:airline#extensions#wordcount#filetypes =
+ \ ['help', 'markdown', 'rst', 'org', 'text', 'asciidoc', 'tex', 'mail']
+ " Use ['all'] to enable for all filetypes.
+
+* defines the name of a formatter for word count will be displayed: >
+ " The default will try to guess LC_NUMERIC and format number accordingly
+ " e.g. 1,042 in English and 1.042 in German locale
+ let g:airline#extensions#wordcount#formatter = 'default'
+
+ " here is how you can define a 'foo' formatter:
+ " create a file in autoload/airline/extensions/wordcount/formatters/
+ " called foo.vim, which defines the following function signature:
+ function! airline#extensions#wordcount#formatters#foo#to_string(wordcount)
+ return a:wordcount == 0 ? 'NONE' :
+ \ a:wordcount > 100 ? 'okay' : 'not enough')
+ endfunction
+ let g:airline#extensions#wordline#formatter = 'foo'
+ " The function is passed the word count of the document or visual selection
+
+* defines how to display the wordcount statistics for the default formatter: >
+ " Defaults are below. If fmt_short isn't defined, fmt is used.
+ " '%s' will be substituted by the word count
+ " fmt_short is displayed when window width is less than 80
+ let g:airline#extensions#wordcount#formatter#default#fmt = '%s words'
+ let g:airline#extensions#wordcount#formatter#default#fmt_short = '%sW'
+<
+------------------------------------- *airline-xkblayout*
+
+The vim-xkblayout extension will only be enabled, if the global variable
+`g:XkbSwitchLib` is set. It should be set to a C library that will be called
+using |libcall()| with the function name `Xkb_Switch_getXkbLayout`. For
+details on how to use it, see e.g. <https://github.com/ierton/xkb-switch>
+
+* enable/disable vim-xkblayout extension >
+ let g:airline#extensions#xkblayout#enabled = 1
+
+* redefine keyboard layout short codes to shown in status >
+ let g:airline#extensions#xkblayout#short_codes = {'Russian-Phonetic': 'RU', 'ABC': 'EN'}
+<
+ 'RU' instead of system 'Russian-Phonetic',
+ 'EN' instead of system 'ABC'.
+
+ Default: >
+ let g:airline#extensions#xkblayout#short_codes = {'2SetKorean': 'KR', 'Chinese': 'CN', 'Japanese': 'JP'}
+
+* define path to the backend switcher library
+ Linux (Install https://github.com/ierton/xkb-switch): >
+ let g:XkbSwitchLib = '/usr/local/lib/libxkbswitch.so'
+<
+ macOS (Install https://github.com/vovkasm/input-source-switcher): >
+ let g:XkbSwitchLib = '/usr/local/lib/libInputSourceSwitcher.dylib'
+
+------------------------------------- *airline-xtabline*
+xtabline <https://github.com/mg979/vim-xtabline>
+
+This is a simplified and stand-alone version of the original extension.
+The bigger version adds fzf commands, session management, tab bookmarks, and
+features that you may not need. They both require |vim-airline| anyway.
+
+Main features and default mappings of this extension are:
+
+* tab cwd persistance, also across sessions if vim-obsession is being used.
+
+* buffer filtering in the tabline: only buffers whose path is within the tab
+ cwd will be shown in the tabline.
+
+* toggle tabs/buffer view on the tabline, toggle buffer filtering:
+>
+ nmap <F5> <Plug>XTablineToggleTabs
+ nmap <leader><F5> <Plug>XTablineToggleFiltering
+
+* reopen last closed tab, restoring its cwd and buffers:
+>
+ nmap <leader>tr <Plug>XTablineReopen <SID>ReopenLastTab
+
+* switch among filtered buffers (accepts count):
+>
+ nmap ]l <Plug>XTablineNextBuffer
+ nmap [l <Plug>XTablinePrevBuffer
+
+* go to N buffer (a count must be provided):
+>
+ nmap <BS> <Plug>XTablineSelectBuffer
+
+* alternative command if count is not provided:
+>
+ let g:xtabline_alt_action = "buffer #"
+
+Note: Make sure to also enable >
+ :let g:airline_extensions#tabline#show_buffers = 1
+otherwise the tabline might not actually be displayed correctly (see
+|airline-tabline|)
+
+* exclude fugitive logs and files that share part of the real buffer path:
+>
+ let g:xtabline_include_previews = 0 (default 1)
+
+* activate fast cwd selection mappings:
+>
+ let g:xtabline_cd_commands = 1 (default 0)
+
+* default mappings for them are:
+>
+ map <leader>cdc <Plug>XTablineCdCurrent
+ map <leader>cdd <Plug>XTablineCdDown1
+ map <leader>cd2 <Plug>XTablineCdDown2
+ map <leader>cd3 <Plug>XTablineCdDown3
+ map <leader>cdh <Plug>XTablineCdHome
+
+Note: if you don't use these mappings and change the cwd, the tabline won't
+be updated automatically. Either re-enter the tab or press <F5> two times.
+
+* here are some easier mappings to change tab buffer:
+>
+ nnoremap <silent> <expr> <Right> v:count?
+ \ airline#extensions#tabline#xtabline#next_buffer(v:count) : "\<Right>"
+ nnoremap <silent> <expr> <Left> v:count?
+ \ airline#extensions#tabline#xtabline#prev_buffer(v:count) : "\<Left>"
+
+------------------------------------- *airline-ycm*
+YouCompleteMe <https://github.com/Valloric/YouCompleteMe>
+
+Shows number of errors and warnings in the current file detected by YCM.
+
+* enable/disable YCM integration >
+ let g:airline#extensions#ycm#enabled = 1
+
+* set error count prefix >
+ let g:airline#extensions#ycm#error_symbol = 'E:'
+
+* set warning count prefix >
+ let g:airline#extensions#ycm#warning_symbol = 'W:'
+<
+==============================================================================
+ADVANCED CUSTOMIZATION *airline-advanced-customization*
+
+The defaults will accommodate the mass majority of users with minimal
+configuration. However, if you want to reposition sections or contents you can
+do so with built-in helper functions, which makes it possible to create
+sections in a more declarative style.
+
+------------------------------------- *airline-parts*
+A part is something that contains metadata that eventually gets rendered into
+the statusline. You can define parts that contain constant strings or
+functions. Defining parts is needed if you want to use features like automatic
+insertion of separators or hiding based on window width.
+
+For example, this is how you would define a part function: >
+ call airline#parts#define_function('foo', 'GetFooText')
+<
+Here is how you would define a part that is visible only if the window width
+greater than a minimum width. >
+ call airline#parts#define_minwidth('foo', 50)
+<
+Parts can be configured to be visible conditionally. >
+ call airline#parts#define_condition('foo', 'getcwd() =~ "work_dir"')
+<
+Now add part "foo" to section section airline_section_y: >
+ let g:airline_section_y = airline#section#create_right(['ffenc','foo'])
+<
+Note: Part definitions are combinative; e.g. the two examples above modify the
+same `foo` part.
+
+Note: Look at the source code and tests for the full API.
+
+------------------------------------- *airline-predefined-parts*
+Before is a list of parts that are predefined by vim-airline.
+
+* `mode` displays the current mode
+* `iminsert` displays the current insert method
+* `paste` displays the paste indicator
+* `crypt` displays the crypted indicator
+* `spell` displays the spell indicator
+* `filetype` displays the file type
+* `readonly` displays the read only indicator
+* `file` displays the filename and modified indicator
+* `path` displays the filename (absolute path) and modifier indicator
+* `linenr` displays the current line number
+* `maxlinenr` displays the number of lines in the buffer
+* `ffenc` displays the file format and encoding
+
+And the following are defined for their respective extensions:
+
+`ale_error_count` `ale_warning_count` `branch` `eclim` `hunks`
+`languageclient_error_count` `languageclient_warning_count`
+`neomake_error_count` `neomake_warning_count` `obsession` `syntastic-warn`
+`syntastic-err` `tagbar` `whitespace` `windowswap` `ycm_error_count`
+`ycm_warning_count`
+
+------------------------------------- *airline-accents*
+Accents can be defined on any part, like so: >
+ call airline#parts#define_accent('foo', 'red')
+<
+This will override the colors of that part by using what is defined in that
+particular accent. In the above example, the `red` accent is used, which means
+regardless of which section the part is used in, it will have red foreground
+colors instead of the section's default foreground color.
+
+The following accents are defined by default. Themes can define their variants
+of the colors, but defaults will be provided if missing. >
+ bold, italic, red, green, blue, yellow, orange, purple, none
+<
+The defaults configure the mode and line number parts to be bold, and the
+readonly part to be red.
+
+"none" is special. This can be used, to remove a bold accent from an existing
+theme. For example, usually the mode part of the statusline is usually defined
+to be bold. However, it can be hard to remove an existing bold accent from the
+default configuration. Therefore, you can use the none accent to remove
+existing accents, so if you put >
+ call airline#parts#define_accent('mode', 'none')
+the mode section will be set to non-bold font style.
+
+------------------------------------- *airline-sections*
+Once a part is defined, you can use helper functions to generate the
+statuslines for each section. For example, to use the part above, we could
+define a section like this: >
+ function! AirlineInit()
+ let g:airline_section_a = airline#section#create(['mode', ' ', 'foo'])
+ let g:airline_section_b = airline#section#create_left(['ffenc','file'])
+ let g:airline_section_c = airline#section#create(['%{getcwd()}'])
+ endfunction
+ autocmd User AirlineAfterInit call AirlineInit()
+<
+This will create a section with the `mode`, followed by a space, and our `foo`
+part in section `a`. Section `b` will have two parts with a left-side
+separator. And section `c` will contain the current path. You may notice that
+the space and cwd are not defined parts. For convenience, if a part of that
+key does not exist, it will be inserted as is. The unit tests will be a good
+resource for possibilities.
+
+Note: The use of |User| is important, because most extensions are lazily
+loaded, so we must give them a chance to define their parts before we can use
+them. Also this autocommand is only triggered, after the airline functions are
+actually available on startup.
+
+Note: The `airline#section#create` function and friends will do its best to
+create a section with the appropriate separators, but it only works for
+function and text parts. Special 'statusline' items like %f or raw/undefined
+parts will not work as it is not possible to inspect their widths/contents
+before rendering to the statusline.
+
+==============================================================================
+FUNCREFS *airline-funcrefs*
+
+vim-airline internally uses funcrefs to integrate with third party plugins,
+and you can tap into this functionality to extend it for you needs. This is
+the most powerful way to customize the statusline, and sometimes it may be
+easier to go this route than the above methods.
+
+Every section can have two values. The default value is the global `g:`
+variable which is used in the absence of a `w:` value. This makes it very easy
+to override only certain parts of the statusline by only defining window-local
+variables for a subset of all sections.
+
+------------------------------------- *add_statusline_func*
+ *add_inactive_statusline_func*
+The following is an example of how you can extend vim-airline to support a
+new plugin. >
+ function! MyPlugin(...)
+ if &filetype == 'MyPluginFileType'
+ let w:airline_section_a = 'MyPlugin'
+ let w:airline_section_b = '%f'
+ let w:airline_section_c = '%{MyPlugin#function()}'
+ let g:airline_variable_referenced_in_statusline = 'foo'
+ endif
+ endfunction
+ call airline#add_statusline_func('MyPlugin')
+<
+Notice that only the left side of the statusline is overwritten. This means
+the right side (the line/column numbers, etc) will be intact.
+
+To have the function act only on statuslines of inactive functions, use
+`airline#add_inactive_statusline_func('MyPlugin')`
+
+------------------------------------- *remove_statusline_func*
+You can also remove a function as well, which is useful for when you want a
+temporary override. >
+ call airline#remove_statusline_func('MyPlugin')
+<
+==============================================================================
+PIPELINE *airline-pipeline*
+
+Sometimes you want to do more than just use overrides. The statusline funcref
+is invoked and passed two arguments. The first of these arguments is the
+statusline builder. You can use this to build completely custom statuslines
+to your liking. Here is an example: >
+>
+ function! MyPlugin(...)
+ " first variable is the statusline builder
+ let builder = a:1
+
+ " WARNING: the API for the builder is not finalized and may change
+ call builder.add_section('Normal', '%f')
+ call builder.add_section('WarningMsg', '%{getcwd()}')
+ call builder.split()
+ call builder.add_section('airline_z', '%p%%')
+
+ " tell the core to use the contents of the builder
+ return 1
+ endfunction
+<
+The above example uses various example highlight groups to demonstrate
+that you can use any combination from the loaded colorscheme. However, if
+you want colors to change between modes, you should use one of the section
+highlight groups, e.g. `airline_a` and `airline_b`.
+
+The second variable is the context, which is a dictionary containing various
+values such as whether the statusline is active or not, and the window number.
+>
+ context = {
+ 'winnr': 'the window number for the statusline',
+ 'active': 'whether the window is active or not',
+ 'bufnr': 'the current buffer for this window',
+ }
+<
+------------------------------------- *airline-pipeline-return-codes*
+The pipeline accepts various return codes and can be used to determine the
+next action. The following are the supported codes: >
+ 0 the default, continue on with the next funcref
+ -1 do not modify the statusline
+ 1 modify the statusline with the current contents of the builder
+<
+Note: Any value other than 0 will halt the pipeline and prevent the next
+funcref from executing.
+
+==============================================================================
+WRITING EXTENSIONS *airline-writing-extensions*
+
+For contributions into the plugin, here are the following guidelines:
+
+1. For simple 'filetype' checks, they can be added directly into the
+`extensions.vim` file.
+
+2. Pretty much everything else should live as a separate file under the
+`extensions/` directory.
+
+ a. Inside `extensions.vim`, add a check for some variable or command that
+ is always available (these must be defined in `plugin/`, and _not_
+ `autoload/` of the other plugin). If it exists, then initialize the
+ extension. This ensures that the extension is loaded if and only if the
+ user has the other plugin installed. Also, a check to
+ `airline#extensions#foo_plugin#enabled` should be performed to allow the
+ user to disable it.
+
+ b. Configuration variables for the extension should reside in the
+ extension, e.g. `g:airline#extensions#foo_plugin#bar_variable`.
+
+See the source of |example.vim| for documented code of how to write one.
+Looking at the other extensions is also a good resource.
+
+==============================================================================
+WRITING THEMES *airline-themes*
+
+Themes are written "close to the metal" -- you will need to know some basic
+VimL syntax to write a theme, but if you've written in any programming
+language before it will be easy to pick up.
+
+The |dark.vim| theme fully documents this procedure and will guide you through
+the process.
+
+For other examples, you can visit the official themes repository at
+<https://github.com/vim-airline/vim-airline-themes>. It also includes
+examples such as |jellybeans.vim| which define colors by extracting highlight
+groups from the underlying colorscheme.
+
+==============================================================================
+TROUBLESHOOTING *airline-troubleshooting*
+
+Q. There are no colors.
+A. You need to set up your terminal correctly. For more details, see
+ <http://vim.wikia.com/wiki/256_colors_in_vim>. Alternatively, if you want
+ to bypass the automatic detection of terminal colors, you can force Vim
+ into 256 color mode with this: >
+ set t_Co=256
+<
+ Also if you enable true color mode in your terminal, make sure it will work
+ correctly with your terminal. Check if it makes a difference without it: >
+ set notermguicolors
+
+Q. Powerline symbols are not showing up.
+A. First, you must install patched powerline fonts. Second, you must enable
+ unicode in vim. >
+ set encoding=utf-8
+<
+Q. There is a pause when leaving insert mode.
+A. Add the following to your vimrc. >
+ set ttimeoutlen=50
+<
+Q. The colors look a little off for some themes.
+A. Certain themes are derived from the active colorscheme by extracting colors
+ from predefined highlight groups. These airline themes will look good for
+ their intended matching colorschemes, but will be hit or miss when loaded
+ with other colorschemes.
+
+Q. Themes are missing
+A. Themes have been extracted into the vim-airlines-themes repository. Simply
+ clone https://github.com/vim-airline/vim-airline-themes and everything
+ should work again.
+
+Q. Performance is bad
+A. Check the question at the wiki:
+ https://github.com/vim-airline/vim-airline/wiki/FAQ#i-have-a-performance-problem
+
+Solutions to other common problems can be found in the Wiki:
+<https://github.com/vim-airline/vim-airline/wiki/FAQ>
+
+==============================================================================
+CONTRIBUTIONS *airline-contributions*
+
+Contributions and pull requests are welcome.
+
+==============================================================================
+LICENSE *airline-license*
+
+MIT License. Copyright © 2013-2018 Bailey Ling, Christian Brabandt et al.
+
+ vim:tw=78:ts=8:ft=help:norl:
diff --git a/.vim/doc/neomake.txt b/.vim/doc/neomake.txt
new file mode 100644
index 0000000..77622a3
--- /dev/null
+++ b/.vim/doc/neomake.txt
@@ -0,0 +1,1052 @@
+*neomake.txt* - asynchronous make for Vim version 7.4+ and Neovim
+
+ ███╗ ██╗███████╗ ██████╗ ███╗ ███╗ █████╗ ██╗ ██╗███████╗
+ ████╗ ██║██╔════╝██╔═══██╗████╗ ████║██╔══██╗██║ ██╔╝██╔════╝
+ ██╔██╗ ██║█████╗ ██║ ██║██╔████╔██║███████║█████╔╝ █████╗
+ ██║╚██╗██║██╔══╝ ██║ ██║██║╚██╔╝██║██╔══██║██╔═██╗ ██╔══╝
+ ██║ ╚████║███████╗╚██████╔╝██║ ╚═╝ ██║██║ ██║██║ ██╗███████╗
+ ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝
+
+ Run make tasks (such as linters and build tools) asynchronously.
+
+==============================================================================
+CONTENTS *neomake*
+
+ 1. Introduction ............................... |neomake-introduction|
+ 2. Commands ....................................... |neomake-commands|
+ 3. Configuration ............................. |neomake-configuration|
+ 3.1. Automake ..................................... |neomake-automake|
+ 4. Functions ..................................... |neomake-functions|
+ 5. Autocommands/Hooks ............................. |neomake-autocmds|
+ 6. Frequently Asked Questions (FAQ) .................... |neomake-faq|
+
+==============================================================================
+1. Introduction *neomake-introduction*
+
+Neomake leverages Neovim's or Vim's |job-control| feature where available to
+run programs like syntax checkers asynchronously. Where job control is not
+available, it resorts to a synchronous |system()| call, making it possible to
+run this plugin in both older Vims and Neovim.
+This plugin is heavily inspired by Vim plugins such as Syntastic and
+dispatch.
+
+==============================================================================
+2. Commands *neomake-commands*
+
+ *:Neomake*
+ *:NeomakeFile*
+:Neomake [makers] Run a make command with the current file as input. If
+ no makers are specified, the default makers for the
+ current |filetype| are used. See
+ |neomake-configuration| for more on makers.
+
+ *:Neomake!*
+ *:NeomakeProject*
+:Neomake! [makers] Run a make command with no file as input. If no makers
+ are specified, the default top-level makers will be
+ used. If no default top-level makers exist,
+ |'makeprg'| will be used.
+
+ *:NeomakeSh*
+:NeomakeSh {command} Run {command} in a shell (according to 'shell'). The
+ command output will be loaded into the quickfix list
+ when the job is complete. Example: >
+ :NeomakeSh find . -name '*.pyc'
+<
+ *:NeomakeSh!*
+:NeomakeSh! {command} Same as |:NeomakeSh|, but does not buffer the output.
+ Example: >
+ :NeomakeSh! while true; do date; sleep 1; done
+<
+ *:NeomakeInfo*
+:NeomakeInfo Display information, meant for debugging and inclusion
+ in bug reports / help requests.
+
+ *:NeomakeListJobs*
+:NeomakeListJobs List all running jobs in the format: >
+ job_id job_name
+<
+ *:NeomakeCancelJob*
+:NeomakeCancelJob {job_id}
+ Terminate a job identified by its job_id.
+
+ *:NeomakeCancelJobs*
+:NeomakeCancelJobs
+ Terminate all jobs.
+
+ *:NeomakeClean*
+ *:NeomakeClean!*
+:NeomakeClean[!]
+ Clean signs, highlights etc. for file-mode, or
+ project-mode (with bang).
+
+==============================================================================
+2.1. Toggle commands *neomake-toggle*
+
+The following commands enable, disable or toggle Neomake globally, per tab or
+per buffer by changing the `disabled` setting, which gets checked when Neomake
+gets called via autocommands, e.g. with |neomake-automake| or custom
+autocommands. You can still call e.g. |:Neomake| manually, and it will run.
+In verbose mode (e.g. when called with |:verbose| (`:verb Neomake`)) the new
+status gets displayed.
+
+*:NeomakeToggle* toggles Neomake globally.
+*:NeomakeToggleBuffer* toggles Neomake for the current buffer.
+*:NeomakeToggleTab* toggles Neomake for the current tab.
+ *neomake-disable*
+*:NeomakeDisable* disables Neomake globally.
+*:NeomakeDisableBuffer* disables Neomake for the current buffer.
+*:NeomakeDisableTab* disables Neomake for the current tab.
+ *neomake-enable*
+*:NeomakeEnable* enables Neomake globally.
+*:NeomakeEnableBuffer* enables Neomake for the current buffer.
+*:NeomakeEnableTab* enables Neomake for the current tab.
+
+*:NeomakeStatus* displays the current status.
+
+==============================================================================
+3. Configuration *neomake-configuration*
+
+If you just want an easy way to run |:make| asynchronously, you're all set.
+Just set your |'makeprg'| and |'errorformat'| as usual, and run |:Neomake!|.
+If you want more, read on.
+
+3.1 Automaking *neomake-automake*
+
+To configure Neomake to automatically run on certain events you can use
+`neomake#configure#automake()`.
+
+The first argument can either be a dictionary (mapping autocommand event
+names to config dicts for fine grained control), or a string (as a shortcut to
+configure certain modes). The 2nd argument is the default delay to use.
+
+String usage (simple setup):~
+
+ n: normal mode~
+ This uses the |TextChanged| (falling back to |CursorHold|) and |InsertLeave|
+ events.
+
+ i: insert mode~
+ This uses the |TextChangedI| event (falling back to |CursorHoldI|).
+
+ r: "read" mode - when a buffer gets read/open~
+ This will hook into the |BufWinEnter|, |FileType| and |FileChangedShellPost|
+ events.
+
+ w: "write" mode - when a buffer gets written~
+ This uses the |BufWritePost| event, with an explicit timeout of 0.
+
+Examples: >
+
+ " When writing a buffer.
+ call neomake#configure#automake('w')
+ " When writing a buffer, and on normal mode changes (after 750ms).
+ call neomake#configure#automake('nw', 750)
+ " When reading a buffer (after 1s), and when writing.
+ call neomake#configure#automake('rw', 1000)
+
+Dictionary usage (advanced setup):~
+>
+ call neomake#configure#automake({
+ \ 'TextChanged': {},
+ \ 'InsertLeave': {},
+ \ 'BufWritePost': {'delay': 0},
+ \ 'BufWinEnter': {},
+ \ }, 500)
+<
+This will trigger Neomake on |TextChanged|, |InsertLeave|, |BufWritePost| and
+|BufWinEnter|, with a delay of 500ms by default, but 0 for |BufWritePost|.
+
+You could do some advanced setup, based on if your laptop is running on
+battery: >
+ function! MyOnBattery()
+ return readfile('/sys/class/power_supply/AC/online') == ['0']
+ endfunction
+ if MyOnBattery()
+ call neomake#configure#automake('w')
+ else
+ call neomake#configure#automake('nrw', 1000)
+ endif
+<
+ *neomake-automake-dynamic-delay*
+The automake delay gets adjusted dynamically when timers or make runs get
+aborted. This is meant to support the use case where you are doing multiple
+changes in succession (e.g. |undo|).
+This can be controlled with the experimental `automake.cancelation_delay`
+setting, which has to be a list: >
+ call neomake#configure('automake.cancelation_delay', [0.2, 0.5, 3000])
+>
+The first value gets multiplied with the number of restarted timers (before a
+make was triggered).
+The second value gets multiplied with canceled/restarted make runs.
+The sum of those values plus 1 gets multiplied with the original/configured
+delay. The third value is used as a maximum.
+With the default settings from above this means that given a default delay of
+500ms, 7 restarted timer, and 1 restarted make run, it would use a delay of
+`(7*0.2 + 1*0.5 + 1) * 500 = 1450`.
+The counts for restarted timers and make runs gets reset once a make run
+finishes.
+
+Makers *neomake-makers*
+A maker is an object that tells Neomake how to run a job for you.
+
+ *neomake-makers-get_list_entries*
+If a maker has a `get_list_entries` function, this gets used to retrieve
+entries for the location or quickfix list directly.
+The function gets passed a jobinfo (|neomake-object-jobinfo|) object, and
+should return a list of entries that will be used to fill the
+location/quickfix list: >
+ let maker = {'name': 'My maker'}
+ function! maker.get_list_entries(jobinfo) abort
+ return [
+ \ {'text': 'Some error', 'lnum': 1, 'bufnr': a:jobinfo.bufnr},
+ \ {'text': 'Some warning', 'type': 'W', 'lnum': 2, 'col': 1,
+ \ 'length': 5, 'filename': '/path/to/file'},
+ \ ]
+ endfunction
+<
+The required keys for entries are `text` and `lnum`, and you should set one of
+`bufnr` or `filename` (otherwise the entry will not be valid).
+The `length` entry in the example is internal to Neomake, and sets the length
+for an highlight (see |neomake-highlight|).
+
+ *neomake-job-makers*
+Otherwise a maker gets run as a job with a file as input ("file mode", good
+for linting), or with no file as input ("project mode", good for building and
+project-level tasks).
+
+Here is a sample maker definition: >
+ let g:neomake_make_maker = {
+ \ 'exe': 'make',
+ \ 'args': ['--build'],
+ \ 'errorformat': '%f:%l:%c: %m',
+ \ }
+ " Use the maker like this:
+ :Neomake! make
+<
+ *neomake-makers-InitForJob*
+You can configure a maker dynamically through a `InitForJob` function, which
+gets the jobinfo (|neomake-object-jobinfo|) as its argument.
+
+This can also be configured as setting: >
+ function! CustomExe(jobinfo) abort
+ let self.args = [self.exe] + self.args
+ let self.exe = 'some_custom_wrapper'
+ endfunction
+ call neomake#config#set('ft.python.InitForJob', function('CustomExe'))
+<
+ *neomake-makers-exe*
+ *neomake-makers-args*
+`exe` has to be a string, while `args` can be a list or a string.
+If `args` is a list, entries like '%' and '%:p' will be |expand()|ed, and
+quoting/escaping is applied automatically. If you want to handle escaping
+yourself, `args` should be a string.
+
+In the above example, the exe argument isn't strictly necessary, since Neomake
+uses the name of the maker as the default value for it. If you want it to be
+usable on an individual file, you should also include the filetype in the
+name: >
+ let g:neomake_c_lint_maker = {
+ \ 'exe': 'lint',
+ \ 'args': ['--option', 'x'],
+ \ 'errorformat': '%f:%l:%c: %m',
+ \ }
+
+ " Run this maker for the open file (runs "lint --option x myfile.c"):
+ :Neomake lint
+
+ " Or run it on the whole project, executing the command from Vim's current
+ " working directory (runs "lint --option x"):
+ :Neomake! c_lint
+<
+ *neomake-args-file*
+When running a maker on a file with |:Neomake|, you may want to control where
+in the `args` list the file's path will appear. To do this, insert '%t' in
+the `args` list and use `append_file=0`: >
+ let g:neomake_c_lint_maker = {
+ \ 'exe': 'lint',
+ \ 'args': ['%t', '--option', 'x'],
+ \ 'append_file': 0,
+ \ 'errorformat': '%f:%l:%c: %m',
+ \ }
+<
+This will cause "lint /path/to/file.c --option x" to be run instead of
+"lint --option x /path/to/file.c".
+
+`%t` gets replaced with the absolute path to the file (handling any temporary
+file).
+
+ *neomake-makers-processing*
+A job maker's output gets processed in two ways:
+1. through a maker's `process_output` function, or
+2. via its `errorformat` (together with `mapexpr` and `postprocess`).
+
+ *neomake-makers-process_output*
+If a maker has a `process_output` function, this gets used to retrieve
+entries for the location or quickfix list for the job's output directly.
+
+The function gets called with a `context` dictionary, with the following
+entries:
+ - `output`: a list of lines
+ - `source`: the source of the output (`stderr`, `stdout`)
+ - `jobinfo`: the jobinfo object, see |neomake-object-jobinfo|
+It should return a list of entries (dictionaries), where `text` and `lnum`
+are required. `bufnr` defaults to the jobs's buffer.
+
+Using this method skips the processing based on `errorformat` (including
+`mapexpr` and `postprocess`).
+
+See |neomake-makers-process_json| below for handling JSON output.
+
+ *neomake-makers-process_json*
+A maker's `process_json` function gets a |dict| with parsed JSON directly,
+handling the JSON parsing and any errors before.
+
+The function gets called with a `context` dictionary, containing the following
+entries:
+ - `json`: a dictionary with the parsed JSON
+ - `source`: the source of the output (`stderr`, `stdout`)
+ - `jobinfo`: the jobinfo object, see |neomake-object-jobinfo|
+It should return a list of entries (dictionaries), where `text` and `lnum`
+are required. `bufnr` defaults to the jobs's buffer.
+
+Using this method skips the processing based on `errorformat` (including
+`mapexpr` and `postprocess`).
+
+ *neomake-makers-filter_output*
+A maker's `filter_output` function can filter any output before it gets
+processed further.
+
+The function gets called with two arguments: the list of lines (to be modified
+in place) and a context dictionary with the following entries:
+ - `source`: the source of the output (`stderr`, `stdout`)
+ - `jobinfo`: the jobinfo object, see |neomake-object-jobinfo|
+
+ *neomake-makers-mapexpr*
+You can define two optional properties on a maker object to process its
+output: `mapexpr` is applied to the maker's output before any processing, and
+`postprocess` is applied to each of the quickfix or location list entries.
+
+The `mapexpr` property gets passed directly into |map()| as the `expr`
+argument: >
+ call map(lines, maker.mapexpr)
+<where `lines` contains the maker output.
+
+The following variables are available in the `mapexpr`:
+
+ - `neomake_output_source`: either "stderr" or "stdout", depending on
+ where the output is coming from. This will be "stdout" always for
+ non-async Vim.
+ - `neomake_bufname` and `neomake_bufdir`: the buffer's absolute path
+ (|bufname()|) and directory, respectively.
+
+The `mapexpr` itself gets evaluated in the context of the affected buffer in
+file mode, and in the context of the buffer that is current when the maker
+finished otherwise.
+
+The following `mapexpr` could be used to prefix the output type: >
+ "printf('[%s] %s', neomake_output_source, v:val)"
+<
+ *neomake-makers-postprocess*
+The `postprocess` property is a function (or list of functions) that get(s)
+called for each entry in the location or quickfix list.
+It allows to change entries there or remove them by setting the `valid` entry
+to `-1`.
+
+Example: make all entries a warning where `nr` is in the range of 100-199: >
+ function PostprocessLintMaker(entry)
+ if a:entry.nr >= 100 && a:entry.nr < 200
+ let a:entry.type = 'W'
+ endif
+ endfunction
+ let g:neomake_ft_lint_maker = {
+ \ 'exe': 'lint',
+ \ 'args': ['--option', 'x'],
+ \ 'errorformat': '%f:%l:%c:%n: %m',
+ \ 'postprocess': function('PostprocessLintMaker')
+ \ }
+<
+Example: remove some entry for a specific maker (using |expr-lambda|): >
+ let g:neomake_asciidoc_asciidoc_postprocess = {
+ \ entry -> entry.text =~# 'illegal system attribute name: font-style'
+ \ ? extend(entry, {'valid': -1})
+ \ : entry}
+<
+
+Builtin postprocessors are `neomake#postprocess#compress_whitespace`, which
+fixes whitespace issues (which is useful with multiline error messages),
+and `neomake#postprocess#generic_length`, which adds a length property (used
+for highlights |neomake-highlight|) for entries, when the message refers to an
+identifier at the entry's column.
+See `neomake#makers#ft#text#PostprocessWritegood` for an example.
+
+Entries can be selectively removed in post-processing by setting its "valid"
+property to `-1`. This removal will happen even if `remove_invalid_entries`
+is disabled. This feature is meant for conditional removals and a simpler way
+for end users to filter list entries. Makers should handle removals through
+|errorformat| using '%-G' to remove items that should never appear in the
+error list.
+
+ *neomake-makers-buffer_output*
+Default: 1
+By default Neomake will only process the output from makers when either the
+output type changes (from stderr to stdout or vice versa), or at the end of
+the job.
+
+If you have a maker that is expected to run longer, and you want to get
+feedback as early as possible, you can set this to `0`.
+
+You can override this for a maker using e.g.: >
+ let g:neomake_ft_test_maker_buffer_output = 0
+<
+Your results will appear earlier, but if the |'errorformat'| is meant to parse
+multiline output this will likely cause issues (depending on how the maker
+flushes its output).
+
+To change the default for all makers use: >
+ call neomake#config#set('maker_defaults.buffer_output', 0)
+<
+ *neomake-makers-remove_invalid_entries*
+Default: 0
+This option filters invalid entries from makers from the location/quickfix
+list (i.e. entries that do not match the |'errorformat'|, and that would show
+up with a `||` prefix in the location/quickfix list): >
+ let g:neomake_ft_maker_remove_invalid_entries = 1
+<
+NOTE: the default for this is 0, because unhandled/unexpected output might be
+useful, e.g. when the program displays some error.
+Makers should handle this properly through |errorformat|, e.g. by using '%-G'
+(see |efm-ignore| and |neomake-faq-errorformat|).
+
+To change the default for all makers use: >
+ call neomake#config#set('maker_defaults.remove_invalid_entries, 1)
+<
+ *neomake-makers-cwd*
+The working directory of a maker defaults to the current working directory
+of the make run (|getcwd()|).
+The `cwd` property overrides this, and gets expanded in the context of the
+current buffer. Special buffers (like fugitive blobs) get handled for values
+starting with `%:` (typically used in this context), falling back to
+|expand()|. See |filename-modifiers|.
+ >
+Example: change to the buffer's directory: >
+ let g:neomake_my_example_maker = {
+ \ 'exe': 'pwd',
+ \ 'cwd': '%:p:h'
+ \ }
+<
+ *neomake-makers-tempfile_enabled*
+Default: 1
+This will pass a temporary file with the buffer's contents to the maker, in
+case the buffer is not readable, modified, or has no filename.
+A maker can specify the temporary file's name through the `tempfile_name`
+property, and you can set it through the |neomake-makers-InitForJob| callback
+(for advanced usage).
+Otherwise it gets generated based on the original filename/filetype, and
+falls back to using |tempname()|.
+
+You can configure this per buffer or maker as usual, e.g.: >
+ let g:neomake_<ft>_<name>_tempfile_enabled = 0
+<
+ *neomake-makers-tempfile_dir*
+Default: unset
+You can configure the directory to use for temporary files (see
+|neomake-makers-tempfile_enabled|).
+
+The default behavior is to use the same directory as the original file, so
+that any config files (e.g. `setup.cfg` for Python tools) take effect.
+
+You can configure this per buffer or maker as usual, e.g.: >
+ let g:neomake_<ft>_<name>_tempfile_dir = '/tmp/custom'
+<
+The value gets expanded (via `neomake#utils#ExpandArgs`), which allows for
+the following to use the original file's directory structure (`%:p:h`): >
+ let g:neomake_tempfile_dir = '/tmp/custom%:p:h'
+<
+ *neomake-makers-output_stream*
+Default: "both" ("stdout", "stderr", "both")
+The `output_stream` setting specifies what stream gets used for output from
+the maker.
+Any output on a stream not configured here gets reported as unexpected output.
+
+ *neomake-makers-supports_stdin*
+Default: 0
+With `supports_stdin = 1` a maker indicates that it can use stdin instead of a
+temporary file. By default "-" is then used for the filename.
+
+`supports_stdin` can be a dict function on the maker, which will get the
+current jobinfo as its argument, and should return 1 or 0.
+This function can change `self.args`, which is useful to append options like
+e.g. "['--stdin-display-name', '%:p']".
+You can also change `self.tempfile_name` therein.
+It can be useful to change the current working directory for the maker here,
+e.g. when it does not use its `--stdin-display-name` (or similar) option
+to look for its config. Use the jobinfo's `cd` method for this: >
+ function! maker.supports_stdin(jobinfo) abort
+ let self.args += ['--stdin-display-name', '%:.']
+ call a:jobinfo.cd('%:h')
+ return 1
+ endfunction
+<
+ *neomake-makers-uses_stdin*
+Default: 0
+`uses_stdin = 1` can be used to always use stdin for file arguments,
+regardless of if a temporary file / stdin is required to be used.
+It uses "-" as the default for "tempfile_name".
+
+Global Options *neomake-options*
+
+*g:neomake_<name>_maker*
+*g:neomake_<ft>_<name>_maker*
+Define a new filetype or project-level maker. See |neomake-makers|.
+
+ *neomake-makers-properties*
+*g:neomake_<name>_<property>*
+*g:neomake_<ft>_<name>_<property>*
+*b:neomake_<name>_<property>*
+*b:neomake_<ft>_<name>_<property>*
+Configure properties for a maker where <property> is one of `exe`, `args`,
+`errorformat`, `buffer_output`, `remove_invalid_entries`, `append_file`,
+or `supports_stdin`.
+
+This can also be set per buffer, e.g.: >
+ let g:neomake_javascript_jshint_exe = './myjshint'
+ let b:neomake_javascript_jshint_exe = './myotherjshint'
+<
+
+The global defaults can be configured using `g:neomake_<property>`, i.e.
+*g:neomake_remove_invalid_entries* to remove invalid entries from the quickfix
+/ location list (|neomake-makers-remove_invalid_entries|), unless explicitly
+provided by the maker or overridden by your global/buffer setting.
+
+The internal defaults are: >
+ let defaults = {
+ \ 'exe': maker.name,
+ \ 'args': [],
+ \ 'errorformat': &errorformat,
+ \ 'buffer_output': 0,
+ \ 'remove_invalid_entries': 0
+ \ }
+<
+
+*g:neomake_<ft>_enabled_makers*
+*b:neomake_<ft>_enabled_makers*
+This setting will tell Neomake which makers to use by default for the given
+filetype `<ft>` (when called without a maker as an argument, i.e. |:Neomake|).
+
+The default for this setting is the return value of the function
+`neomake#makers#ft#<ft>#EnabledMakers`. For Python this is defined in
+`./autoload/neomake/makers/ft/python.vim`, and might return: >
+ ['python', 'frosted', 'pylama']
+<
+This setting can also be defined per buffer, so the following snippet can be
+used to configure a custom set of makers from your vimrc: >
+ let g:neomake_python_enabled_makers = ['pep8', 'pylint']
+ augroup my_custom_maker
+ au!
+ au Filetype custom.py let b:neomake_python_enabled_makers = ['flake8']
+ augroup END
+<
+Please refer to |autocmd-patterns| for help on defining the pattern
+(`custom.py`) in this case.
+
+*g:neomake_enabled_makers*
+*b:neomake_enabled_makers*
+This setting will tell Neomake which makers to use by default when not
+operating on a single file, or when no makers are defined for the filetype of
+the current buffer. This effectively defaults to: >
+ let g:neomake_enabled_makers = ['makeprg']
+<
+*g:neomake_open_list*
+*b:neomake_open_list*
+This setting will open the |location-list| or |quickfix| list (depending on
+whether it is operating on a file) when adding entries. A value of 2 will
+preserve the cursor position when the |location-list| or |quickfix| window is
+opened. Defaults to 0.
+
+*g:neomake_list_height*
+*b:neomake_list_height*
+The maximum height of the |location-list| or |quickfix| list window opened by
+Neomake. If there are fewer entries it will use that instead.
+Defaults to 10.
+
+*g:neomake_echo_current_error*
+This setting will |:echo| the error for the line your cursor is on, if any.
+It uses a timer (if |timers| are available), and |CursorHold|/|CursorHoldI|
+otherwise.
+Defaults to 1.
+
+*g:neomake_virtualtext_current_error*
+Use Neovim's virtualtext API to display the error for the current line next
+to the text. This is experimental, and uses the same mechanism (timer)
+as |g:neomake_echo_current_error|.
+Defaults to 1 (only available on Neovim 0.3.2+).
+
+*g:neomake_virtualtext_prefix*
+The prefix used with |g:neomake_virtualtext_current_error|.
+Defaults to "❯ ".
+
+*g:neomake_cursormoved_delay*
+Delay (in ms) for the timer used to echo the current error with
+|g:neomake_echo_current_error|.
+Defaults to 100.
+
+*g:neomake_serialize*
+Setting this to 1 tells Neomake to run each enabled maker one after the other.
+This is a good way to ensure messages don't get mixed up. This setting is
+implied with non-async Vim versions.
+
+*g:neomake_serialize_abort_on_error*
+Setting this to 1 tells Neomake to abort after the first error status is
+encountered. This setting only works when |g:neomake_serialize| is on.
+
+*g:neomake_verbose*
+Controls how verbose Neomake should be. Neomake log levels are as follows:
+ 0 - Errors only
+ 1 - Quiet message
+ 2 - Loud message (may log multiple messages at once, making the screen
+ shift momentarily)
+ 3 - Debug information (all messages).
+ This will also add time information to messages.
+Each log level includes all the levels before it.
+
+Defaults to 1.
+
+|'verbose'| gets added to this setting, so you can use |:verbose| to increase
+the verbosity temporarily: >
+ :3verb Neomake
+<
+*g:neomake_logfile*
+Setting this to a file path will write all messages (regardless of the level
+configured through |g:neomake_verbose|) into it.
+This is useful for debugging/hacking, and when reporting issues.
+It requires Vim 7.4.503+ (or Neovim) to work properly, otherwise it will not
+append, but overwrite the file with each message.
+
+ *neomake-signs*
+*g:neomake_place_signs*
+This setting enables the placement of signs next to items from the location
+and quickfix list (i.e. errors/warnings etc recognized from the
+|'errorformat'|). Defaults to 1.
+
+*g:neomake_error_sign*
+*g:neomake_warning_sign*
+*g:neomake_info_sign*
+*g:neomake_message_sign*
+These options allow you to control the appearance of the signs that are
+placed into the |signs| column next to lines with messages.
+These are dictionaries that represent the parameters provided by
+|:sign-define|. Here is an example definition: >
+ let g:neomake_error_sign = {
+ \ 'text': 'E>',
+ \ 'texthl': 'ErrorMsg',
+ \ }
+<
+See the |:highlight| command to list the highlight groups available to you or
+create new ones.
+
+Neomake uses the following defaults: >
+
+ let g:neomake_error_sign = {
+ \ 'text': '✖',
+ \ 'texthl': 'NeomakeErrorSign',
+ \ }
+ let g:neomake_warning_sign = {
+ \ 'text': '‼',
+ \ 'texthl': 'NeomakeWarningSign',
+ \ }
+ let g:neomake_message_sign = {
+ \ 'text': '➤',
+ \ 'texthl': 'NeomakeMessageSign',
+ \ }
+ let g:neomake_info_sign = {
+ \ 'text': 'ℹ',
+ \ 'texthl': 'NeomakeInfoSign'
+ \ }
+<
+
+Default |highlight-groups| are created with those names, but only if they do
+not exist already, which allows you to customize them. This should typically
+be done through the |ColorScheme| autoevent, which applies it after any color
+scheme: >
+
+ augroup my_neomake_signs
+ au!
+ autocmd ColorScheme *
+ \ hi NeomakeErrorSign ctermfg=white |
+ \ hi NeomakeWarningSign ctermfg=yellow
+ augroup END
+<
+You can use `neomake#utils#GetHighlight` to get e.g. the "bg" from
+"SignColumn". See `neomake#signs#DefineHighlights` where this is used.
+
+ *neomake-highlight*
+*g:neomake_highlight_columns*
+This setting enables highlighting of columns for items from the location and
+quickfix list. Defaults to 1.
+
+*g:neomake_highlight_lines*
+This setting enables highlighting of lines for items from the location and
+quickfix list. Defaults to 0.
+
+If both |g:neomake_highlight_columns| and |g:neomake_highlight_lines| are
+enabled, items with column information are highlighted using the column.
+
+The following highlighting groups are used:
+ - NeomakeError: links to "SpellBad" (|hl-SpellBad|)
+ - NeomakeWarning: links to "SpellCap" (|hl-SpellCap|)
+ - NeomakeInfo: links to "NeomakeWarning"
+ - NeomakeMessage: links to "NeomakeWarning"
+
+You can define them yourself: >
+
+ augroup my_neomake_highlights
+ au!
+ autocmd ColorScheme *
+ \ highlight NeomakeError … |
+ \ highlight NeomakeWarning …
+ guisp=White
+ augroup END
+>
+
+*g:airline#extensions#neomake#enabled*
+Shows warning and error counts returned by |neomake#statusline#LoclistCounts|
+in the warning and error sections of the vim-airline |'statusline'|. Defaults
+to 1.
+
+==============================================================================
+4. Functions *neomake-functions*
+
+This list is non-exhaustive at the moment, but you may find some of these
+functions useful.
+
+*neomake#Make* (options)
+This is the main entrypoint to Neomake, used by the |:Neomake| (and
+|:Neomake!|) command.
+
+`options` is a dictionary, and might include:
+- `file_mode`: 1 if the makers should get run against a single file (typically
+ used for linting). Default: 1.
+- `enabled_makers`: the makers to use (list). Default: uses configuration.
+
+Returns: a list of jobinfo objects (|neomake-object-jobinfo|).
+
+Deprecated interface (with different return value)~
+The old and deprecated API will accept the following arguments instead of the
+`options` dict: filemode, enabled_makers[, exit_callback].
+The `exit_callback` (which should get replaced by using the
+|NeomakeJobFinished| or |NeomakeFinished| hooks) gets the following dictionary
+as its sole argument: >
+ { 'status': <exit status of maker>,
+ \ 'name': <maker name>,
+ \ 'has_next': <1 if another maker follows, 0 otherwise> }
+Returns: a list of job ids.
+
+*neomake#Sh* (command[, callback])
+This function is called by the |:NeomakeSh| command. It runs the specified
+shell `command` according to 'shell'. |neomake#Sh| returns the single job id
+that was created (-1 on Vim without asynchronous support); you can potentially
+cancel this job with |neomake#CancelJob|.
+
+It also accepts a second, optional callback argument that is called when
+the command exits. The callback is given the following dictionary as its
+sole argument: >
+ { 'status': <exit status of command>,
+ \ 'name': 'sh: <command>',
+ \ 'has_next': 0 }
+<
+The callback will receive a `jobinfo` object dict as `self`
+(|dict-functions|).
+
+*neomake#ListJobs*
+Invoked via |:NeomakeListJobs|. Echoes a list of running jobs in the format
+(job_id, job_name).
+
+*neomake#CancelJob*
+Invoked via |:NeomakeCancelJob|. Terminate a job identified by its job_id.
+Example: >
+ let job_id = neomake#Sh("bash -c 'while true; do sleep 1; done'")
+ call neomake#CancelJob(job_id)
+
+*neomake#signs#RedefineErrorSign*
+*neomake#signs#RedefineWarningSign*
+These functions define the error sign and the warning sign respectively. They
+optionally take a dictionary in the same format as |g:neomake_error_sign|. If
+no such dictionary is provided, the default values will be used. These
+functions may be useful if somehow |:Neomake| is being invoked before you
+define |g:neomake_error_sign|. >
+ let g:neomake_error_sign = {'text': 'D:'}
+ call neomake#signs#RedefineErrorSign()
+<
+ *neomake-statusline*
+The main function for statusline integration is `neomake#statusline#get()`,
+which caches the information retrieved from `neomake#statusline#get_status()`.
+
+*neomake#statusline#get()* <bufnr> [options]
+The function requires the buffer number as first argument, and an optional
+dictionary. You might want to use |g:actual_curbuf| for bufnr, if calling
+`neomake#status#get()` from a statusline expression, but then highlights are
+not evaluated, and you typically want to use this in a statusline function
+(`'set statusline=%!MyStatusLine()'`) instead.
+
+Returns a string for a 'statusline'.
+
+The optional argument is a dictionary of options (see below).
+
+The following example creates a custom 'statusline' function, where `a:active`
+may reflect if the window is the current one (implementation not provided): >
+ let neomake_status_str = neomake#statusline#get(bufnr, {
+ \ 'format_running': '… ({{running_job_names}})',
+ \ 'format_loclist_ok':
+ \ (a:active ? '%#NeomakeStatusGood#' : '%*').'✓',
+ \ 'format_quickfix_ok': '',
+ \ 'format_quickfix_issues': (a:active ? '%s' : ''),
+ \ 'format_status': '%%(%s'
+ \ .(a:active ? '%%#StatColorHi2#' : '%%*')
+ \ .'%%)',
+ \ })
+<
+A simpler example: >
+ let neomake_status_str = neomake#statusline#get(bufnr, {
+ \ 'format_running': '… ({{running_job_names}})',
+ \ 'format_loclist_ok': '✓',
+ \ 'format_quickfix_ok': '',
+ \ 'format_quickfix_issues': '%s',
+ \ })
+<
+You can use the following options:
+
+For location list items:~
+ - format_loclist_unknown: format for when the status for location list
+ issues is unknown, i.e. Neomake was not run on the current buffer.
+ Default: `'?'`
+ - format_loclist_ok: format for when there are no location list issues.
+ Default: `'%#NeomakeStatusGood#✓%#NeomakeStatReset#'` (a checkmark using
+ the NeomakeStatusGood highlight group).
+ - format_loclist_type_X: format for location list issues of type X
+ (E, W, I, …).
+ Default: looks up "format_loclist_type_default" first, and then uses
+ `' {{type}}:{{count}} '`, with an existing highlight group as prefix
+ ("NeomakeStatColorTypeX" or "NeomakeStatColorDefault"), e.g.
+ - format_loclist_type_default: default format for location list issues if
+ "format_loclist_type_X" is not defined.
+ - format_loclist_issues: format for wrapping all location list issues.
+ Default: `'%s%%#NeomakeStatReset'` (used with |printf()|).
+
+For quickfix list items:~
+ - format_quickfix_ok: format for no quickfix issues.
+ Default: `''`
+ - format_quickfix_type_X: format for quickfix list issues of type X
+ (E, W, I, …).
+ Default: `' {{type}}:{{count}} '`
+ Default: looks up "format_quickfix_type_default" first, and then uses
+ `' Q{{type}}:{{count}} '`, with an existing highlight group as prefix
+ ("NeomakeStatColorQuickfixTypeX" or "NeomakeStatColorQuickfixDefault").
+ - format_quickfix_issues: format for wrapping all quickfix list issues.
+ You can use an empty string to skip displaying quickfix issues, which can
+ be useful for non-current windows.
+ Default: `'%s%%#NeomakeStatReset'` (used with |printf()|).
+
+Status related:~
+ - format_status: used to wrap the whole status.
+ This is a |printf()| format string, where `%s` gets replaced with the
+ whole status (and any literal/non-printf `%` needs to be escaped as `%%`).
+ Default: not used / `'%s'`
+ - format_status_disabled: used to wrap the whole status when disabled.
+ This is a |printf()| format string, where `%s` gets replaced with the
+ whole status (and any literal/non-printf `%` needs to be escaped as `%%`).
+ Default: `'{{disabled_info}} %s'`
+ - format_disabled_info: The `disabled_info` placeholder from the
+ "format_status_disabled" argument. There `disabled_scope` placeholder is
+ available here. Default: `'{{disabled_scope}}-'`
+ - format_status_enabled: used to wrap the whole status when enabled.
+ This is a |printf()| format string, where `%s` gets replaced with the
+ whole status (and any literal/non-printf `%` needs to be escaped as `%%`).
+ Default: not used / `'%s'`
+
+General:~
+ - format_lists: used to format the overall location list and quickfix list
+ sections (before format_status).
+ `{{lists_sep}}` is empty ("") with only a single list section,
+ and defaults to " " if both are not empty.
+ Default: `'{{loclist}}{{lists_sep}}{{quickfix}}'`
+
+Running jobs:~
+ If any jobs are currently running in file or project mode, those get
+ displayed by default in the loclist or quickfix section. The following
+ options control its appearance:
+
+ - format_running: used in case there are jobs running. Use 0 (as a number)
+ to disable this, but fall through to the last known status.
+ Default: `… ({{running_job_names}})`
+ - format_running_job_file: Wrap the running job name for file-level makers.
+ Default: not used / `'%s'`
+ - format_running_job_project: Wrap the running job name for project makers.
+ Default: `'%s!'`.
+ - running_jobs_separator: Separator for formatted running job names.
+ Default: `', '`.
+
+Advanced options:~
+
+ - use_highlights_with_defaults: include highlight attributes with default
+ options (e.g. "%#NeomakeStatusGood#" with "format_loclist_ok").
+ Default: 1
+
+You can use the following format placeholders:
+ - `{{running_job_names}}}`: comma-separated list of running jobs (typically
+ their maker names).
+ This gets built using `format_running_job_file`,
+ `format_running_job_project`, and `running_jobs_separator`.
+ - `{{disabled_scope}}`: When manually overriden, the scope of the disabling.
+ One of "b", "t", "g".
+
+*neomake#statusline#LoclistStatus*
+*neomake#statusline#QflistStatus*
+These functions return text for your |'statusline'|. They each take an
+optional first argument, which is the prefix text that will be shown if errors
+or warnings exist. Example usage: >
+ set statusline+=\ %#ErrorMsg#%{neomake#statusline#QflistStatus('qf:\ ')}
+<
+The result of this will be something like 'qf: E:1, W:2' if there are errors
+or warnings and the empty string otherwise.
+
+*neomake#statusline#LoclistCounts*
+*neomake#statusline#QflistCounts*
+These functions get the counts of errors by error type for the |location-list|
+and the |quickfix| respectively. The return value is something like this: >
+ {'E': 2, 'W': 1, 'x': 5}
+<Where 'E', 'W' and 'x' are error types. Empty error types are ignored for
+now.
+
+By default, `LoclistCounts` returns the counts for the current buffer (i.e.
+`bufnr("%")`), but you can pass an optional argument: passing a buffer number
+will retrieve the counts for a particular buffer, while passing the string
+"`all`" will return a dictionary of counts for all buffers.
+
+==============================================================================
+5. Autocommands/Hooks *neomake-autocmds*
+ *neomake-hooks*
+Neomake will trigger |User| autocommands on certain events.
+With all these events a dictionary `g:neomake_hook_context` is available,
+with key/value pairs depending on the autocommand/hook.
+
+Example: display a message for every maker that exits non-zero: >
+ function! MyOnNeomakeJobFinished() abort
+ let context = g:neomake_hook_context
+ if context.jobinfo.exit_code != 0
+ echom printf('The job for maker %s exited non-zero: %s',
+ \ context.jobinfo.maker.name, context.jobinfo.exit_code)
+ endif
+ endfunction
+ augroup my_neomake_hooks
+ au!
+ autocmd User NeomakeJobFinished call MyOnNeomakeJobFinished()
+ augroup END
+<
+Note: you might want to use |autocmd-nested| (in particular when handling
+opening of the location/quickfix window yourself, so that other autocommands
+get triggered, e.g. |WinEnter| for the qf window that gets opened/created): >
+ augroup my_neomake_hooks
+ au!
+ autocmd User NeomakeFinished nested call MyOnNeomakeFinished()
+ augroup END
+<
+ *NeomakeJobInit*
+The NeomakeJobInit autocommand gets triggered before a job gets started.
+You can use this to change the command (`jobinfo.argv`).
+Context:
+ - `g:neomake_hook_context.jobinfo`: see |neomake-object-jobinfo|.
+ The `argv` entry contains the command to run (executable and arguments).
+ This can be a list or a string, depending on the maker and the job backend.
+
+ *NeomakeJobStarted*
+The NeomakeJobStarted autocommand gets triggered after a job started.
+Context:
+ - `g:neomake_hook_context.jobinfo`: see |neomake-object-jobinfo|.
+
+ *NeomakeCountsChanged*
+The NeomakeCountsChanged user autocommand gets triggered after counts for the
+location/quickfix list have changed, either because the list got reset or new
+entries got added.
+You can use this to e.g. update the statusline.
+Context:
+ - `g:neomake_hook_context.reset`: 1 if the list got reset, 0 otherwise.
+ - `g:neomake_hook_context.jobinfo`: when the list is not reset; see
+ |neomake-object-jobinfo|.
+
+ *NeomakeFinished*
+The NeomakeFinished user autocommand gets triggered after all jobs of a build
+have finished.
+You can use this to e.g. close an empty location or quickfix window.
+Context:
+ - `g:neomake_hook_context`: a dictionary with the following keys:
+ - `make_info`: make info, which contains all of the entries from below,
+ plus some more. (The object itself is not documented yet)
+ - `make_id`: the numeric ID of the make run.
+ - `options`: a dictionary (related to |neomake-object-jobinfo|):
+ - `file_mode`
+ - `bufnr`
+ - `ft`
+ - `finished_jobs`: a list of job infos (|neomake-object-jobinfo|) for the
+ finished jobs.
+
+ *NeomakeJobFinished*
+The NeomakeJobFinished autocommand gets triggered after a single job has
+finished.
+Context:
+ - `g:neomake_hook_context.jobinfo`: see |neomake-object-jobinfo|; `exit_code`
+ is available there.
+
+==============================================================================
+5. Objects *neomake-objects*
+
+ *neomake-object-jobinfo*
+The `jobinfo` dictionary contains information about a job.
+(this is experimental, so not everything is documented)
+ - `maker`: a dictionary containing information about the maker that ran
+ this job. See |neomake-object-maker|.
+ - `file_mode`: 1 for file mode, 0 for project/directory mode.
+ - `make_id`: the ID of the make run
+ - `get_pid()`: get the process ID (PID) of the job (-1 if not running
+ anymore).
+
+ - Relevant for file mode:
+ - `bufnr`: the number of the buffer.
+ - `ft`: the filetype.
+ *neomake-object-maker*
+The `maker` dictionary contains the following keys:
+(this is experimental, so not everything is documented)
+ - `name`: name of the maker.
+ - `exe`: executable of the maker.
+
+==============================================================================
+6. Frequently Asked Questions (FAQ) *neomake-faq*
+
+6.1 Other plugins overwrite the signs placed by Neomake~
+
+When using quickfixsigns (https://github.com/tomtom/quickfixsigns_vim/) it
+will also place signs for errors and warnings in the quickfix/location list,
+and conflicts therefore with Neomake's own signs (see
+|g:neomake_place_signs|). You can make quickfixsigns respect Neomake's signs
+using this option: >
+
+ let g:quickfixsigns_protect_sign_rx = '^neomake_'
+<
+6.2 How to configure the makers to be used?~
+
+See |g:neomake_<ft>_enabled_makers| (press `<C-]>` on the link to go there).
+
+ *neomake-faq-errorformat*
+6.3 How to develop/debug the errorformat setting?~
+
+Here are some tips to develop the 'errorformat' setting for makers:
+
+1. Get the output from the linter into a buffer (see also |:read!|).
+2. Set the errorformat, e.g. `:let &efm = '%E%f:%l:%c\,%n: %m,%Z%m`.
+ See |errorformat| for documentation of the format itself.
+3. Load the buffer into the quickfix list: `:cgetbuffer`.
+4. Use |:copen| to open the quickfix window, and/or `:echo getqflist()` to
+ display the raw data.
+5. Pay attention to the "`valid`" property of entries.
+
+vim: ft=help tw=78 isk+=<,>,\:,-,'
diff --git a/.vim/doc/tags b/.vim/doc/tags
new file mode 100644
index 0000000..e649efc
--- /dev/null
+++ b/.vim/doc/tags
@@ -0,0 +1,262 @@
+:AirlineExtensions airline.txt /*:AirlineExtensions*
+:AirlineRefresh airline.txt /*:AirlineRefresh*
+:AirlineTheme airline.txt /*:AirlineTheme*
+:AirlineToggle airline.txt /*:AirlineToggle*
+:AirlineToggleWhitespace airline.txt /*:AirlineToggleWhitespace*
+:Neomake neomake.txt /*:Neomake*
+:Neomake! neomake.txt /*:Neomake!*
+:NeomakeCancelJob neomake.txt /*:NeomakeCancelJob*
+:NeomakeCancelJobs neomake.txt /*:NeomakeCancelJobs*
+:NeomakeClean neomake.txt /*:NeomakeClean*
+:NeomakeClean! neomake.txt /*:NeomakeClean!*
+:NeomakeDisable neomake.txt /*:NeomakeDisable*
+:NeomakeDisableBuffer neomake.txt /*:NeomakeDisableBuffer*
+:NeomakeDisableTab neomake.txt /*:NeomakeDisableTab*
+:NeomakeEnable neomake.txt /*:NeomakeEnable*
+:NeomakeEnableBuffer neomake.txt /*:NeomakeEnableBuffer*
+:NeomakeEnableTab neomake.txt /*:NeomakeEnableTab*
+:NeomakeFile neomake.txt /*:NeomakeFile*
+:NeomakeInfo neomake.txt /*:NeomakeInfo*
+:NeomakeListJobs neomake.txt /*:NeomakeListJobs*
+:NeomakeProject neomake.txt /*:NeomakeProject*
+:NeomakeSh neomake.txt /*:NeomakeSh*
+:NeomakeSh! neomake.txt /*:NeomakeSh!*
+:NeomakeStatus neomake.txt /*:NeomakeStatus*
+:NeomakeToggle neomake.txt /*:NeomakeToggle*
+:NeomakeToggleBuffer neomake.txt /*:NeomakeToggleBuffer*
+:NeomakeToggleTab neomake.txt /*:NeomakeToggleTab*
+:VdebugEval! Vdebug.txt /*:VdebugEval!*
+NeomakeCountsChanged neomake.txt /*NeomakeCountsChanged*
+NeomakeFinished neomake.txt /*NeomakeFinished*
+NeomakeJobFinished neomake.txt /*NeomakeJobFinished*
+NeomakeJobInit neomake.txt /*NeomakeJobInit*
+NeomakeJobStarted neomake.txt /*NeomakeJobStarted*
+Vdebug Vdebug.txt /*Vdebug*
+Vdebug-contents Vdebug.txt /*Vdebug-contents*
+VdebugAcknowledgements Vdebug.txt /*VdebugAcknowledgements*
+VdebugBreakpointWindow Vdebug.txt /*VdebugBreakpointWindow*
+VdebugBreakpoints Vdebug.txt /*VdebugBreakpoints*
+VdebugCommandDetach Vdebug.txt /*VdebugCommandDetach*
+VdebugCommandRun Vdebug.txt /*VdebugCommandRun*
+VdebugCommandRunToCursor Vdebug.txt /*VdebugCommandRunToCursor*
+VdebugCommandStepIn Vdebug.txt /*VdebugCommandStepIn*
+VdebugCommandStepOut Vdebug.txt /*VdebugCommandStepOut*
+VdebugCommandStepOver Vdebug.txt /*VdebugCommandStepOver*
+VdebugCommandStop Vdebug.txt /*VdebugCommandStop*
+VdebugCommands Vdebug.txt /*VdebugCommands*
+VdebugEval Vdebug.txt /*VdebugEval*
+VdebugEvalExpression Vdebug.txt /*VdebugEvalExpression*
+VdebugEvalHighlighted Vdebug.txt /*VdebugEvalHighlighted*
+VdebugEvalUnderCursor Vdebug.txt /*VdebugEvalUnderCursor*
+VdebugFeatures Vdebug.txt /*VdebugFeatures*
+VdebugIDEKey Vdebug.txt /*VdebugIDEKey*
+VdebugInstallation Vdebug.txt /*VdebugInstallation*
+VdebugIntro Vdebug.txt /*VdebugIntro*
+VdebugIntroDBGP Vdebug.txt /*VdebugIntroDBGP*
+VdebugIntroDebugging Vdebug.txt /*VdebugIntroDebugging*
+VdebugIntroLanguages Vdebug.txt /*VdebugIntroLanguages*
+VdebugKeys Vdebug.txt /*VdebugKeys*
+VdebugLogWindow Vdebug.txt /*VdebugLogWindow*
+VdebugOpt Vdebug.txt /*VdebugOpt*
+VdebugOptionList Vdebug.txt /*VdebugOptionList*
+VdebugOptions Vdebug.txt /*VdebugOptions*
+VdebugOptions-break_on_open Vdebug.txt /*VdebugOptions-break_on_open*
+VdebugOptions-continuous_mode Vdebug.txt /*VdebugOptions-continuous_mode*
+VdebugOptions-debug_file Vdebug.txt /*VdebugOptions-debug_file*
+VdebugOptions-debug_file_level Vdebug.txt /*VdebugOptions-debug_file_level*
+VdebugOptions-debug_window_level Vdebug.txt /*VdebugOptions-debug_window_level*
+VdebugOptions-ide_key Vdebug.txt /*VdebugOptions-ide_key*
+VdebugOptions-marker_closed_tree Vdebug.txt /*VdebugOptions-marker_closed_tree*
+VdebugOptions-marker_default Vdebug.txt /*VdebugOptions-marker_default*
+VdebugOptions-marker_open_tree Vdebug.txt /*VdebugOptions-marker_open_tree*
+VdebugOptions-on_close Vdebug.txt /*VdebugOptions-on_close*
+VdebugOptions-path_maps Vdebug.txt /*VdebugOptions-path_maps*
+VdebugOptions-port Vdebug.txt /*VdebugOptions-port*
+VdebugOptions-server Vdebug.txt /*VdebugOptions-server*
+VdebugOptions-sign_breakpoint Vdebug.txt /*VdebugOptions-sign_breakpoint*
+VdebugOptions-sign_current Vdebug.txt /*VdebugOptions-sign_current*
+VdebugOptions-timeout Vdebug.txt /*VdebugOptions-timeout*
+VdebugOptions-watch_window_style Vdebug.txt /*VdebugOptions-watch_window_style*
+VdebugRemote Vdebug.txt /*VdebugRemote*
+VdebugRemoteConnection Vdebug.txt /*VdebugRemoteConnection*
+VdebugRemoteFilePaths Vdebug.txt /*VdebugRemoteFilePaths*
+VdebugRemoveBreakpoints Vdebug.txt /*VdebugRemoveBreakpoints*
+VdebugSetBreakpoints Vdebug.txt /*VdebugSetBreakpoints*
+VdebugSetBreakpoints-call Vdebug.txt /*VdebugSetBreakpoints-call*
+VdebugSetBreakpoints-conditional Vdebug.txt /*VdebugSetBreakpoints-conditional*
+VdebugSetBreakpoints-exception Vdebug.txt /*VdebugSetBreakpoints-exception*
+VdebugSetBreakpoints-return Vdebug.txt /*VdebugSetBreakpoints-return*
+VdebugSetBreakpoints-watch Vdebug.txt /*VdebugSetBreakpoints-watch*
+VdebugSetLineBreakpoint Vdebug.txt /*VdebugSetLineBreakpoint*
+VdebugSetUp Vdebug.txt /*VdebugSetUp*
+VdebugSetUpNodejs Vdebug.txt /*VdebugSetUpNodejs*
+VdebugSetUpPHP Vdebug.txt /*VdebugSetUpPHP*
+VdebugSetUpPerl Vdebug.txt /*VdebugSetUpPerl*
+VdebugSetUpPython Vdebug.txt /*VdebugSetUpPython*
+VdebugSetUpRuby Vdebug.txt /*VdebugSetUpRuby*
+VdebugSetUpTcl Vdebug.txt /*VdebugSetUpTcl*
+VdebugSourceWindow Vdebug.txt /*VdebugSourceWindow*
+VdebugStackWindow Vdebug.txt /*VdebugStackWindow*
+VdebugStart Vdebug.txt /*VdebugStart*
+VdebugStatusWindow Vdebug.txt /*VdebugStatusWindow*
+VdebugTrace Vdebug.txt /*VdebugTrace*
+VdebugTraceWindow Vdebug.txt /*VdebugTraceWindow*
+VdebugTroubleshooting Vdebug.txt /*VdebugTroubleshooting*
+VdebugUI Vdebug.txt /*VdebugUI*
+VdebugUsage Vdebug.txt /*VdebugUsage*
+VdebugViewBreakpoints Vdebug.txt /*VdebugViewBreakpoints*
+VdebugWatchWindow Vdebug.txt /*VdebugWatchWindow*
+add_inactive_statusline_func airline.txt /*add_inactive_statusline_func*
+add_statusline_func airline.txt /*add_statusline_func*
+airline airline.txt /*airline*
+airline#extensions#tabline#exclude_buffers airline.txt /*airline#extensions#tabline#exclude_buffers*
+airline#ignore_bufadd_pat airline.txt /*airline#ignore_bufadd_pat*
+airline-accents airline.txt /*airline-accents*
+airline-advanced-customization airline.txt /*airline-advanced-customization*
+airline-ale airline.txt /*airline-ale*
+airline-autocommands airline.txt /*airline-autocommands*
+airline-branch airline.txt /*airline-branch*
+airline-bufferline airline.txt /*airline-bufferline*
+airline-capslock airline.txt /*airline-capslock*
+airline-commands airline.txt /*airline-commands*
+airline-configuration airline.txt /*airline-configuration*
+airline-contents airline.txt /*airline-contents*
+airline-contributions airline.txt /*airline-contributions*
+airline-csv airline.txt /*airline-csv*
+airline-ctrlp airline.txt /*airline-ctrlp*
+airline-ctrlspace airline.txt /*airline-ctrlspace*
+airline-cursormode airline.txt /*airline-cursormode*
+airline-customization airline.txt /*airline-customization*
+airline-default airline.txt /*airline-default*
+airline-eclim airline.txt /*airline-eclim*
+airline-extensions airline.txt /*airline-extensions*
+airline-features airline.txt /*airline-features*
+airline-fugitiveline airline.txt /*airline-fugitiveline*
+airline-funcrefs airline.txt /*airline-funcrefs*
+airline-grepper airline.txt /*airline-grepper*
+airline-gutentags airline.txt /*airline-gutentags*
+airline-hunks airline.txt /*airline-hunks*
+airline-intro airline.txt /*airline-intro*
+airline-keymap airline.txt /*airline-keymap*
+airline-languageclient airline.txt /*airline-languageclient*
+airline-license airline.txt /*airline-license*
+airline-localsearch airline.txt /*airline-localsearch*
+airline-name airline.txt /*airline-name*
+airline-neomake airline.txt /*airline-neomake*
+airline-nerdtree airline.txt /*airline-nerdtree*
+airline-nrrwrgn airline.txt /*airline-nrrwrgn*
+airline-obsession airline.txt /*airline-obsession*
+airline-parts airline.txt /*airline-parts*
+airline-pipeline airline.txt /*airline-pipeline*
+airline-pipeline-return-codes airline.txt /*airline-pipeline-return-codes*
+airline-po airline.txt /*airline-po*
+airline-predefined-parts airline.txt /*airline-predefined-parts*
+airline-promptline airline.txt /*airline-promptline*
+airline-quickfix airline.txt /*airline-quickfix*
+airline-sections airline.txt /*airline-sections*
+airline-syntastic airline.txt /*airline-syntastic*
+airline-tabline airline.txt /*airline-tabline*
+airline-taboo airline.txt /*airline-taboo*
+airline-tagbar airline.txt /*airline-tagbar*
+airline-themes airline.txt /*airline-themes*
+airline-tmuxline airline.txt /*airline-tmuxline*
+airline-troubleshooting airline.txt /*airline-troubleshooting*
+airline-vimagit airline.txt /*airline-vimagit*
+airline-vimtex airline.txt /*airline-vimtex*
+airline-virtualenv airline.txt /*airline-virtualenv*
+airline-whitespace airline.txt /*airline-whitespace*
+airline-windowswap airline.txt /*airline-windowswap*
+airline-wordcount airline.txt /*airline-wordcount*
+airline-writing-extensions airline.txt /*airline-writing-extensions*
+airline-xkblayout airline.txt /*airline-xkblayout*
+airline-xtabline airline.txt /*airline-xtabline*
+airline-ycm airline.txt /*airline-ycm*
+airline.txt airline.txt /*airline.txt*
+b:neomake_<ft>_<name>_<property> neomake.txt /*b:neomake_<ft>_<name>_<property>*
+b:neomake_<ft>_enabled_makers neomake.txt /*b:neomake_<ft>_enabled_makers*
+b:neomake_<name>_<property> neomake.txt /*b:neomake_<name>_<property>*
+b:neomake_enabled_makers neomake.txt /*b:neomake_enabled_makers*
+b:neomake_list_height neomake.txt /*b:neomake_list_height*
+b:neomake_open_list neomake.txt /*b:neomake_open_list*
+g:airline#extensions#neomake#enabled neomake.txt /*g:airline#extensions#neomake#enabled*
+g:neomake_<ft>_<name>_<property> neomake.txt /*g:neomake_<ft>_<name>_<property>*
+g:neomake_<ft>_<name>_maker neomake.txt /*g:neomake_<ft>_<name>_maker*
+g:neomake_<ft>_enabled_makers neomake.txt /*g:neomake_<ft>_enabled_makers*
+g:neomake_<name>_<property> neomake.txt /*g:neomake_<name>_<property>*
+g:neomake_<name>_maker neomake.txt /*g:neomake_<name>_maker*
+g:neomake_cursormoved_delay neomake.txt /*g:neomake_cursormoved_delay*
+g:neomake_echo_current_error neomake.txt /*g:neomake_echo_current_error*
+g:neomake_enabled_makers neomake.txt /*g:neomake_enabled_makers*
+g:neomake_error_sign neomake.txt /*g:neomake_error_sign*
+g:neomake_highlight_columns neomake.txt /*g:neomake_highlight_columns*
+g:neomake_highlight_lines neomake.txt /*g:neomake_highlight_lines*
+g:neomake_info_sign neomake.txt /*g:neomake_info_sign*
+g:neomake_list_height neomake.txt /*g:neomake_list_height*
+g:neomake_logfile neomake.txt /*g:neomake_logfile*
+g:neomake_message_sign neomake.txt /*g:neomake_message_sign*
+g:neomake_open_list neomake.txt /*g:neomake_open_list*
+g:neomake_place_signs neomake.txt /*g:neomake_place_signs*
+g:neomake_remove_invalid_entries neomake.txt /*g:neomake_remove_invalid_entries*
+g:neomake_serialize neomake.txt /*g:neomake_serialize*
+g:neomake_serialize_abort_on_error neomake.txt /*g:neomake_serialize_abort_on_error*
+g:neomake_verbose neomake.txt /*g:neomake_verbose*
+g:neomake_virtualtext_current_error neomake.txt /*g:neomake_virtualtext_current_error*
+g:neomake_virtualtext_prefix neomake.txt /*g:neomake_virtualtext_prefix*
+g:neomake_warning_sign neomake.txt /*g:neomake_warning_sign*
+neomake neomake.txt /*neomake*
+neomake#CancelJob neomake.txt /*neomake#CancelJob*
+neomake#ListJobs neomake.txt /*neomake#ListJobs*
+neomake#Make neomake.txt /*neomake#Make*
+neomake#Sh neomake.txt /*neomake#Sh*
+neomake#signs#RedefineErrorSign neomake.txt /*neomake#signs#RedefineErrorSign*
+neomake#signs#RedefineWarningSign neomake.txt /*neomake#signs#RedefineWarningSign*
+neomake#statusline#LoclistCounts neomake.txt /*neomake#statusline#LoclistCounts*
+neomake#statusline#LoclistStatus neomake.txt /*neomake#statusline#LoclistStatus*
+neomake#statusline#QflistCounts neomake.txt /*neomake#statusline#QflistCounts*
+neomake#statusline#QflistStatus neomake.txt /*neomake#statusline#QflistStatus*
+neomake#statusline#get() neomake.txt /*neomake#statusline#get()*
+neomake-args-file neomake.txt /*neomake-args-file*
+neomake-autocmds neomake.txt /*neomake-autocmds*
+neomake-automake neomake.txt /*neomake-automake*
+neomake-automake-dynamic-delay neomake.txt /*neomake-automake-dynamic-delay*
+neomake-commands neomake.txt /*neomake-commands*
+neomake-configuration neomake.txt /*neomake-configuration*
+neomake-disable neomake.txt /*neomake-disable*
+neomake-enable neomake.txt /*neomake-enable*
+neomake-faq neomake.txt /*neomake-faq*
+neomake-faq-errorformat neomake.txt /*neomake-faq-errorformat*
+neomake-functions neomake.txt /*neomake-functions*
+neomake-highlight neomake.txt /*neomake-highlight*
+neomake-hooks neomake.txt /*neomake-hooks*
+neomake-introduction neomake.txt /*neomake-introduction*
+neomake-job-makers neomake.txt /*neomake-job-makers*
+neomake-makers neomake.txt /*neomake-makers*
+neomake-makers-InitForJob neomake.txt /*neomake-makers-InitForJob*
+neomake-makers-args neomake.txt /*neomake-makers-args*
+neomake-makers-buffer_output neomake.txt /*neomake-makers-buffer_output*
+neomake-makers-cwd neomake.txt /*neomake-makers-cwd*
+neomake-makers-exe neomake.txt /*neomake-makers-exe*
+neomake-makers-filter_output neomake.txt /*neomake-makers-filter_output*
+neomake-makers-get_list_entries neomake.txt /*neomake-makers-get_list_entries*
+neomake-makers-mapexpr neomake.txt /*neomake-makers-mapexpr*
+neomake-makers-output_stream neomake.txt /*neomake-makers-output_stream*
+neomake-makers-postprocess neomake.txt /*neomake-makers-postprocess*
+neomake-makers-process_json neomake.txt /*neomake-makers-process_json*
+neomake-makers-process_output neomake.txt /*neomake-makers-process_output*
+neomake-makers-processing neomake.txt /*neomake-makers-processing*
+neomake-makers-properties neomake.txt /*neomake-makers-properties*
+neomake-makers-remove_invalid_entries neomake.txt /*neomake-makers-remove_invalid_entries*
+neomake-makers-supports_stdin neomake.txt /*neomake-makers-supports_stdin*
+neomake-makers-tempfile_dir neomake.txt /*neomake-makers-tempfile_dir*
+neomake-makers-tempfile_enabled neomake.txt /*neomake-makers-tempfile_enabled*
+neomake-makers-uses_stdin neomake.txt /*neomake-makers-uses_stdin*
+neomake-object-jobinfo neomake.txt /*neomake-object-jobinfo*
+neomake-object-maker neomake.txt /*neomake-object-maker*
+neomake-objects neomake.txt /*neomake-objects*
+neomake-options neomake.txt /*neomake-options*
+neomake-signs neomake.txt /*neomake-signs*
+neomake-statusline neomake.txt /*neomake-statusline*
+neomake-toggle neomake.txt /*neomake-toggle*
+neomake.txt neomake.txt /*neomake.txt*
+remove_statusline_func airline.txt /*remove_statusline_func*
+vim-airline airline.txt /*vim-airline*