Commit Graph

51 Commits

Author SHA1 Message Date
shadmansaleh d4f83afa7f Enhance: extract helper functions from apply_trans_sep() 2021-08-27 00:46:29 +06:00
shadmansaleh dd9e1b7bf0 fix: Section seperator disapearing when x section is empty
closes #22
2021-08-26 20:29:25 +06:00
shadmansaleh c9b5f364dc Fix various visual bugs in components transitional sep 2021-08-26 18:20:16 +06:00
shadmansaleh f728edd31d fix: odd situation of section separators with ayz/abz section configured 2021-08-26 18:20:16 +06:00
shadmansaleh 1c57497863 refactor: Improve section separators
- behaviour change now statusline won't be separated with %=
  if you don't have at lest one of lualine_x/y/z
- fixed some bugs
- simplified the transitional separators quite a bit. I think now
  it's understandable . Yay .
- Perf improvements too.
2021-08-26 18:20:16 +06:00
shadmansaleh c5bd65d05b chore: Add focused arg to statusline function (To make debugging easier) 2021-08-22 14:06:46 +06:00
shadmansaleh bdc3073d31 fix: Partially process config when setup is called
Otherwise successive calls to setups before redraw are ignored.

closes #12
2021-08-17 13:26:44 +06:00
shadmansaleh 0126ac0cc0 perf: lazy load modules and dalay config loading till status redraw
This should make require'lualine' less expensive and make lualine
have less impact in startuptime
2021-08-16 23:40:27 +06:00
shadmansaleh 32727039a9 |DEPRECATION| enhance(themes): Auto colorscheme detection and more
- `auto` theme now auto loads available theme for colorschme based on
  g:color_name . If that fails then it generates a theme for that
  colorschme like before.
- Theme from external source is preferred over bundled version in
  lualine . This means if user has a colorschme that provided the same
  theme as lualine the one from colorschme will be loaded.
- Default value of theme is changed to `auto` from `gruvbox`.
- Now when users theme from config fails lualine will fallbavk to
  `auto`. If `auto` fails then lualine will fallback to `gruvbox`
- Some themes have been renamed to their actual name (g:color_name).
  older names have been deprecated. [DEPRECATION]
    oceanicnext -> OceanicNext
    papercolor -> PaperColor
    tomorrow -> Tomorrow
    gruvbox_material -> gruvbox-material
    modus_vivendi -> modus-vivendi
- A few more adaptive themes added (aye, gruvbox, iceberg)
- Updated THEMES.md to reflect changes in theme name
2021-08-14 12:35:08 +06:00
shadmansaleh f68d81d351 [Deprection] Enhance: Provide an uniform interface for color options
- Now all color related options and themes color definition have same
  semantics. They can either be a table containing values like bg,fg,gui
  or a string. When it's a string it's treated as a highlight group name
  and newly created group is linked to that group.
- Using string values to define foreground colors in options like
  color_error/color_added in diagnostics and diff component has been
  deprecated.
- Added a decent way of notifying affected users of deprecations and
  breaking changes.
2021-08-09 14:03:12 +06:00
shadmansaleh 1816bc8622 [Breaking] Refactor: Removed viml like g:lualine styled config
This was deprecated for a while .
2021-08-08 23:44:07 +06:00
shadmansaleh fac96d71cc [Breaking] Refactor: switch to %{%expr%} from %!expr
Huge change to internal mechanics.
- Now %{%expr%} blocks are used for evaluating statusline instead of
  %!expr . Pros for this is statusline is evaluated on current win and
  buf context instead of active win & bufs context.
- Now all components branch & diff(These two are cached) including users
  function components updates on inactive status.
  - now components update status and function components receive an
    argument (is_focused) when called. It indicates whether it's running
    for active or inactive statusline.
- Now lualine no longer aggrasively takes over 'statusline' option.
  instead it sets the global version of statusline option. So it's
  possible to unset it to hide lualine . Or set buffer local version
  of that option to have different statusline then lualine on thay
  buffer
- Switch vim.o to vim.go or vim.opt.
- BugFix autcommands being set everytime an instence of diff or branch
  component is created
