Commit Graph

217 Commits

Author SHA1 Message Date
shadmansaleh bae19db8d0 enhace: Allow transitional hl to be applied at beginung and end of stl
Since for left sep at left most location we will not find and prev_hl
We will use the next hl after component similarly for right sep of right most position
we will not find a next_hl we will use previous hl before component
2021-08-29 17:59:13 +06:00
Ashish Panigrahi 09169739fa added powerline-dark theme
* added replace colorscheme

 * updated screenshots

 * added patched font screenshots
2021-08-28 23:29:51 +06:00
shadmansaleh 6c9330d240 Enhance: Truncate from section c this way a&b won't disapear when stl becomes wide 2021-08-28 01:06:19 +06:00
shadmansaleh 276ba5d19e feat: Support indexing dictionaries in var components 2021-08-28 00:32:44 +06:00
shadmansaleh 2348eaea2f enhace: Use nvim_call_function instead of vim.fn so vim.fn does not get populated 2021-08-28 00:13:50 +06:00
shadmansaleh 1c57d7e61c chore: update extensions to have empty section_c so transitional separators can work
closes #23
2021-08-27 01:02:32 +06:00
shadmansaleh cfb6e3db14 perf: remove ale diagnostics source from default config
It is too expensive to check if ale is installed or not when ale is not
instaled . It is not that expensive when is is installed. So anyone
useing ale can just add ale to sources option in their config.
2021-08-27 01:02:20 +06:00
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 c0b9757ab0 Fix tests 2021-08-26 18:20:16 +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 fa1f001207 fix: branch assumes git file will be correctly formated 2021-08-26 17:09:18 +06:00
shadmansaleh 1cbf0686b4 fix: branch incorrectly assumes .git/ without .git/HEAD to be valid
fixes high cpu uses on windows in projects with empty .git folder.
2021-08-26 17:09:18 +06:00
Daniel Enrique 8648ee6d06 Add toggleterm extension.
Add # symbol.
2021-08-26 07:00:42 +06:00
shadmansaleh c5bd65d05b chore: Add focused arg to statusline function (To make debugging easier) 2021-08-22 14:06:46 +06:00
shadmansaleh c9c5e3f9d1 feat: Add type option to hint what type of component is the string
String values for component are way too overloaded . This means lualine
has to make lots of checks to understand how to load a string value
as a component . With type option users can specify exactly what they
want.
2021-08-22 13:54:05 +06:00
Shadman be83cb947e
Merge pull request #14 from bluz71/moonfly-theme
feat: Add moonfly theme
2021-08-20 10:51:40 +06:00
shadmansaleh 15dcaababd fix: Add '-' to valid filename chars 2021-08-20 10:34:31 +06:00
Dennis B 7b7fe983f8 Add moonfly theme 2021-08-20 14:15:31 +10:00
shadmansaleh 6c99ba6ba7 Fix string component containging ['{] taking long to load 2021-08-20 09:54:18 +06:00
shadmansaleh 849d6acc66 feat: Allow (neo)vim's statusline items to be used as component directly 2021-08-20 08:15:57 +06:00
shadmansaleh 895fda9b91 fix: component highlight fall backs failing
Color/theme created with `highlight_group_name` are handled with link.
Because of that we don't have a table on bg/fg instead a name .
Currently component highlights doesn't take this into account.

After colors from those groups will be extracted to provide fall backs
for component highlight.
2021-08-20 01:40:14 +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 fcb61280f2 config: Add diff and diagnostics components to default config 2021-08-17 00:30:33 +06:00
shadmansaleh 33defeffb5 feat: Allow function as diagnostics source 2021-08-17 00:17:56 +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 d360039969 fix(filename): include window_width to space estimation & expose
shorting_target option

setting shorting target to 0 disables path shorting
closes #8

Co-authored-by: NullVoxPopuli <LPSego3+dev@gmail.com>
2021-08-14 21:24:48 +06:00
shadmansaleh ee5c56e911 enhance: Allow external sources to overwrite components and extensions
this is like the themes now . If some component/extension found in
both lualine repo and in some other rtp path then the one outside
the repo will be loaded.
+ Added better error handling for extensions.
2021-08-14 20:31:08 +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 967ddcb5ca fix: Reloading config causing extesions to disaprear 2021-08-13 07:29:28 +06:00
shadmansaleh fcb88aebba Fix: quickfix extention not apearing 2021-08-13 07:20:56 +06:00
shadmansaleh 0f3ad7e248 fix: Branch stuck in infinite loop in windows
Solution: Using poll-watch instead of event-watch on windows.
Additionally now gitdir paths are cached as optimization

Special thanks to @Shatur for raising the issue and for testing patches.
closes #2
2021-08-09 22:44:38 +06:00
shadmansaleh edb8c344f7 Fix: branch and diff disappearing with diagnostics.goto_next())
I've added a workaround to re sync those components when they
go out of sync . Until upstream issue is addressed this should
prevent this issue from occurring in lualine.
2021-08-09 15:11:50 +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 d541574028 chore: fix lint error 2021-08-08 23:50:44 +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 cb5c4c031e Refactor: async jobs and diff component
- Use neovims job api instead of uv.spawn (Probably a bit less
  performent but should be more stable)
- Fix async jobs leaking pipes
- Fix wrong diff counts .Used to occur because job might not be dead
  after closing it . And that still alive job may send data over stdout
  corrupting the cache.
- lots of variable renames in diff.
- utils/async.lua has been replaced by utils/job.lua
2021-08-08 14:47:20 +06:00
shadmansaleh 66b0736fd4 fix: left section separator not displayed when component begins with a custom highlight 2021-08-05 21:44:22 +06:00
shadmansaleh 65464f7849 fix: component highlights fg defaulting to bg 2021-08-05 21:38:09 +06:00
shadmansaleh 0ad7145127 feat: reload lualine after bacground is set. So themes can adapt 2021-08-04 08:37:35 +06:00
shadmansaleh 46a86a9cca Fix: typo 2021-08-04 08:28:53 +06:00
shadmansaleh 6aecf4a341 feat: Expose current config with lualine.get_config() 2021-08-04 07:13:37 +06:00
alexfertel 7b98680316 fix: Typos 2021-08-03 18:03:26 +06:00
shadmansaleh ea2432cc1e feat: Add source option to diff
It allows you to easily integrate external source for diff count.
If user has some other plugin keeping track of diff counts. There's
no reason for lualine to make same calculations again . It can just
reuse them. But lualine knows nothing about how other plugin exposes
their api so user will have to glue them together with this option.
2021-08-03 17:41:37 +06:00
shadmansaleh e7b8b42089 Fix: Branch not working on directory with whilespace 2021-08-03 15:28:05 +06:00
shadmansaleh ac9a9e0a8b fix: Possible fix to diff sometimws not apearing 2021-08-03 12:19:12 +06:00
shadmansaleh 62b53c854c feat: Allow extensions to spwcify inactive sections too 2021-08-03 12:08:17 +06:00