Commit Graph

1868 Commits

Author SHA1 Message Date
Liam Fleming
8715d13cc5 wordcount: Refactor updating and autocmds
Various improvements:
 - Seperate out visual mode detection.
 - Use TextChanged rather than CursorMoved where supported.
 - Let users specify the filetypes for which wordcounting is enabled
   with a list rather than a pattern.
 - Move the filetype check to when airline is refreshed, as opposed to
   on every update; autocommands are not created if wordcounting is
   disabled
2018-07-28 19:26:24 +01:00
Liam Fleming
44da0a4761 wordcount: Replace formatter interface
Currently the formatter, and not the wordcount plugin, is responsible
for providing the wordcount as well as formatting it. The default
formatter allows visual mode word counting, although this is not
documented.

The new interface - a transform() function, allows the main wordcount
plugin to internalise this logic. Providing the wordcount simplifies
formatter implementations:
 - All formatters can display the visual wordcount.
 - Formatters do not have to worry about compatibility with different
   vim versions.

The old format() function can now be deprecated, although the wordcount
plugin retains compatibility with formatters using it. The default
formatter will also be used as a fallback if no suitable function is
found.

The default formatter is rewritten to use the new interface.
2018-07-28 18:24:12 +01:00
Liam Fleming
781c40bb3d Create AirlineModeChanged autocmd 2018-06-28 18:44:26 +01:00
Christian Brabandt
b790fd2120
Merge pull request #1750 from Mangero/arduino-whitespace
Add Arduino to list of C-like languages
2018-06-18 08:39:53 +02:00
Christian Brabandt
c3a814dbae
Merge pull request #1749 from flemingfleming/autocmd-improvements
Autocmds: Move CursorMoved autocmd into the main augroup.
2018-06-18 08:39:17 +02:00
Mangero
a141918faa
Add Arduino to list of C-like languages
Add 'arduino' filetype to list of C-like languages. This is needed in
order to avoid mix-indent-file warnings when using hard tabs for
indentation in Arduino source files (*.ino, *.pde) containing top level
block comments with leading space before a '*'.

Similar to: 460ed02864
Original fix: 8fde76dd63
2018-06-18 01:09:56 +02:00
Liam Fleming
11bc0ba843 Move CursorMoved autocmd to main augroup 2018-06-16 20:34:07 +01:00
Christian Brabandt
45c9621157
Merge pull request #1744 from flemingfleming/fix-function-signatures
add "!" to function signatures
2018-06-13 20:06:17 +02:00
Liam Fleming
feca81fb86 add "!" to function signatures 2018-06-13 17:52:13 +01:00
Christian Brabandt
4f95970228
branch: use :noa before calling async func
for some reasons, calling async functions might cause an error, if a
SourcePre command has been defined. So explicitly call the functions
using `:noa` modifier to prevent triggering the SourcePre autocommand.

fixes #1742
2018-06-11 14:45:29 +02:00
Christian Brabandt
7d871137be
Correctly test for CompleteDone event 2018-06-09 10:50:25 +02:00
Christian Brabandt
6a05b92716
Merge pull request #1732 from shirohana/fix/integrate-with-ctrlspace
airline#extension#ctrlspace: Fix tabline didn't update when enable both buffers and tabs
2018-06-05 11:23:12 +02:00
Christian Brabandt
55716a1cc2
Remove wrong comment for TerminalOpen autocmd 2018-06-05 11:22:07 +02:00
Hana Shiro
acb93da0d8 Fix tabline didn't update when enable both buffers and tabs 2018-06-05 06:11:14 +08:00
Christian Brabandt
add75907d5
Merge pull request #1738 from shirohana/fix/ctrlspace-tabline-switching
airline#extensions#ctrlspace: Fix tabline didn't update when switch to tab which focused on non-listed buffer
2018-06-04 22:56:22 +02:00
Christian Brabandt
eab6d35852
terminal: Some improvements to Terminal detection
closes #1730

