* 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
* Fix: use escape sequence instead of binary chars
binary data will confuse some programs e.g. file and treat the code as "data" instead of "text"
* Fix: remove redundant binary character "0x1a"
* feat: allow functions in color options.
* update_evilline
* docs: document color functions
* remove unnecesery stuff
* add dynamic color supoort for themes
* chore: autogen (vimdocs+formating)
* fix dynamic colors not working as color fallback
* fix transitional separators not updating for dynamic colors dynamic colors
* fix failing tests
* apply format
* Allow cases where theme doesn't even define nornal color for some mode
* allow color function to return nil
* some enhancements
* more enhancements
* code cleanup
* if we don't have even normal in theme we should just nvim highlight it with it's ususal stl colors
* not sure how it get here . It should be in different pr
* keep only c of lualine_c in component section name
* use sh to run docgen
* fix filetype component not respecting color option properly
* fix section x,y,z not falling back to correct colors
* auto format
* actually fix xyz not falling back to correct mode
* fix comp sep not correctly removed properly on function hl
* pass only section in color fn
* more enhancements
* update docs
* update create_comp_hl call locations
* enhancements+fixes
* fix broken hls in tabline
* Fix function color options not inheriting right colors
* some enhancements
* fix tests
* tweek docs
Co-authored-by: shadmansaleh <shadmansaleh@users.noreply.github.com>
* fix: lualine crashing because of keyboard interrupt.
If keyboard interrupt occurs while lualine is evaluating statusline
lualine crashes completely. Since keyboard interrupt isn't something
we can handle try to mitigate the issue by retrying to evaluate the
statusline on error.Now lualine will retry 3 times before giving
up on an runtime error.
* Make last retry unprotected call
Some components like hostname, progress are so simple that
the component class setup is just unnecessary boilerplate.
Allowing them to be function simplifies things.
With this you can put your regular component functions in
~/.config/nvim/lua/lualine/components/ folder and treat then as
regular lualine components just like 'mode' or 'branch'.
Hopefully this will help lualine plugins grow.
- includes modified class implementation from https://github.com/rxi/classic/blob/master/classic.lua
- now base component class is created from classic.
- change to how component classes are created.
- Don't overwrite new method to initialize a component.
Overwrite the init method. new is responsible for
creating class object and calling init on it.
Unlike previous new overwrite you don't need to create
the class (table) and return it. Instead you will recive
the object as self and do required manipulation on that
just like any most other oop langs. Also don't need to
return anything from init. init's job is to initialize.
remember to call classes init before running your operations
unfortunately lua isn't full fledged oop lang and I don't
how to automate this.
- changes how super classes are accesed.
- rename Component._parent -> Component.super
- methods on super classes now ran through super class instead
of objects _parent self._parent as that can lead to recursive inf loop.
See branch, diff, tabs, buffer classes call to init for example
on pattern.
- All components updated to reflect current logic
- component loader updated to use new initialization procedure.
- updated tests
- updated BREAKING_CHANGES.md
- plus quite a bit of formatting changes in the components
- comp.method = function(self, ...) -> function M:method(...)
BREAKING_CHANGE
- Now DiagnosticError, DiagnosticWarn, DiagnosticInfo, DiagnosticHint
are also consider3d for default highlight in diagnostics component.
- Moved getHl from auto theme to utils as extract_color_from_hllist
closes#56
* Deprecate upper & lower option.
These does not make much sense and `format` option can provide same results
* Unify padding options
* Add persistent notices
* Make separators use left/right keys to specify left right instead of
sequence
* Rename format -> fmt
* Rename condition -> cond
* Rename disable_text -> icon_only
* Unify color_error,warning,info,hint under diagnostics_color
* Unify color_added,modified,removed hint under diff_color
Important: It's no longer guaranteed that if component/extension
of same name exists in multiple entries in rtp which one will be
loaded. The guarantee is still there for themes . Means other
plugins or users config can overwrite a lualines internal theme
with same file name . I'm droping the guarantee for components
and extensions because there isn't much usecase for it . It's simple
to have a unique name and droping that guarantee allows more
optimizations that speeds up lualine.
- 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.
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.
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.