- Added new utils functions define_autocmd & is_focused
- Remove utils function lualine_eval
- Removed hacky require cache modification from component.lua
2021-08-08 22:50:17 +06:00
shadmansaleh 0ad7145127 feat: reload lualine after bacground is set. So themes can adapt 2021-08-04 08:37:35 +06:00
shadmansaleh 6aecf4a341 feat: Expose current config with lualine.get_config() 2021-08-04 07:13:37 +06:00
shadmansaleh 62b53c854c feat: Allow extensions to spwcify inactive sections too 2021-08-03 12:08:17 +06:00
shadmansaleh 486be4462f Remove new_async():send() pattern + restructure augroup
This does not load load lualine asyncronasly rather fools the profilers
In addition causes issues like intro disapearing
2021-08-02 21:16:17 +06:00
shadmansaleh 74d23fbd0c Reload theme when setting it up so auto can pick up changes in coloracheme 2021-08-02 12:48:23 +06:00
shadmansaleh 6d153dac1f |BEAKING_CHNAGE| Fix :lualine disapearing on reload + Allow live updates
Breaking Change: Now subsequent call to lualine.setup modifies old setup
instead of configuring from scratch
2021-08-02 12:40:11 +06:00
shadmansaleh e544b47895 Load lualine after session load
closes #309
2021-07-27 13:25:10 +06:00
shadmansaleh d7f3168a55 Small tweek 2021-05-21 11:30:32 +06:00
shadmansaleh d8a2a640e0 refactor statusline() function 2021-05-21 11:25:14 +06:00
shadmansaleh f480db58fb Allow transitional separator to be set as component option 2021-05-21 11:25:13 +06:00
Hubert Pelczarski 292609e3ad
docs: vimscript removal prep (#243) 2021-05-13 23:19:11 +02:00
Hubert Pelczarski f644841206
fix: extensions not loading properly (#232)
* refactor: removed inactive sections from extensions

* fix: extensions not loading properly
2021-05-11 21:40:54 +02:00
Jonathan Gin bfae320155
feat: color filetype icons when using nvim-devicons (#222) 2021-05-11 14:55:18 +02:00
Hubert Pelczarski 73a6c8fadf
feat: dynamic shortening for filetype (#224)
* feat: dynamic shortening for filetype

* feat: redraw statusline on VimResized

Co-authored-by: NullVoxPopuli <LPSego3+dev@gmail.com>
Co-authored-by: shadmansaleh <shadmansaleh3@gmail.com>
2021-05-11 12:47:09 +02:00
Hubert Pelczarski 82826ef661
refactor: moved loading to new module (#182)
* 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
2021-05-09 23:11:18 +02:00
Shadman 141778c953
bugfix: perf improvements (#213)
* Revert "Revert "Performence improvments (#205)" (#212)"

This reverts commit d3cc343053.

* BugFix: All windows having same component state
2021-05-06 13:05:55 +02:00
Hubert Pelczarski d3cc343053
Revert "Performence improvments (#205)" (#212)
This reverts commit 141417de61.
2021-05-06 04:45:07 +02:00
Shadman 141417de61
Performence improvments (#205)
* Only load default config when needed

* Only load default cterm colors when needed

* Async load components and theme

* Rename: util_colors -> cterm_colors
2021-05-04 19:42:26 +02:00
Shadman 64ab49f55a
partially revert f08e8514 (#209)
Deepcopying default config is not reverted . And now user config is always applied on top of default_config. Functionaly it should be same as before f98e8514
2021-05-04 05:03:26 +06:00
Shadman 4c3d76d9cf
Feat: Disable lualine om specific buffer (#206)
Adding a new option in options table named `disabled_filetypes` .
It's a list of filetypes . If current filetyoe is on the list
statusline will be disabled.
2021-05-02 23:16:03 +06:00
shadmansaleh 39102109b8 Don't apply `g:lualine` config if config given to setup function 2021-05-02 10:51:42 +06:00
shadmansaleh f08e8514dd Clear old config before applying a new one
Options are reseted to defaults and other sections are cleared
2021-05-02 10:51:42 +06:00
Shadman f2f014e379
Fix: Transitional highlight not found error (#203)
Changes:
- transitional_highlight isn't created when both retrieval of fg or bg
  has failed
- Transitional highlight is not looked for when section separators are
  disabled
- empty section no longer returns highlight group as section data
2021-05-02 10:36:51 +06:00
Shadman 2f17e432ee
fix: typo functon -> function (#191) 2021-04-22 21:09:34 +02:00
Shadman 4f53d053a1
Refactor: Remove cterm from hlighlight extractor (#174)
- remove cterm color extraction
- fix lint issues
- apply lua-format
2021-04-13 18:36:51 +06:00
shadmansaleh 287e5def31 Enhance: Stop modifying global state.
v:lua.require is used insted of exposing function as global variable.
2021-04-12 21:59:55 +06:00
Shadman 1b81b0021f
Refactor: Components now use OOP style (#141) 2021-04-11 10:20:41 +02:00
Hubert Pelczarski 2b32fb090f
fix: theme type check fix (#165)
* fix: theme type check fix

* fix: string concat bug

* fix: removed semmicolon
2021-04-08 13:06:31 +02:00
John Sun 23e6bd5dd7
fix: Restore support for dictionary-typed theme setup parameter (#162)
* support passing in dictionary as theme definition

Allows setting up lualine with a theme dictionary like:
```lua
setup{
  theme = { normal = {...}; insert = { ... }; }
}
```
this was the original behaviour before 37a3b8cc.

* comment
2021-04-08 09:52:57 +02:00
Shadman 37a3b8cc82
feat: enhance theme (#153)
* Enhance Theme

- loaded theme table is nolonger stored in configs and thus not passed
  to components. Insted it's cached in highlights.lua
- Reintroducing clear_highlights turns out themes can still change if
  setup is called more than once

* Add error messege for invalid theme

It stops lualine from crashing in such incedent

* Apply lua-format

* Small tweeks
2021-04-07 02:34:36 +02:00
hoob3rt 3f1939d78f refactor: removed unused local M 2021-03-30 15:42:38 +02:00
Hubert Pelczarski 62c22d0f05
refactor: completely moved to setup function (#133) 2021-03-25 12:03:43 +01:00
JayceFayne 7bf5076ece
fix: typo in warning message 2021-03-23 19:53:53 +01:00
Shadman 7c8ddf307b
refactor: highlight improvements
* Refactor highlight restoring after ColorScheme

Previously custom highlights/ component highlights had to call
expand_set_theme to make them restored . That's unintuative . Now any
highlight created by lualine.highlight.highlight() will be restored :)

* Renamed component -> var_name | Proper BugFix
2021-03-22 15:29:37 +01:00
hoob3rt 21ea1acc61 refactor: config.lua -> defaults.lua 2021-03-18 02:13:40 +01:00
hoob3rt bfc9c744d7 refactor: moved section utils to new file 2021-03-18 01:57:59 +01:00
hoob3rt 1fea8b7fe5 refactor: moving to setup function 2021-03-17 01:02:13 +01:00
hoob3rt b31b66fa79 refactor: applied lua-format to all files 2021-03-16 00:37:46 +01:00