Tanish Azad
5cd858cbff
fix: respect UnderlineSpaces and StrikethroughSpaces ( #299 )
...
* fixed boolean logic related to spaces styling
* cleanup
* added tests
* fixed tests
2024-05-22 12:13:55 -04:00
Ayman Bagabas
83fa9be7fe
chore: use x/ansi instead of exp/term
2024-05-15 14:59:47 -04:00
Hugo Leonardo Costa e Silva
2fe044adcb
fix: Change the propkeys from int to int64
...
When I create binaries for each OS using goreleaser, the propKeys
generates an int overflow since the iota duplicates for each propKey
This commit changes the int type to works well with binaries generated
for arm and i386 archs.
2024-05-09 12:20:39 -04:00
Christian Rocha
3ee5dcab73
chore(docs): doc updates with regard to style.Copy() deprecation
2024-05-06 16:27:54 -04:00
Christian Rocha
e35d216358
chore(lint): end comments with periods
2024-05-01 15:59:30 -04:00
Christian Rocha
9f111af5aa
chore(lint): add nolint directives
2024-05-01 15:59:11 -04:00
Ayman Bagabas
2b58c4b607
Merge branch 'master' into who-needs-copy
2024-05-01 15:04:00 -04:00
Ayman Bagabas
2434fdaf07
fix: combining both conditional and unconditional wrapping ( #275 )
...
* feat: switch to term/ansi for text manipulation
Use ANSI aware, wide characters support, uniseg backed term/ansi package
to calculate string widths, truncate, and wrap strings.
Related: https://github.com/muesli/reflow/pull/71
Fixes: https://github.com/charmbracelet/lipgloss/issues/258
Fixes: https://github.com/charmbracelet/lipgloss/issues/220
* fix: combining both conditional and unconditional wrapping
Uses `ansi.SmartWrap` https://github.com/charmbracelet/x/pull/57
Fixes: https://github.com/muesli/reflow/issues/43
* chore: update deps
* Update get.go
2024-03-29 15:14:02 -04:00
Ayman Bagabas
f6f93348b0
feat: switch to term/ansi for text manipulation ( #268 )
...
* feat: switch to term/ansi for text manipulation
Use ANSI aware, wide characters support, uniseg backed term/ansi package
to calculate string widths, truncate, and wrap strings.
Related: https://github.com/muesli/reflow/pull/71
Fixes: https://github.com/charmbracelet/lipgloss/issues/258
Fixes: https://github.com/charmbracelet/lipgloss/issues/220
* Update get.go
2024-03-29 15:05:18 -04:00
Ayman Bagabas
387f2d73e8
refactor: replace props map with struct fields
...
Use an int to store property existence and style struct fields to store
the actual values for each non-bool property.
Fixes: https://github.com/charmbracelet/lipgloss/pull/139
Fixes: https://github.com/charmbracelet/lipgloss/pull/141
2024-03-28 17:47:40 -04:00
Christian Rocha
b71dd12664
fix: transform shouldn't operate on ANSI sequences
2024-03-22 16:19:39 -04:00
Maas Lalani
d760238dd2
fix(style): possible nil panic ( #245 )
2024-03-15 10:56:32 -04:00
Michael Lorant
92946d34c2
chore: refactor padding functions ( #254 )
...
The `padLeft` and `padRight` functions were nearly identical and could
benefit from being refactored to share common code.
A new function called `pad` was added that applies padding based on the
sign of the amount of padding needed. A positive value applies padding
to the right side while a negative value applies padding to the left
side.
Issue: #252
Signed-off-by: Michael Lorant <michael.lorant@nine.com.au>
2024-01-30 22:18:35 -05:00
Michael Lorant
04def9df3e
fix: the empty string can have padding on the right ( #253 )
...
An empty string could not have padding applied on the right side.
Issue: #252
Signed-off-by: Michael Lorant <michael.lorant@nine.com.au>
2024-01-30 17:38:39 -05:00
Christian Rocha
d354842a40
feat: Style.Transform for altering strings at render time ( #232 )
...
* feat: Style.Transform for altering strings at render time
* feat: add `UnsetTransform`
---------
Co-authored-by: Maas Lalani <maas@lalani.dev>
2023-11-27 14:33:38 -05:00
Ayman Bagabas
ac8231edce
fix: renderer race condition ( #210 )
...
Guard accessing the underlying Termenv output behind a mutex. Multiple goroutines can set/get the dark background color causing a race condition.
Needs: https://github.com/muesli/termenv/pull/146
2023-08-01 08:23:15 -04:00
Christian Rocha
01248034d0
chore(lint): add various nolint directives ( #206 )
...
Generally run-of-the-mill directives to disable magic number and exhaustive switches. Reasonings should be self explanatory while reading the code and comments, where applicable.
2023-07-24 11:50:04 -04:00
Christian Rocha
df8b3fa1f2
feat: convert tabs to spaces with Style.TabWidth(int)
( #204 )
...
* feat: convert tabs to spaces with Style.TabWidth(int)
By default tabs will be converted to 4 spaces. To disable tab
conversion set Style.TabWidth(NoTabConversion).
2023-07-24 11:22:48 -04:00
Ayman Bagabas
7f47f0b5e0
fix(renderer): use termenv default renderer
...
Creating a _new_ global termenv output clashes with the default global
termenv output leading the terminal to block and freeze.
Share the default termenv output with the global default lipgloss renderer.
2023-03-09 19:38:42 +01:00
Ayman Bagabas
c5382b35ef
ref(renderer): change renderer impl
2023-03-08 09:54:27 -08:00
Ayman Bagabas
60d090659b
feat(opts): use style options
2023-02-09 11:59:54 -05:00
Ayman Bagabas
29a309cde1
fix: renderer nil check
2023-02-09 11:59:54 -05:00
Ayman Bagabas
b9c2626fe7
feat(renderer): use style renderer
...
lipgloss.Style now takes a renderer instance to be used to detect styles
and colors based on its termenv.Output and terminal
2023-02-09 11:59:54 -05:00
Ayman Bagabas
31ab45f810
feat: instantiate lipgloss renderers
...
* Use lipgloss instances instead of a singleton global instance
* Deprecate (s Style).Render & (s Style).String
* Deprecate the Stringer interface
* Update README and godocs
* Update example
2023-02-09 11:59:54 -05:00
Carlos A Becker
f754c404f6
fix: reduce dependencies
...
Signed-off-by: Carlos A Becker <caarlos0@users.noreply.github.com>
2023-02-09 11:59:54 -05:00
nervo
1c1240fd65
docs: fix various typos ( #156 )
2022-11-08 10:55:11 +01:00
Will Winder
3dd9f0bfb8
docs: minor fixes to comments
2022-10-15 15:40:38 -04:00
Maas Lalani
9852bb3017
feat: VerticalAlign
...
Add VerticalAlign, UnsetVerticalAlign, etc...
2022-09-06 14:11:09 -04:00
Ismael Padilla
e8297c491f
Use ReplaceAll instead of Replace with n=-1
2022-07-14 23:03:04 +02:00
Brandon Fulljames
6b5dc18b3b
Clarify Inherit comment
2022-03-04 12:27:20 -05:00
Dusan Gligoric
74e01f672d
remove repeating code
2022-02-25 14:34:10 -05:00
Dusan Gligoric
75c95df92d
dont overwrite background when inheriting
2022-02-25 14:34:10 -05:00
Christian Rocha
514fa059f3
Fix and generally improve various doc comments
2022-02-14 11:43:23 -05:00
Dusan Gligoric
0a77f6374d
Add Value method ( #66 )
2022-02-14 15:57:02 +01:00
Christian Rocha
4f0d448967
Force-wrap strings that run wider than the width
2021-09-03 10:20:33 -04:00
Christian Rocha
2b27307e58
Short circuit rendering if no style rules are set
2021-04-12 18:34:48 -04:00
Christian Rocha
bb42143109
Remove 'Color' suffix from border FG/BG API methods
...
This makes the border API better match the rest of the API. Also, the
'Color' part is implicit.
2021-04-07 12:23:36 -04:00
Christian Rocha
874349bbec
Don't enable ANSI in cmd.exe until absolutely necessary
2021-04-06 11:39:01 -04:00
Kiyon
cb8ec749fe
Use the same receiver name
2021-04-06 08:25:18 +02:00
Kiyon
3cb36e5bd1
Cleanup: fix a typo and remove a redundant line
2021-04-06 08:24:41 +02:00
Christian Rocha
3b2c9574ca
Remove the gaps and add the periods that the linter wants
2021-04-02 10:22:28 -04:00
Christian Rocha
31b52762a4
Style.Inline() now skips over padding, margins and borders entirely
2021-03-31 09:55:21 -04:00
Christian Rocha
34d6f0c73b
Make map before inheriting
2021-03-30 22:15:28 -04:00
Christian Rocha
cb8b96556e
Margins inherit background color
2021-03-30 22:15:28 -04:00
Christian Rocha
9b77861080
Style.Inherit should return a style
2021-03-30 22:15:28 -04:00
Christian Rocha
f74e4b84cb
Correct height measurement in Style.Render()
2021-03-30 22:15:28 -04:00
Christian Rocha
619b74ed87
Apply border before applying margins
2021-03-30 13:06:15 -04:00
Christian Rocha
73f6cab6ac
Option to set whitespace color in place functions + whitespace renderer
2021-03-26 15:57:47 -04:00
Christian Rocha
25d9c64aa9
Remove an unused const
2021-03-26 14:18:50 -04:00
Christian Rocha
5b43b10fd6
Add utility for horizontally and vertically placing blocks in whitespace
2021-03-26 13:35:48 -04:00