* Refactor tests to use stubs for nvim-web-devicons
* Simplify getting icon
`get_icon` does not need the 2nd parameter (`ext`) as it will derive it
from the given `name` (1st argument) itself.
* fix component(filetype) proper icon based on filetype
With https://github.com/kyazdani42/nvim-web-devicons/pull/125 a filetype
based lookup was implemented upstream which can be used to get an icon
when a file doesn't have an extension.
fixes#578
Instead of shortening a path segment to just the dot, it is now always
using 2 characters.
E.g.
```
~/.config/nvim/lua/config/lualine.lua
```
is shortened to
```
~/.c/n/l/c/lualine.lua
```
This includes a rewrite of the shortening logic as it cannot be
expressed easily/readable using patterns. The current approach starts at
the beginning and replaces each segment by a shortened version and
keeping track of the overall length (basic book keeping on how many
characters were saved by the replacement).
* feat: allow lualine to ignore focus on specific filetypes.
closes#710
* fix: extensions on ingnored_focus
* perf: reuse api call results & use local variables instead of vim.g
* make location & progress components behave in ingnored filetypes
* fix: crash when last_focused win gets closed
* fix: location & progress related broken tests
* feat: refresh lualine based on timer.
* fix config test
* fix lag on win change issue
* handle errors in timer callback
* feat: add winbar support
Pull in winbar changes form pr #689 and adapt them
Co-authored-by: shadmansaleh <13149513+shadmansaleh@users.noreply.github.com>
* make winbar disapear when winbar evals empty
* only update stl of curwin with globalstatus
* properly clear win local stl and wbr opts
* add version guards for winbar feature
* only add winbar if height > 1
* fix tests?
* refresh lualine on ModeChanged event
* ignore floating windows for refresh
* properply restore options to previous state
* fix stl not updating in cmd mode + some optimizations
* fix tests on <nvim-0.7
* merge status_dispatch & winbar_dispatch + winbar support for extensions
* fix globalstatus option not live updating
* update docs
* feat: allow disabling winbar and statusline separately
* fix tests
* fix: winbar some times oddly throwing errors
about not having space in floating windows.
This implements a temporary workaround the issue(https://github.com/neovim/neovim/issues/19464)
until the bug in neovim gets fixed.
Co-authored-by: Diego Fujii <android.mxdiego9@gmail.com>
* docs: fix typo in component notice
* refactor: rename typo param 'pattern'
* docs: fix comments typos across project files
Cleanup misspellings and wording in comment lines.
* docs: improve readability of `CONTRIBUTING.md`
* docs: improve readability of `README.md`
- Minor typos
- Clarify information
- Separate sections from paragraphs
* docs: add newline below headers in `THEMES.md`
Aim's to be consistent with other documents.
* docs: fix unname tabpage command reference
* docs: reword 'directly bused' for `setup_theme()`
* docs: fix extra indent in contribution list
* docs: more separation in readme/tabs, remove extra backtick
* docs: further improve wording for `setup_theme`
* docs: improve wording for `setup` function
* docs: missing underscore in lualine/config
* Add option to show buffer number + alternate file icon
* Address PR comments
* Adjust existing tests for buffer bufnr mode additions
* Revert "Adjust existing tests for buffer bufnr mode additions"
This reverts commit f8422d9f38b4b437a2330101e13c3a4bc50ed920.
* Add missing case for buffers mode == 0
* Fix some test cases for alternate file icon + modified icon
* Add test cases for modes 3 & 4
* Correct typo in README
* Fix buffers component mode can change layout specs
* Detect buffer numbers in lualine_spec bufnr tests
* Minor change to test descriptions
* Delete unnamed buffer for consistent test results between nvim versions
* Add test case for alternate buffer when switching buffers
* Extend switching buffers test
Co-authored-by: Marc Jakobi <marc.jakobi@tiko.energy>
Co-authored-by: Marc Jakobi <mrcjk@p40yoga.localdomain>
* feat: add option to invert component icon alignment
Invert component status icon if variable is set `icon_right = true`.
* refactor: use string for icon alignment
Change conditional variable for icon left/right alignment from Boolean
to `icon_alignment = 'right'`.
* refactor: check icon table for alignment variable
Determine component status output from icon_alignment variable.
Provides alignment variables for generic component and filetype
devicons.
`component = { 'name', icon = {'*', align = 'right'} }`
`component = { 'filetype', icon_alignment = 'right' }`
* style: restore previous formatting on line 79
* refactor: set `self.option.icon` as table
* fix: forgot non-color icon alignment
* fix: remove redundant variable assignment
* docs: add README examples for icon alignment
Include configuration examples for icon alignment to README file.
* test: add test for filetype components icon align
Ensure testability for filetype icons being aligned to right side.
* refactor: moved loading to new module
* refactor: check_single_separator
* refactor: simplified separator fixing
* refactor: tests/ -> lua/tests/
* refactor: moved to nvim_err_writeln for errors
* feat: moved config parsing to config.lua
* feat: get config directly from config module
* feat: added load_all function
* tests: config parsing tests
* added assert to luacheck globals