- Make sure to always call the term extension on TermOpen autocommands
- consistently use the airline_term highlighting group
- hard code the airline_term highlighting group, because by the time the
  function airline#themes#patch() is called the highlighting group
  airline_c would no be defined, so we cannot dynamically get those
  attributes
- In the documentation, mention how the g:airline_mode_map can be set
  including the terminal section
2018-06-04 22:44:46 +02:00
Christian Brabandt
1bb1ce594a
Formatter: Use pathshorten() instead of substitute()
The default formatter uses a hand-build regexp for shortening the path
in the tabline. However, since it uses the \w  regex atom, this won't
match e.g. cyrillic letters.

To fix this, use the builtin pathshorten() function which does handle
this case correctly. For a test, use e.g. 'D/Учёба/t.c'

closes #1737
2018-06-04 21:59:16 +02:00
Christian Brabandt
044a90ed55
use get(v:, 'lang', '') instead of v:lang
closes #1735
2018-06-04 21:45:46 +02:00
Christian Brabandt
981b83003f
fugitive: Use FugitiveHead() instead of fugitive#head
function if possible and use it instead of the fugitive#head
(which will always autload the fugitive plugin).
2018-06-04 18:32:30 +02:00
Christian Brabandt
a1680cc36d
fugitive: Check for existence of FugitiveStatusline function
as per @tpopes advice.
2018-06-04 17:42:33 +02:00
Christian Brabandt
30a3c4f549
branch: fugitive renamed its functions
this caused that the branch extension was not correctly working anymore
because of a refactoring of fugitive tpope/vim-fugitive@5d11ff7

Solution: Move the existence check for the fugitive plugin into a
separate function and call it from there in all places that check the
fugitive plugin. Do the same for lawrencium and vcscommand check.

