Files
nvim-hardline/README.md
Olivier Roques 56a7f17463 Rename screenshot
2020-12-28 13:30:33 +01:00

88 lines
3.0 KiB
Markdown

# nvim-hardline
A statusline / bufferline for Neovim written in Lua. It is inspired by
[vim-airline](https://github.com/vim-airline/vim-airline) but aims to
be as light and simple as possible.
![screenshot](./screenshot.png)
## Installation
#### With Packer:
```lua
cmd 'packadd packer.nvim'
return require('packer').startup(function()
use {'ojroques/nvim-hardline'}
end)
```
#### With Plug
```vim
call plug#begin()
Plug 'ojroques/nvim-hardline'
call plug#end()
```
## Usage
In your *init.lua*:
```lua
require('hardline').setup {}
```
If you're using a *.vimrc* or *init.vim*:
```vim
lua require('hardline').setup {}
```
## Configuration
You can pass options to the `setup()` function. Here are all available options
with their default settings:
```lua
require('hardline').setup {
bufferline = false, -- enable bufferline
theme = 'default', -- change theme
sections = { -- define sections
{class = 'mode', item = require('hardline.parts.mode').get_item},
{class = 'high', item = require('hardline.parts.git').get_item, hide = 80},
'%<',
{class = 'med', item = require('hardline.parts.filename').get_item},
{class = 'med', item ='%='},
{class = 'low', item = require('hardline.parts.wordcount').get_item, hide = 80},
{class = 'error', item = require('hardline.parts.lsp').get_error},
{class = 'warning', item = require('hardline.parts.lsp').get_warning},
{class = 'warning', item = require('hardline.parts.whitespace').get_item},
{class = 'high', item = require('hardline.parts.filetype').get_item, hide = 80},
{class = 'mode', item = require('hardline.parts.line').get_item},
},
}
```
You can define your own sections using the `sections` list. Each element of
that list is a table with the following attributes:
* `class`: the section colorscheme. The following classes are currently
available:
* `mode`: change color based on the current mode.
* `low`, `med`, `high`: colors for different levels of importance.
* `bufferline`: colors for the bufferline.
* `error`, `warning`: colors for the diagnostics of Neovim built-in LSP
client.
* `item`: the actual text being displayed. Must be a string or a function
returning a string.
* `hide`: threshold (in number of characters) below which the section will be
hidden.
## Available section parts
| Part | Description |
|------|-------------|
| `filename` | Filename and file status (readonly, modified, ...) |
| `filetype` | Filetype |
| `git` | Git hunks (requires [vim-gitgutter](https://github.com/airblade/vim-gitgutter)) and Git branch (requires [vim-fugitive](https://github.com/tpope/vim-fugitive)) |
| `line` | Line and column positions |
| `lsp` | Diagnostics from Neovim LSP client |
| `mode` | Current mode |
| `whitespace` | Trailing whitespaces, mixed indent and Git conflict markers warnings |
| `wordcount` | Current word count (enabled only for [some filetypes](https://github.com/ojroques/nvim-hardline/blob/5fc738bb7991f7d7890be14e7a74a50e21f0bd81/lua/hardline/parts/wordcount.lua#L8-L19)) |
## License
[LICENSE](./LICENSE)