fixes #605 #1739
2018-06-04 17:38:49 +02:00
Hana Shiro
c7d4710f76 Refactor airline#extentions#tabline#ctrlspace#* 2018-06-02 23:41:15 +08:00
Hana Shiro
6e1e6686e7 Fix problems caused by #1524 2018-06-02 21:22:00 +08:00
Hana Shiro
a6e07b6a55 Remove unused catch block 2018-06-02 14:04:25 +08:00
Hana Shiro
4db6d11962 Fix indentation 2018-06-02 13:59:08 +08:00
Hana Shiro
ac799f6021 Rename parameters for better readability 2018-06-02 13:49:32 +08:00
Hana Shiro
92bf1b0b39 Use ternary-operator 2018-06-02 13:02:49 +08:00
Christian Brabandt
08570b6dcb
doc: fix wrong double quote by single quote 2018-05-25 11:37:57 +02:00
Christian Brabandt
64e925d675
doc: document notexists symbol correctly
fixes #1729
2018-05-25 11:36:54 +02:00
Christian Brabandt
315cf0deec
Merge pull request #1724 from lubomir/fix-doc
Fix documentation for syntastic format of warnings
2018-05-20 19:53:25 +02:00
Lubomír Sedlář
0f91e21710 Fix documentation for syntastic format of warnings 2018-05-17 10:34:04 +02:00
Christian Brabandt
02ffdfe0e5
Merge pull request #1722 from dkav/patch-1
Update README.md
2018-05-13 18:33:34 +02:00
Darren Kavanagh
a280ea4a18
Update README.md
Fix typo and grammar.
2018-05-12 18:59:29 -07:00
Christian Brabandt
a7b84f5b67
doc: fix tag airline#ignore_bufadd_pat 2018-05-11 22:36:44 +02:00
Christian Brabandt
b84e13f1d7
Blacklist startify for [noperm]
Startify unfortunately does not set the buftype option, so the
`[noperm]` would be shown, since the buffer is not really a file.
(see mhinz/vim-startify#324)

So allow to blacklist startify from this setting. To do so, the logic
from the tabline extension was refactored out into a separate function
that returns true, if the buffer matches
`g:airline#extensions#tabline#ignore_bufadd_pat` and that function is
then reused for the readonly() function as well.
2018-05-11 22:32:20 +02:00
Christian Brabandt
c7e05efb76
Only consider regular files for the '[noperm]'
Recently, NERDTree added the &readonly setting to its buffer.
Unfortunately, this caused airline to render the '[noperm]' string in
it.

Fix this by only making the readonly check for buffers that actually
represent files (e.g. the buftype option is empty).
2018-05-11 09:53:55 +02:00
Christian Brabandt
5a065e8b82
Merge pull request #1717 from iroedius/disable-trailing-check
allow to also disable trailing whitespace check per filetype
2018-04-28 09:16:32 +02:00
iroedius
15bc732df4 allow to also disable trailing whitespace check per filetype 2018-04-28 07:34:59 +02:00
Christian Brabandt
33310c5b24
whitespace: Allow to disable individual whitespace checks per filetype
closes #1716
2018-04-27 08:25:49 +02:00
Stanislav Gobunov
c4a4a20b8d
xkblayout: Make Short codes configurable
airline#extensions#xkblayout#short_codes changed to global for easily redefine long named keyboard layout

closes #1713
2018-04-18 10:46:55 +02:00
Christian Brabandt
3ad4a18d85
xtabline doc: mention required tabline setting 2018-04-17 07:37:56 +02:00
Christian Brabandt
a76f523be5
bufferline: always add a space for the very first item
closes #1631
2018-04-15 10:16:28 +02:00
mg979
f7c818a0ff
add xtabline extension 2018-04-14 14:03:21 +02:00
Christian Brabandt
d9acbc53b0
Reset g_airline_gui_mode on setting termguicolors
fixes #1663, should make sure that the separators are correctly
displayed even when setting 'termguicolors' later than expected.
2018-04-12 10:24:54 +02:00
Christian Brabandt
0df2c9b12e
Merge pull request #1700 from mox-mox/master
Add extension for vim-localsearch
2018-04-09 13:27:44 +02:00
mox
00f718691a Adding localsearch extension (code and documentation). See https://github.com/mox-mox/vim-localsearch 2018-04-09 00:47:23 +02:00
Christian Brabandt
d66b507b02
Merge pull request #1683 from idbrii/add-custom-scm
Make branch detection customizable
2018-04-08 21:56:32 +02:00
David Briscoe
8209ca7da1 Make branch detection customizable
Instead of requiring each version control plugin to modify airline to
show the current branch, provide a customization function we can check
instead.

Following the example of airline_theme_patch_func, you define the
variable like so:

    let g:airline#extensions#branch#custom_head = 'david#svn#get_branch'

Custom functions should cache their value. They may need an autocmd to
invalidate their cache:

    " Use a buffer-unique group name to prevent clearing autocmds for other
    " buffers.
    exec 'augroup svndavid-'. bufnr("%")
        au!
        autocmd BufWinLeave <buffer> unlet! b:svndavid_branch
    augroup END

This change lets me integrate with vc.vim (I couldn't get VCSCommand
working for svn) or write my own thing for perforce.

Additionally, always load whole file and check for existence.

Instead of determining up front whether various scm plugins are
installed, check for them on use so they can be added after this script
is sourced.

This also mitigates the problem of checking for existence of autoload
functions (which are not loaded by exist()). Since we're checking
root-level functions, they're likely to be loaded once we're using any
part of the plugin.
2018-04-06 09:40:17 -07:00
Christian Brabandt
902921931e
Simplify airline#init#gui_mode()
remove all the old code that is probably not used anymore
2018-04-06 02:21:20 +02:00
Christian Brabandt
ae394294c3
gutentags: output correct statusline message
fixes #1703
2018-04-06 02:14:10 +02:00