mirror of
https://github.com/norcalli/nvim-colorizer.lua.git
synced 2026-09-10 07:06:14 -04:00
Separate parsers into individual files
This commit is contained in:
parent
b0e08bea06
commit
dde3084106
|
|
@ -412,48 +412,19 @@ default_namespace *colorizer.buffer.default_namespace*
|
|||
==============================================================================
|
||||
COLOR *colorizer.color-introduction*
|
||||
|
||||
Helper functions to parse different colour formats
|
||||
Helper color functions
|
||||
|
||||
|
||||
==============================================================================
|
||||
LUA API *colorizer.color-lua-api*
|
||||
|
||||
Functions: ~
|
||||
|argb_hex_parser| - parse for 0xaarrggbb and return rgb hex.
|
||||
|
||||
|hsl_to_rgb| - Converts an HSL color value to RGB.
|
||||
|
||||
|hsl_function_parser| - Parse for hsl() hsla() css function and return rgb
|
||||
hex.
|
||||
|
||||
|hue_to_rgb| - Convert hsl colour values to rgb.
|
||||
|
||||
|is_bright| - Determine whether to use black or white text.
|
||||
|
||||
|name_parser| - Grab all the colour values from `vim.api.nvim_get_color_map`
|
||||
and create a lookup table.
|
||||
|
||||
|rgb_function_parser| - Parse for rgb() rgba() css function and return rgb
|
||||
hex.
|
||||
|
||||
|rgba_hex_parser| - parse for #rrggbbaa and return rgb hex.
|
||||
|
||||
|
||||
argb_hex_parser({line}, {i}) *colorizer.color.argb_hex_parser*
|
||||
parse for 0xaarrggbb and return rgb hex.
|
||||
|
||||
a format used in android apps
|
||||
|
||||
|
||||
Parameters: ~
|
||||
{line} - string: line to parse
|
||||
{i} - number: index of line from where to start parsing
|
||||
|
||||
returns:~
|
||||
number or nil: index of line where the hex value ended
|
||||
string or nil: rgb hex value
|
||||
|
||||
|
||||
|
||||
hsl_to_rgb({h}, {s}, {l}) *colorizer.color.hsl_to_rgb*
|
||||
Converts an HSL color value to RGB.
|
||||
|
|
@ -468,24 +439,6 @@ hsl_to_rgb({h}, {s}, {l}) *colorizer.color.hsl_to_rgb*
|
|||
|
||||
|
||||
|
||||
hsl_function_parser({line}, {i}, {opts}) *colorizer.color.hsl_function_parser*
|
||||
Parse for hsl() hsla() css function and return rgb hex.
|
||||
|
||||
For more info:
|
||||
https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/hsl
|
||||
|
||||
|
||||
Parameters: ~
|
||||
{line} - string: Line to parse
|
||||
{i} - number: Index of line from where to start parsing
|
||||
{opts} - table: Values passed from matchers like prefix
|
||||
|
||||
returns:~
|
||||
number or nil: Index of line where the hsla/hsl function ended
|
||||
string or nil: rgb hex value
|
||||
|
||||
|
||||
|
||||
hue_to_rgb({p}, {q}, {t}) *colorizer.color.hue_to_rgb*
|
||||
Convert hsl colour values to rgb.
|
||||
|
||||
|
|
@ -517,55 +470,6 @@ is_bright({r}, {g}, {b}) *colorizer.color.is_bright*
|
|||
|
||||
|
||||
|
||||
name_parser({line}, {i}, {opts}) *colorizer.color.name_parser*
|
||||
Grab all the colour values from `vim.api.nvim_get_color_map` and create a
|
||||
lookup table.
|
||||
|
||||
COLOR_MAP is used to store the colour values
|
||||
|
||||
|
||||
Parameters: ~
|
||||
{line} - string: Line to parse
|
||||
{i} - number: Index of line from where to start parsing
|
||||
{opts} - table: Currently contains whether tailwind is enabled or not
|
||||
|
||||
|
||||
|
||||
rgb_function_parser({line}, {i}, {opts}) *colorizer.color.rgb_function_parser*
|
||||
Parse for rgb() rgba() css function and return rgb hex.
|
||||
|
||||
For more info:
|
||||
https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/rgb
|
||||
|
||||
|
||||
Parameters: ~
|
||||
{line} - string: Line to parse
|
||||
{i} - number: Index of line from where to start parsing
|
||||
{opts} - table: Values passed from matchers like prefix
|
||||
|
||||
returns:~
|
||||
number or nil: Index of line where the rgb/rgba function ended
|
||||
string or nil: rgb hex value
|
||||
|
||||
|
||||
|
||||
rgba_hex_parser({line}, {i}, {opts}) *colorizer.color.rgba_hex_parser*
|
||||
parse for #rrggbbaa and return rgb hex.
|
||||
|
||||
a format used in android apps
|
||||
|
||||
|
||||
Parameters: ~
|
||||
{line} - string: line to parse
|
||||
{i} - number: index of line from where to start parsing
|
||||
{opts} - table: Containing minlen, maxlen, valid_lengths
|
||||
|
||||
returns:~
|
||||
number or nil: index of line where the hex value ended
|
||||
string or nil: rgb hex value
|
||||
|
||||
|
||||
|
||||
==============================================================================
|
||||
MATCHER *colorizer.matcher-introduction*
|
||||
|
||||
|
|
@ -610,6 +514,167 @@ make({options}) *colorizer.matcher.make*
|
|||
|
||||
|
||||
|
||||
==============================================================================
|
||||
ARGB_HEX *colorizer.parser.argb_hex-introduction*
|
||||
|
||||
Helper function to parse argb
|
||||
|
||||
|
||||
==============================================================================
|
||||
LUA API *colorizer.parser.argb_hex-lua-api*
|
||||
|
||||
Functions: ~
|
||||
|parser.argb_hex_parser| - parse for 0xaarrggbb and return rgb hex.
|
||||
|
||||
|
||||
|
||||
*colorizer.parser.argb_hex.parser.argb_hex_parser*
|
||||
parser.argb_hex_parser({line}, {i})
|
||||
parse for 0xaarrggbb and return rgb hex.
|
||||
|
||||
a format used in android apps
|
||||
|
||||
|
||||
Parameters: ~
|
||||
{line} - string: line to parse
|
||||
{i} - number: index of line from where to start parsing
|
||||
|
||||
returns:~
|
||||
number or nil: index of line where the hex value ended
|
||||
string or nil: rgb hex value
|
||||
|
||||
|
||||
|
||||
==============================================================================
|
||||
HSL *colorizer.parser.hsl-introduction*
|
||||
|
||||
Helper function to parse argb
|
||||
|
||||
|
||||
==============================================================================
|
||||
LUA API *colorizer.parser.hsl-lua-api*
|
||||
|
||||
Functions: ~
|
||||
|parser.hsl_function_parser| - Parse for hsl() hsla() css function and
|
||||
return rgb hex.
|
||||
|
||||
|
||||
|
||||
*colorizer.parser.hsl.parser.hsl_function_parser*
|
||||
parser.hsl_function_parser({line}, {i}, {opts})
|
||||
Parse for hsl() hsla() css function and return rgb hex.
|
||||
|
||||
For more info:
|
||||
https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/hsl
|
||||
|
||||
|
||||
Parameters: ~
|
||||
{line} - string: Line to parse
|
||||
{i} - number: Index of line from where to start parsing
|
||||
{opts} - table: Values passed from matchers like prefix
|
||||
|
||||
returns:~
|
||||
number or nil: Index of line where the hsla/hsl function ended
|
||||
string or nil: rgb hex value
|
||||
|
||||
|
||||
|
||||
==============================================================================
|
||||
NAMES *colorizer.parser.names-introduction*
|
||||
|
||||
Helper function to parse argb
|
||||
|
||||
|
||||
==============================================================================
|
||||
LUA API *colorizer.parser.names-lua-api*
|
||||
|
||||
Functions: ~
|
||||
|parser.name_parser| - Grab all the colour values from
|
||||
`vim.api.nvim_get_color_map` and create a lookup table.
|
||||
|
||||
|
||||
|
||||
*colorizer.parser.names.parser.name_parser*
|
||||
parser.name_parser({line}, {i}, {opts})
|
||||
Grab all the colour values from `vim.api.nvim_get_color_map` and create a
|
||||
lookup table.
|
||||
|
||||
COLOR_MAP is used to store the colour values
|
||||
|
||||
|
||||
Parameters: ~
|
||||
{line} - string: Line to parse
|
||||
{i} - number: Index of line from where to start parsing
|
||||
{opts} - table: Currently contains whether tailwind is enabled or not
|
||||
|
||||
|
||||
|
||||
==============================================================================
|
||||
RGBA_HEX *colorizer.parser.rgba_hex-introduction*
|
||||
|
||||
Helper function to parse argb
|
||||
|
||||
|
||||
==============================================================================
|
||||
LUA API *colorizer.parser.rgba_hex-lua-api*
|
||||
|
||||
Functions: ~
|
||||
|parser.rgba_hex_parser| - parse for #rrggbbaa and return rgb hex.
|
||||
|
||||
|
||||
|
||||
*colorizer.parser.rgba_hex.parser.rgba_hex_parser*
|
||||
parser.rgba_hex_parser({line}, {i}, {opts})
|
||||
parse for #rrggbbaa and return rgb hex.
|
||||
|
||||
a format used in android apps
|
||||
|
||||
|
||||
Parameters: ~
|
||||
{line} - string: line to parse
|
||||
{i} - number: index of line from where to start parsing
|
||||
{opts} - table: Containing minlen, maxlen, valid_lengths
|
||||
|
||||
returns:~
|
||||
number or nil: index of line where the hex value ended
|
||||
string or nil: rgb hex value
|
||||
|
||||
|
||||
|
||||
==============================================================================
|
||||
RGB *colorizer.parser.rgb-introduction*
|
||||
|
||||
Helper function to parse argb
|
||||
|
||||
|
||||
==============================================================================
|
||||
LUA API *colorizer.parser.rgb-lua-api*
|
||||
|
||||
Functions: ~
|
||||
|parser.rgb_function_parser| - Parse for rgb() rgba() css function and
|
||||
return rgb hex.
|
||||
|
||||
|
||||
|
||||
*colorizer.parser.rgb.parser.rgb_function_parser*
|
||||
parser.rgb_function_parser({line}, {i}, {opts})
|
||||
Parse for rgb() rgba() css function and return rgb hex.
|
||||
|
||||
For more info:
|
||||
https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/rgb
|
||||
|
||||
|
||||
Parameters: ~
|
||||
{line} - string: Line to parse
|
||||
{i} - number: Index of line from where to start parsing
|
||||
{opts} - table: Values passed from matchers like prefix
|
||||
|
||||
returns:~
|
||||
number or nil: Index of line where the rgb/rgba function ended
|
||||
string or nil: rgb hex value
|
||||
|
||||
|
||||
|
||||
==============================================================================
|
||||
SASS *colorizer.sass-introduction*
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,11 @@
|
|||
<li><a href="modules/colorizer.buffer.html">buffer</a></li>
|
||||
<li><a href="modules/colorizer.color.html">color</a></li>
|
||||
<li><a href="modules/colorizer.matcher.html">matcher</a></li>
|
||||
<li><a href="modules/colorizer.parser.argb_hex.html">parser.argb_hex</a></li>
|
||||
<li><a href="modules/colorizer.parser.hsl.html">parser.hsl</a></li>
|
||||
<li><a href="modules/colorizer.parser.names.html">parser.names</a></li>
|
||||
<li><a href="modules/colorizer.parser.rgb.html">parser.rgb</a></li>
|
||||
<li><a href="modules/colorizer.parser.rgba_hex.html">parser.rgba_hex</a></li>
|
||||
<li><a href="modules/colorizer.sass.html">sass</a></li>
|
||||
<li><a href="modules/colorizer.tailwind.html">tailwind</a></li>
|
||||
<li><a href="modules/colorizer.trie.html">trie</a></li>
|
||||
|
|
@ -59,12 +64,32 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="modules/colorizer.color.html">colorizer.color</a></td>
|
||||
<td class="summary">Helper functions to parse different colour formats</td>
|
||||
<td class="summary">Helper color functions</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="modules/colorizer.matcher.html">colorizer.matcher</a></td>
|
||||
<td class="summary">Helper functions for colorizer to enable required parsers</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="modules/colorizer.parser.argb_hex.html">colorizer.parser.argb_hex</a></td>
|
||||
<td class="summary">Helper function to parse argb</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="modules/colorizer.parser.hsl.html">colorizer.parser.hsl</a></td>
|
||||
<td class="summary">Helper function to parse argb</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="modules/colorizer.parser.names.html">colorizer.parser.names</a></td>
|
||||
<td class="summary">Helper function to parse argb</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="modules/colorizer.parser.rgb.html">colorizer.parser.rgb</a></td>
|
||||
<td class="summary">Helper function to parse argb</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="modules/colorizer.parser.rgba_hex.html">colorizer.parser.rgba_hex</a></td>
|
||||
<td class="summary">Helper function to parse argb</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="modules/colorizer.sass.html">colorizer.sass</a></td>
|
||||
<td class="summary">Helper functions to parse sass color variables</td>
|
||||
|
|
|
|||
|
|
@ -44,6 +44,11 @@
|
|||
<li><strong>buffer</strong></li>
|
||||
<li><a href="../modules/colorizer.color.html">color</a></li>
|
||||
<li><a href="../modules/colorizer.matcher.html">matcher</a></li>
|
||||
<li><a href="../modules/colorizer.parser.argb_hex.html">parser.argb_hex</a></li>
|
||||
<li><a href="../modules/colorizer.parser.hsl.html">parser.hsl</a></li>
|
||||
<li><a href="../modules/colorizer.parser.names.html">parser.names</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgb.html">parser.rgb</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgba_hex.html">parser.rgba_hex</a></li>
|
||||
<li><a href="../modules/colorizer.sass.html">sass</a></li>
|
||||
<li><a href="../modules/colorizer.tailwind.html">tailwind</a></li>
|
||||
<li><a href="../modules/colorizer.trie.html">trie</a></li>
|
||||
|
|
|
|||
|
|
@ -42,6 +42,11 @@
|
|||
<li><a href="../modules/colorizer.buffer.html">buffer</a></li>
|
||||
<li><strong>color</strong></li>
|
||||
<li><a href="../modules/colorizer.matcher.html">matcher</a></li>
|
||||
<li><a href="../modules/colorizer.parser.argb_hex.html">parser.argb_hex</a></li>
|
||||
<li><a href="../modules/colorizer.parser.hsl.html">parser.hsl</a></li>
|
||||
<li><a href="../modules/colorizer.parser.names.html">parser.names</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgb.html">parser.rgb</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgba_hex.html">parser.rgba_hex</a></li>
|
||||
<li><a href="../modules/colorizer.sass.html">sass</a></li>
|
||||
<li><a href="../modules/colorizer.tailwind.html">tailwind</a></li>
|
||||
<li><a href="../modules/colorizer.trie.html">trie</a></li>
|
||||
|
|
@ -53,7 +58,7 @@
|
|||
<div id="content">
|
||||
|
||||
<h1>Module <code>colorizer.color</code></h1>
|
||||
<p>Helper functions to parse different colour formats</p>
|
||||
<p>Helper color functions</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
|
|
@ -61,19 +66,11 @@
|
|||
|
||||
<h2><a href="#Functions">Functions</a></h2>
|
||||
<table class="function_list">
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#argb_hex_parser">argb_hex_parser (line, i)</a></td>
|
||||
<td class="summary">parse for 0xaarrggbb and return rgb hex.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#hsl_to_rgb">hsl_to_rgb (h, s, l)</a></td>
|
||||
<td class="summary">Converts an HSL color value to RGB.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#hsl_function_parser">hsl_function_parser (line, i, opts)</a></td>
|
||||
<td class="summary">Parse for hsl() hsla() css function and return rgb hex.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#hue_to_rgb">hue_to_rgb (p, q, t)</a></td>
|
||||
<td class="summary">Convert hsl colour values to rgb.</td>
|
||||
</tr>
|
||||
|
|
@ -81,18 +78,6 @@
|
|||
<td class="name" nowrap><a href="#is_bright">is_bright (r, g, b)</a></td>
|
||||
<td class="summary">Determine whether to use black or white text.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#name_parser">name_parser (line, i, opts)</a></td>
|
||||
<td class="summary">Grab all the colour values from <code>vim.api.nvim_get_color_map</code> and create a lookup table.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#rgb_function_parser">rgb_function_parser (line, i, opts)</a></td>
|
||||
<td class="summary">Parse for rgb() rgba() css function and return rgb hex.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#rgba_hex_parser">rgba_hex_parser (line, i, opts)</a></td>
|
||||
<td class="summary">parse for #rrggbbaa and return rgb hex.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
|
|
@ -102,37 +87,6 @@
|
|||
<h2 class="section-header "><a name="Functions"></a>Functions</h2>
|
||||
|
||||
<dl class="function">
|
||||
<dt>
|
||||
<a name = "argb_hex_parser"></a>
|
||||
<strong>argb_hex_parser (line, i)</strong>
|
||||
</dt>
|
||||
<dd>
|
||||
parse for 0xaarrggbb and return rgb hex.
|
||||
a format used in android apps
|
||||
|
||||
|
||||
<h3>Parameters:</h3>
|
||||
<ul>
|
||||
<li><span class="parameter">line</span>
|
||||
string: line to parse
|
||||
</li>
|
||||
<li><span class="parameter">i</span>
|
||||
number: index of line from where to start parsing
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3>Returns:</h3>
|
||||
<ol>
|
||||
<li>
|
||||
number|nil: index of line where the hex value ended</li>
|
||||
<li>
|
||||
string|nil: rgb hex value</li>
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
<dt>
|
||||
<a name = "hsl_to_rgb"></a>
|
||||
<strong>hsl_to_rgb (h, s, l)</strong>
|
||||
|
|
@ -163,40 +117,6 @@
|
|||
|
||||
|
||||
|
||||
</dd>
|
||||
<dt>
|
||||
<a name = "hsl_function_parser"></a>
|
||||
<strong>hsl_function_parser (line, i, opts)</strong>
|
||||
</dt>
|
||||
<dd>
|
||||
Parse for hsl() hsla() css function and return rgb hex.
|
||||
For more info: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/hsl
|
||||
|
||||
|
||||
<h3>Parameters:</h3>
|
||||
<ul>
|
||||
<li><span class="parameter">line</span>
|
||||
string: Line to parse
|
||||
</li>
|
||||
<li><span class="parameter">i</span>
|
||||
number: Index of line from where to start parsing
|
||||
</li>
|
||||
<li><span class="parameter">opts</span>
|
||||
table: Values passed from matchers like prefix
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3>Returns:</h3>
|
||||
<ol>
|
||||
<li>
|
||||
number|nil: Index of line where the hsla/hsl function ended</li>
|
||||
<li>
|
||||
string|nil: rgb hex value</li>
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
<dt>
|
||||
<a name = "hue_to_rgb"></a>
|
||||
|
|
@ -258,101 +178,6 @@
|
|||
|
||||
|
||||
|
||||
</dd>
|
||||
<dt>
|
||||
<a name = "name_parser"></a>
|
||||
<strong>name_parser (line, i, opts)</strong>
|
||||
</dt>
|
||||
<dd>
|
||||
Grab all the colour values from <code>vim.api.nvim_get_color_map</code> and create a lookup table.
|
||||
COLOR_MAP is used to store the colour values
|
||||
|
||||
|
||||
<h3>Parameters:</h3>
|
||||
<ul>
|
||||
<li><span class="parameter">line</span>
|
||||
string: Line to parse
|
||||
</li>
|
||||
<li><span class="parameter">i</span>
|
||||
number: Index of line from where to start parsing
|
||||
</li>
|
||||
<li><span class="parameter">opts</span>
|
||||
table: Currently contains whether tailwind is enabled or not
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
<dt>
|
||||
<a name = "rgb_function_parser"></a>
|
||||
<strong>rgb_function_parser (line, i, opts)</strong>
|
||||
</dt>
|
||||
<dd>
|
||||
Parse for rgb() rgba() css function and return rgb hex.
|
||||
For more info: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/rgb
|
||||
|
||||
|
||||
<h3>Parameters:</h3>
|
||||
<ul>
|
||||
<li><span class="parameter">line</span>
|
||||
string: Line to parse
|
||||
</li>
|
||||
<li><span class="parameter">i</span>
|
||||
number: Index of line from where to start parsing
|
||||
</li>
|
||||
<li><span class="parameter">opts</span>
|
||||
table: Values passed from matchers like prefix
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3>Returns:</h3>
|
||||
<ol>
|
||||
<li>
|
||||
number|nil: Index of line where the rgb/rgba function ended</li>
|
||||
<li>
|
||||
string|nil: rgb hex value</li>
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
<dt>
|
||||
<a name = "rgba_hex_parser"></a>
|
||||
<strong>rgba_hex_parser (line, i, opts)</strong>
|
||||
</dt>
|
||||
<dd>
|
||||
parse for #rrggbbaa and return rgb hex.
|
||||
a format used in android apps
|
||||
|
||||
|
||||
<h3>Parameters:</h3>
|
||||
<ul>
|
||||
<li><span class="parameter">line</span>
|
||||
string: line to parse
|
||||
</li>
|
||||
<li><span class="parameter">i</span>
|
||||
number: index of line from where to start parsing
|
||||
</li>
|
||||
<li><span class="parameter">opts</span>
|
||||
table: Containing minlen, maxlen, valid_lengths
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3>Returns:</h3>
|
||||
<ol>
|
||||
<li>
|
||||
number|nil: index of line where the hex value ended</li>
|
||||
<li>
|
||||
string|nil: rgb hex value</li>
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
|
|
|||
|
|
@ -44,6 +44,11 @@
|
|||
<li><a href="../modules/colorizer.buffer.html">buffer</a></li>
|
||||
<li><a href="../modules/colorizer.color.html">color</a></li>
|
||||
<li><a href="../modules/colorizer.matcher.html">matcher</a></li>
|
||||
<li><a href="../modules/colorizer.parser.argb_hex.html">parser.argb_hex</a></li>
|
||||
<li><a href="../modules/colorizer.parser.hsl.html">parser.hsl</a></li>
|
||||
<li><a href="../modules/colorizer.parser.names.html">parser.names</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgb.html">parser.rgb</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgba_hex.html">parser.rgba_hex</a></li>
|
||||
<li><a href="../modules/colorizer.sass.html">sass</a></li>
|
||||
<li><a href="../modules/colorizer.tailwind.html">tailwind</a></li>
|
||||
<li><a href="../modules/colorizer.trie.html">trie</a></li>
|
||||
|
|
|
|||
|
|
@ -42,6 +42,11 @@
|
|||
<li><a href="../modules/colorizer.buffer.html">buffer</a></li>
|
||||
<li><a href="../modules/colorizer.color.html">color</a></li>
|
||||
<li><strong>matcher</strong></li>
|
||||
<li><a href="../modules/colorizer.parser.argb_hex.html">parser.argb_hex</a></li>
|
||||
<li><a href="../modules/colorizer.parser.hsl.html">parser.hsl</a></li>
|
||||
<li><a href="../modules/colorizer.parser.names.html">parser.names</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgb.html">parser.rgb</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgba_hex.html">parser.rgba_hex</a></li>
|
||||
<li><a href="../modules/colorizer.sass.html">sass</a></li>
|
||||
<li><a href="../modules/colorizer.tailwind.html">tailwind</a></li>
|
||||
<li><a href="../modules/colorizer.trie.html">trie</a></li>
|
||||
|
|
|
|||
124
doc/modules/colorizer.parser.argb_hex.html
Normal file
124
doc/modules/colorizer.parser.argb_hex.html
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<head>
|
||||
<title>colorizer Docs</title>
|
||||
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="container">
|
||||
|
||||
<div id="product">
|
||||
<div id="product_logo"></div>
|
||||
<div id="product_name"><big><b></b></big></div>
|
||||
<div id="product_description"></div>
|
||||
</div> <!-- id="product" -->
|
||||
|
||||
|
||||
<div id="main">
|
||||
|
||||
|
||||
<!-- Menu -->
|
||||
|
||||
<div id="navigation">
|
||||
<br/>
|
||||
<h1>colorizer</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>Contents</h2>
|
||||
<ul>
|
||||
<li><a href="#Functions">Functions</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Modules</h2>
|
||||
<ul class="nowrap">
|
||||
<li><a href="../modules/colorizer.html">colorizer</a></li>
|
||||
<li><a href="../modules/colorizer.buffer.html">buffer</a></li>
|
||||
<li><a href="../modules/colorizer.color.html">color</a></li>
|
||||
<li><a href="../modules/colorizer.matcher.html">matcher</a></li>
|
||||
<li><strong>parser.argb_hex</strong></li>
|
||||
<li><a href="../modules/colorizer.parser.hsl.html">parser.hsl</a></li>
|
||||
<li><a href="../modules/colorizer.parser.names.html">parser.names</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgb.html">parser.rgb</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgba_hex.html">parser.rgba_hex</a></li>
|
||||
<li><a href="../modules/colorizer.sass.html">sass</a></li>
|
||||
<li><a href="../modules/colorizer.tailwind.html">tailwind</a></li>
|
||||
<li><a href="../modules/colorizer.trie.html">trie</a></li>
|
||||
<li><a href="../modules/colorizer.utils.html">utils</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<h1>Module <code>colorizer.parser.argb_hex</code></h1>
|
||||
<p>Helper function to parse argb</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
|
||||
|
||||
<h2><a href="#Functions">Functions</a></h2>
|
||||
<table class="function_list">
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#parser.argb_hex_parser">parser.argb_hex_parser (line, i)</a></td>
|
||||
<td class="summary">parse for 0xaarrggbb and return rgb hex.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<h2 class="section-header "><a name="Functions"></a>Functions</h2>
|
||||
|
||||
<dl class="function">
|
||||
<dt>
|
||||
<a name = "parser.argb_hex_parser"></a>
|
||||
<strong>parser.argb_hex_parser (line, i)</strong>
|
||||
</dt>
|
||||
<dd>
|
||||
parse for 0xaarrggbb and return rgb hex.
|
||||
a format used in android apps
|
||||
|
||||
|
||||
<h3>Parameters:</h3>
|
||||
<ul>
|
||||
<li><span class="parameter">line</span>
|
||||
string: line to parse
|
||||
</li>
|
||||
<li><span class="parameter">i</span>
|
||||
number: index of line from where to start parsing
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3>Returns:</h3>
|
||||
<ol>
|
||||
<li>
|
||||
number|nil: index of line where the hex value ended</li>
|
||||
<li>
|
||||
string|nil: rgb hex value</li>
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
</div> <!-- id="content" -->
|
||||
</div> <!-- id="main" -->
|
||||
<div id="about">
|
||||
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
|
||||
<i style="float:right;">Last updated - February </i>
|
||||
</div> <!-- id="about" -->
|
||||
</div> <!-- id="container" -->
|
||||
</body>
|
||||
</html>
|
||||
127
doc/modules/colorizer.parser.hsl.html
Normal file
127
doc/modules/colorizer.parser.hsl.html
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<head>
|
||||
<title>colorizer Docs</title>
|
||||
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="container">
|
||||
|
||||
<div id="product">
|
||||
<div id="product_logo"></div>
|
||||
<div id="product_name"><big><b></b></big></div>
|
||||
<div id="product_description"></div>
|
||||
</div> <!-- id="product" -->
|
||||
|
||||
|
||||
<div id="main">
|
||||
|
||||
|
||||
<!-- Menu -->
|
||||
|
||||
<div id="navigation">
|
||||
<br/>
|
||||
<h1>colorizer</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>Contents</h2>
|
||||
<ul>
|
||||
<li><a href="#Functions">Functions</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Modules</h2>
|
||||
<ul class="nowrap">
|
||||
<li><a href="../modules/colorizer.html">colorizer</a></li>
|
||||
<li><a href="../modules/colorizer.buffer.html">buffer</a></li>
|
||||
<li><a href="../modules/colorizer.color.html">color</a></li>
|
||||
<li><a href="../modules/colorizer.matcher.html">matcher</a></li>
|
||||
<li><a href="../modules/colorizer.parser.argb_hex.html">parser.argb_hex</a></li>
|
||||
<li><strong>parser.hsl</strong></li>
|
||||
<li><a href="../modules/colorizer.parser.names.html">parser.names</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgb.html">parser.rgb</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgba_hex.html">parser.rgba_hex</a></li>
|
||||
<li><a href="../modules/colorizer.sass.html">sass</a></li>
|
||||
<li><a href="../modules/colorizer.tailwind.html">tailwind</a></li>
|
||||
<li><a href="../modules/colorizer.trie.html">trie</a></li>
|
||||
<li><a href="../modules/colorizer.utils.html">utils</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<h1>Module <code>colorizer.parser.hsl</code></h1>
|
||||
<p>Helper function to parse argb</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
|
||||
|
||||
<h2><a href="#Functions">Functions</a></h2>
|
||||
<table class="function_list">
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#parser.hsl_function_parser">parser.hsl_function_parser (line, i, opts)</a></td>
|
||||
<td class="summary">Parse for hsl() hsla() css function and return rgb hex.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<h2 class="section-header "><a name="Functions"></a>Functions</h2>
|
||||
|
||||
<dl class="function">
|
||||
<dt>
|
||||
<a name = "parser.hsl_function_parser"></a>
|
||||
<strong>parser.hsl_function_parser (line, i, opts)</strong>
|
||||
</dt>
|
||||
<dd>
|
||||
Parse for hsl() hsla() css function and return rgb hex.
|
||||
For more info: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/hsl
|
||||
|
||||
|
||||
<h3>Parameters:</h3>
|
||||
<ul>
|
||||
<li><span class="parameter">line</span>
|
||||
string: Line to parse
|
||||
</li>
|
||||
<li><span class="parameter">i</span>
|
||||
number: Index of line from where to start parsing
|
||||
</li>
|
||||
<li><span class="parameter">opts</span>
|
||||
table: Values passed from matchers like prefix
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3>Returns:</h3>
|
||||
<ol>
|
||||
<li>
|
||||
number|nil: Index of line where the hsla/hsl function ended</li>
|
||||
<li>
|
||||
string|nil: rgb hex value</li>
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
</div> <!-- id="content" -->
|
||||
</div> <!-- id="main" -->
|
||||
<div id="about">
|
||||
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
|
||||
<i style="float:right;">Last updated - February </i>
|
||||
</div> <!-- id="about" -->
|
||||
</div> <!-- id="container" -->
|
||||
</body>
|
||||
</html>
|
||||
120
doc/modules/colorizer.parser.names.html
Normal file
120
doc/modules/colorizer.parser.names.html
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<head>
|
||||
<title>colorizer Docs</title>
|
||||
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="container">
|
||||
|
||||
<div id="product">
|
||||
<div id="product_logo"></div>
|
||||
<div id="product_name"><big><b></b></big></div>
|
||||
<div id="product_description"></div>
|
||||
</div> <!-- id="product" -->
|
||||
|
||||
|
||||
<div id="main">
|
||||
|
||||
|
||||
<!-- Menu -->
|
||||
|
||||
<div id="navigation">
|
||||
<br/>
|
||||
<h1>colorizer</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>Contents</h2>
|
||||
<ul>
|
||||
<li><a href="#Functions">Functions</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Modules</h2>
|
||||
<ul class="nowrap">
|
||||
<li><a href="../modules/colorizer.html">colorizer</a></li>
|
||||
<li><a href="../modules/colorizer.buffer.html">buffer</a></li>
|
||||
<li><a href="../modules/colorizer.color.html">color</a></li>
|
||||
<li><a href="../modules/colorizer.matcher.html">matcher</a></li>
|
||||
<li><a href="../modules/colorizer.parser.argb_hex.html">parser.argb_hex</a></li>
|
||||
<li><a href="../modules/colorizer.parser.hsl.html">parser.hsl</a></li>
|
||||
<li><strong>parser.names</strong></li>
|
||||
<li><a href="../modules/colorizer.parser.rgb.html">parser.rgb</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgba_hex.html">parser.rgba_hex</a></li>
|
||||
<li><a href="../modules/colorizer.sass.html">sass</a></li>
|
||||
<li><a href="../modules/colorizer.tailwind.html">tailwind</a></li>
|
||||
<li><a href="../modules/colorizer.trie.html">trie</a></li>
|
||||
<li><a href="../modules/colorizer.utils.html">utils</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<h1>Module <code>colorizer.parser.names</code></h1>
|
||||
<p>Helper function to parse argb</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
|
||||
|
||||
<h2><a href="#Functions">Functions</a></h2>
|
||||
<table class="function_list">
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#parser.name_parser">parser.name_parser (line, i, opts)</a></td>
|
||||
<td class="summary">Grab all the colour values from <code>vim.api.nvim_get_color_map</code> and create a lookup table.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<h2 class="section-header "><a name="Functions"></a>Functions</h2>
|
||||
|
||||
<dl class="function">
|
||||
<dt>
|
||||
<a name = "parser.name_parser"></a>
|
||||
<strong>parser.name_parser (line, i, opts)</strong>
|
||||
</dt>
|
||||
<dd>
|
||||
Grab all the colour values from <code>vim.api.nvim_get_color_map</code> and create a lookup table.
|
||||
COLOR_MAP is used to store the colour values
|
||||
|
||||
|
||||
<h3>Parameters:</h3>
|
||||
<ul>
|
||||
<li><span class="parameter">line</span>
|
||||
string: Line to parse
|
||||
</li>
|
||||
<li><span class="parameter">i</span>
|
||||
number: Index of line from where to start parsing
|
||||
</li>
|
||||
<li><span class="parameter">opts</span>
|
||||
table: Currently contains whether tailwind is enabled or not
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
</div> <!-- id="content" -->
|
||||
</div> <!-- id="main" -->
|
||||
<div id="about">
|
||||
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
|
||||
<i style="float:right;">Last updated - February </i>
|
||||
</div> <!-- id="about" -->
|
||||
</div> <!-- id="container" -->
|
||||
</body>
|
||||
</html>
|
||||
127
doc/modules/colorizer.parser.rgb.html
Normal file
127
doc/modules/colorizer.parser.rgb.html
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<head>
|
||||
<title>colorizer Docs</title>
|
||||
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="container">
|
||||
|
||||
<div id="product">
|
||||
<div id="product_logo"></div>
|
||||
<div id="product_name"><big><b></b></big></div>
|
||||
<div id="product_description"></div>
|
||||
</div> <!-- id="product" -->
|
||||
|
||||
|
||||
<div id="main">
|
||||
|
||||
|
||||
<!-- Menu -->
|
||||
|
||||
<div id="navigation">
|
||||
<br/>
|
||||
<h1>colorizer</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>Contents</h2>
|
||||
<ul>
|
||||
<li><a href="#Functions">Functions</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Modules</h2>
|
||||
<ul class="nowrap">
|
||||
<li><a href="../modules/colorizer.html">colorizer</a></li>
|
||||
<li><a href="../modules/colorizer.buffer.html">buffer</a></li>
|
||||
<li><a href="../modules/colorizer.color.html">color</a></li>
|
||||
<li><a href="../modules/colorizer.matcher.html">matcher</a></li>
|
||||
<li><a href="../modules/colorizer.parser.argb_hex.html">parser.argb_hex</a></li>
|
||||
<li><a href="../modules/colorizer.parser.hsl.html">parser.hsl</a></li>
|
||||
<li><a href="../modules/colorizer.parser.names.html">parser.names</a></li>
|
||||
<li><strong>parser.rgb</strong></li>
|
||||
<li><a href="../modules/colorizer.parser.rgba_hex.html">parser.rgba_hex</a></li>
|
||||
<li><a href="../modules/colorizer.sass.html">sass</a></li>
|
||||
<li><a href="../modules/colorizer.tailwind.html">tailwind</a></li>
|
||||
<li><a href="../modules/colorizer.trie.html">trie</a></li>
|
||||
<li><a href="../modules/colorizer.utils.html">utils</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<h1>Module <code>colorizer.parser.rgb</code></h1>
|
||||
<p>Helper function to parse argb</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
|
||||
|
||||
<h2><a href="#Functions">Functions</a></h2>
|
||||
<table class="function_list">
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#parser.rgb_function_parser">parser.rgb_function_parser (line, i, opts)</a></td>
|
||||
<td class="summary">Parse for rgb() rgba() css function and return rgb hex.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<h2 class="section-header "><a name="Functions"></a>Functions</h2>
|
||||
|
||||
<dl class="function">
|
||||
<dt>
|
||||
<a name = "parser.rgb_function_parser"></a>
|
||||
<strong>parser.rgb_function_parser (line, i, opts)</strong>
|
||||
</dt>
|
||||
<dd>
|
||||
Parse for rgb() rgba() css function and return rgb hex.
|
||||
For more info: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/rgb
|
||||
|
||||
|
||||
<h3>Parameters:</h3>
|
||||
<ul>
|
||||
<li><span class="parameter">line</span>
|
||||
string: Line to parse
|
||||
</li>
|
||||
<li><span class="parameter">i</span>
|
||||
number: Index of line from where to start parsing
|
||||
</li>
|
||||
<li><span class="parameter">opts</span>
|
||||
table: Values passed from matchers like prefix
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3>Returns:</h3>
|
||||
<ol>
|
||||
<li>
|
||||
number|nil: Index of line where the rgb/rgba function ended</li>
|
||||
<li>
|
||||
string|nil: rgb hex value</li>
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
</div> <!-- id="content" -->
|
||||
</div> <!-- id="main" -->
|
||||
<div id="about">
|
||||
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
|
||||
<i style="float:right;">Last updated - February </i>
|
||||
</div> <!-- id="about" -->
|
||||
</div> <!-- id="container" -->
|
||||
</body>
|
||||
</html>
|
||||
127
doc/modules/colorizer.parser.rgba_hex.html
Normal file
127
doc/modules/colorizer.parser.rgba_hex.html
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<head>
|
||||
<title>colorizer Docs</title>
|
||||
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="container">
|
||||
|
||||
<div id="product">
|
||||
<div id="product_logo"></div>
|
||||
<div id="product_name"><big><b></b></big></div>
|
||||
<div id="product_description"></div>
|
||||
</div> <!-- id="product" -->
|
||||
|
||||
|
||||
<div id="main">
|
||||
|
||||
|
||||
<!-- Menu -->
|
||||
|
||||
<div id="navigation">
|
||||
<br/>
|
||||
<h1>colorizer</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>Contents</h2>
|
||||
<ul>
|
||||
<li><a href="#Functions">Functions</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Modules</h2>
|
||||
<ul class="nowrap">
|
||||
<li><a href="../modules/colorizer.html">colorizer</a></li>
|
||||
<li><a href="../modules/colorizer.buffer.html">buffer</a></li>
|
||||
<li><a href="../modules/colorizer.color.html">color</a></li>
|
||||
<li><a href="../modules/colorizer.matcher.html">matcher</a></li>
|
||||
<li><a href="../modules/colorizer.parser.argb_hex.html">parser.argb_hex</a></li>
|
||||
<li><a href="../modules/colorizer.parser.hsl.html">parser.hsl</a></li>
|
||||
<li><a href="../modules/colorizer.parser.names.html">parser.names</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgb.html">parser.rgb</a></li>
|
||||
<li><strong>parser.rgba_hex</strong></li>
|
||||
<li><a href="../modules/colorizer.sass.html">sass</a></li>
|
||||
<li><a href="../modules/colorizer.tailwind.html">tailwind</a></li>
|
||||
<li><a href="../modules/colorizer.trie.html">trie</a></li>
|
||||
<li><a href="../modules/colorizer.utils.html">utils</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<h1>Module <code>colorizer.parser.rgba_hex</code></h1>
|
||||
<p>Helper function to parse argb</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
|
||||
|
||||
<h2><a href="#Functions">Functions</a></h2>
|
||||
<table class="function_list">
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#parser.rgba_hex_parser">parser.rgba_hex_parser (line, i, opts)</a></td>
|
||||
<td class="summary">parse for #rrggbbaa and return rgb hex.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<h2 class="section-header "><a name="Functions"></a>Functions</h2>
|
||||
|
||||
<dl class="function">
|
||||
<dt>
|
||||
<a name = "parser.rgba_hex_parser"></a>
|
||||
<strong>parser.rgba_hex_parser (line, i, opts)</strong>
|
||||
</dt>
|
||||
<dd>
|
||||
parse for #rrggbbaa and return rgb hex.
|
||||
a format used in android apps
|
||||
|
||||
|
||||
<h3>Parameters:</h3>
|
||||
<ul>
|
||||
<li><span class="parameter">line</span>
|
||||
string: line to parse
|
||||
</li>
|
||||
<li><span class="parameter">i</span>
|
||||
number: index of line from where to start parsing
|
||||
</li>
|
||||
<li><span class="parameter">opts</span>
|
||||
table: Containing minlen, maxlen, valid_lengths
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3>Returns:</h3>
|
||||
<ol>
|
||||
<li>
|
||||
number|nil: index of line where the hex value ended</li>
|
||||
<li>
|
||||
string|nil: rgb hex value</li>
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
</div> <!-- id="content" -->
|
||||
</div> <!-- id="main" -->
|
||||
<div id="about">
|
||||
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
|
||||
<i style="float:right;">Last updated - February </i>
|
||||
</div> <!-- id="about" -->
|
||||
</div> <!-- id="container" -->
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -42,6 +42,11 @@
|
|||
<li><a href="../modules/colorizer.buffer.html">buffer</a></li>
|
||||
<li><a href="../modules/colorizer.color.html">color</a></li>
|
||||
<li><a href="../modules/colorizer.matcher.html">matcher</a></li>
|
||||
<li><a href="../modules/colorizer.parser.argb_hex.html">parser.argb_hex</a></li>
|
||||
<li><a href="../modules/colorizer.parser.hsl.html">parser.hsl</a></li>
|
||||
<li><a href="../modules/colorizer.parser.names.html">parser.names</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgb.html">parser.rgb</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgba_hex.html">parser.rgba_hex</a></li>
|
||||
<li><strong>sass</strong></li>
|
||||
<li><a href="../modules/colorizer.tailwind.html">tailwind</a></li>
|
||||
<li><a href="../modules/colorizer.trie.html">trie</a></li>
|
||||
|
|
|
|||
|
|
@ -42,6 +42,11 @@
|
|||
<li><a href="../modules/colorizer.buffer.html">buffer</a></li>
|
||||
<li><a href="../modules/colorizer.color.html">color</a></li>
|
||||
<li><a href="../modules/colorizer.matcher.html">matcher</a></li>
|
||||
<li><a href="../modules/colorizer.parser.argb_hex.html">parser.argb_hex</a></li>
|
||||
<li><a href="../modules/colorizer.parser.hsl.html">parser.hsl</a></li>
|
||||
<li><a href="../modules/colorizer.parser.names.html">parser.names</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgb.html">parser.rgb</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgba_hex.html">parser.rgba_hex</a></li>
|
||||
<li><a href="../modules/colorizer.sass.html">sass</a></li>
|
||||
<li><strong>tailwind</strong></li>
|
||||
<li><a href="../modules/colorizer.trie.html">trie</a></li>
|
||||
|
|
|
|||
|
|
@ -38,6 +38,11 @@
|
|||
<li><a href="../modules/colorizer.buffer.html">buffer</a></li>
|
||||
<li><a href="../modules/colorizer.color.html">color</a></li>
|
||||
<li><a href="../modules/colorizer.matcher.html">matcher</a></li>
|
||||
<li><a href="../modules/colorizer.parser.argb_hex.html">parser.argb_hex</a></li>
|
||||
<li><a href="../modules/colorizer.parser.hsl.html">parser.hsl</a></li>
|
||||
<li><a href="../modules/colorizer.parser.names.html">parser.names</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgb.html">parser.rgb</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgba_hex.html">parser.rgba_hex</a></li>
|
||||
<li><a href="../modules/colorizer.sass.html">sass</a></li>
|
||||
<li><a href="../modules/colorizer.tailwind.html">tailwind</a></li>
|
||||
<li><strong>trie</strong></li>
|
||||
|
|
|
|||
|
|
@ -42,6 +42,11 @@
|
|||
<li><a href="../modules/colorizer.buffer.html">buffer</a></li>
|
||||
<li><a href="../modules/colorizer.color.html">color</a></li>
|
||||
<li><a href="../modules/colorizer.matcher.html">matcher</a></li>
|
||||
<li><a href="../modules/colorizer.parser.argb_hex.html">parser.argb_hex</a></li>
|
||||
<li><a href="../modules/colorizer.parser.hsl.html">parser.hsl</a></li>
|
||||
<li><a href="../modules/colorizer.parser.names.html">parser.names</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgb.html">parser.rgb</a></li>
|
||||
<li><a href="../modules/colorizer.parser.rgba_hex.html">parser.rgba_hex</a></li>
|
||||
<li><a href="../modules/colorizer.sass.html">sass</a></li>
|
||||
<li><a href="../modules/colorizer.tailwind.html">tailwind</a></li>
|
||||
<li><a href="../modules/colorizer.trie.html">trie</a></li>
|
||||
|
|
|
|||
|
|
@ -1,66 +1,7 @@
|
|||
---Helper functions to parse different colour formats
|
||||
---Helper color functions
|
||||
--@module colorizer.color
|
||||
local api = vim.api
|
||||
|
||||
local bit = require "bit"
|
||||
local floor, min, max = math.floor, math.min, math.max
|
||||
local band, rshift, lshift, tohex = bit.band, bit.rshift, bit.lshift, bit.tohex
|
||||
|
||||
local Trie = require "colorizer.trie"
|
||||
|
||||
local utils = require "colorizer.utils"
|
||||
local byte_is_alphanumeric = utils.byte_is_alphanumeric
|
||||
local byte_is_hex = utils.byte_is_hex
|
||||
local byte_is_valid_colorchar = utils.byte_is_valid_colorchar
|
||||
local count = utils.count
|
||||
local parse_hex = utils.parse_hex
|
||||
|
||||
local color = {}
|
||||
|
||||
local ARGB_MINIMUM_LENGTH = #"0xAARRGGBB" - 1
|
||||
---parse for 0xaarrggbb and return rgb hex.
|
||||
-- a format used in android apps
|
||||
---@param line string: line to parse
|
||||
---@param i number: index of line from where to start parsing
|
||||
---@return number|nil: index of line where the hex value ended
|
||||
---@return string|nil: rgb hex value
|
||||
function color.argb_hex_parser(line, i)
|
||||
if #line < i + ARGB_MINIMUM_LENGTH then
|
||||
return
|
||||
end
|
||||
|
||||
local j = i + 2
|
||||
|
||||
local n = j + 8
|
||||
local alpha
|
||||
local v = 0
|
||||
while j <= min(n, #line) do
|
||||
local b = line:byte(j)
|
||||
if not byte_is_hex(b) then
|
||||
break
|
||||
end
|
||||
if j - i <= 3 then
|
||||
alpha = parse_hex(b) + lshift(alpha or 0, 4)
|
||||
else
|
||||
v = parse_hex(b) + lshift(v, 4)
|
||||
end
|
||||
j = j + 1
|
||||
end
|
||||
if #line >= j and byte_is_alphanumeric(line:byte(j)) then
|
||||
return
|
||||
end
|
||||
local length = j - i
|
||||
if length ~= 10 then
|
||||
return
|
||||
end
|
||||
alpha = tonumber(alpha) / 255
|
||||
local r = floor(band(rshift(v, 16), 0xFF) * alpha)
|
||||
local g = floor(band(rshift(v, 8), 0xFF) * alpha)
|
||||
local b = floor(band(v, 0xFF) * alpha)
|
||||
local rgb_hex = string.format("%02x%02x%02x", r, g, b)
|
||||
return length, rgb_hex
|
||||
end
|
||||
|
||||
--- Converts an HSL color value to RGB.
|
||||
---@param h number: Hue
|
||||
---@param s number: Saturation
|
||||
|
|
@ -86,107 +27,6 @@ function color.hsl_to_rgb(h, s, l)
|
|||
255 * color.hue_to_rgb(p, q, h - 1 / 3)
|
||||
end
|
||||
|
||||
local CSS_HSLA_FN_MINIMUM_LENGTH = #"hsla(0,0%,0%)" - 1
|
||||
local CSS_HSL_FN_MINIMUM_LENGTH = #"hsl(0,0%,0%)" - 1
|
||||
---Parse for hsl() hsla() css function and return rgb hex.
|
||||
-- For more info: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/hsl
|
||||
---@param line string: Line to parse
|
||||
---@param i number: Index of line from where to start parsing
|
||||
---@param opts table: Values passed from matchers like prefix
|
||||
---@return number|nil: Index of line where the hsla/hsl function ended
|
||||
---@return string|nil: rgb hex value
|
||||
function color.hsl_function_parser(line, i, opts)
|
||||
local min_len = CSS_HSLA_FN_MINIMUM_LENGTH
|
||||
local min_commas, min_spaces = 2, 2
|
||||
local pattern = "^"
|
||||
.. opts.prefix
|
||||
.. "%(%s*([.%d]+)([deg]*)([turn]*)(%s?)%s*(,?)%s*(%d+)%%(%s?)%s*(,?)%s*(%d+)%%%s*(/?,?)%s*([.%d]*)([%%]?)%s*%)()"
|
||||
|
||||
if opts.prefix == "hsl" then
|
||||
min_len = CSS_HSL_FN_MINIMUM_LENGTH
|
||||
end
|
||||
|
||||
if #line < i + min_len then
|
||||
return
|
||||
end
|
||||
|
||||
local h, deg, turn, ssep1, csep1, s, ssep2, csep2, l, sep3, a, percent_sign, match_end = line:sub(i):match(pattern)
|
||||
if not match_end then
|
||||
return
|
||||
end
|
||||
if a == "" then
|
||||
a = nil
|
||||
else
|
||||
min_commas = min_commas + 1
|
||||
end
|
||||
|
||||
-- the text after hue should be either deg or empty
|
||||
if not ((deg == "") or (deg == "deg") or (turn == "turn")) then
|
||||
return
|
||||
end
|
||||
|
||||
local c_seps = ("%s%s%s"):format(csep1, csep2, sep3)
|
||||
local s_seps = ("%s%s"):format(ssep1, ssep2)
|
||||
-- comma separator syntax
|
||||
if c_seps:match "," then
|
||||
if not (count(c_seps, ",") == min_commas) then
|
||||
return
|
||||
end
|
||||
-- space separator syntax with decimal or percentage alpha
|
||||
elseif count(s_seps, "%s") >= min_spaces then
|
||||
if a then
|
||||
if not (c_seps == "/") then
|
||||
return
|
||||
end
|
||||
end
|
||||
else
|
||||
return
|
||||
end
|
||||
|
||||
if not a then
|
||||
a = 1
|
||||
else
|
||||
a = tonumber(a)
|
||||
-- if percentage, then convert to decimal
|
||||
if percent_sign == "%" then
|
||||
a = a / 100
|
||||
end
|
||||
-- although alpha doesn't support larger values than 1, css anyways renders it at 1
|
||||
if a > 1 then
|
||||
a = 1
|
||||
end
|
||||
end
|
||||
|
||||
h = tonumber(h) or 1
|
||||
-- single turn is 360
|
||||
if turn == "turn" then
|
||||
h = 360 * h
|
||||
end
|
||||
|
||||
-- if hue angle if greater than 360, then calculate the hue within 360
|
||||
if h > 360 then
|
||||
local turns = h / 360
|
||||
h = 360 * (turns - floor(turns))
|
||||
end
|
||||
|
||||
-- if saturation or luminance percentage is greater than 100 then reset it to 100
|
||||
s = tonumber(s)
|
||||
if s > 100 then
|
||||
s = 100
|
||||
end
|
||||
l = tonumber(l)
|
||||
if l > 100 then
|
||||
l = 100
|
||||
end
|
||||
|
||||
local r, g, b = color.hsl_to_rgb(h / 360, s / 100, l / 100)
|
||||
if r == nil or g == nil or b == nil then
|
||||
return
|
||||
end
|
||||
local rgb_hex = string.format("%02x%02x%02x", r * a, g * a, b * a)
|
||||
return match_end - 1, rgb_hex
|
||||
end
|
||||
|
||||
---Convert hsl colour values to rgb.
|
||||
-- Source: https://gist.github.com/mjackson/5311256
|
||||
---@param p number
|
||||
|
|
@ -229,236 +69,4 @@ function color.is_bright(r, g, b)
|
|||
end
|
||||
end
|
||||
|
||||
local COLOR_MAP
|
||||
local COLOR_TRIE
|
||||
local COLOR_NAME_MINLEN, COLOR_NAME_MAXLEN
|
||||
local COLOR_NAME_SETTINGS = { lowercase = true, strip_digits = false }
|
||||
local TAILWIND_ENABLED = false
|
||||
--- Grab all the colour values from `vim.api.nvim_get_color_map` and create a lookup table.
|
||||
-- COLOR_MAP is used to store the colour values
|
||||
---@param line string: Line to parse
|
||||
---@param i number: Index of line from where to start parsing
|
||||
---@param opts table: Currently contains whether tailwind is enabled or not
|
||||
function color.name_parser(line, i, opts)
|
||||
--- Setup the COLOR_MAP and COLOR_TRIE
|
||||
if not COLOR_TRIE or opts.tailwind ~= TAILWIND_ENABLED then
|
||||
COLOR_MAP = {}
|
||||
COLOR_TRIE = Trie()
|
||||
for k, v in pairs(api.nvim_get_color_map()) do
|
||||
if not (COLOR_NAME_SETTINGS.strip_digits and k:match "%d+$") then
|
||||
COLOR_NAME_MINLEN = COLOR_NAME_MINLEN and min(#k, COLOR_NAME_MINLEN) or #k
|
||||
COLOR_NAME_MAXLEN = COLOR_NAME_MAXLEN and max(#k, COLOR_NAME_MAXLEN) or #k
|
||||
local rgb_hex = tohex(v, 6)
|
||||
COLOR_MAP[k] = rgb_hex
|
||||
COLOR_TRIE:insert(k)
|
||||
if COLOR_NAME_SETTINGS.lowercase then
|
||||
local lowercase = k:lower()
|
||||
COLOR_MAP[lowercase] = rgb_hex
|
||||
COLOR_TRIE:insert(lowercase)
|
||||
end
|
||||
end
|
||||
end
|
||||
if opts and opts.tailwind then
|
||||
if opts.tailwind == true or opts.tailwind == "normal" or opts.tailwind == "both" then
|
||||
local tailwind = require "colorizer.tailwind_colors"
|
||||
-- setup tailwind colors
|
||||
for k, v in pairs(tailwind.colors) do
|
||||
for _, pre in ipairs(tailwind.prefixes) do
|
||||
local name = pre .. "-" .. k
|
||||
COLOR_NAME_MINLEN = COLOR_NAME_MINLEN and min(#name, COLOR_NAME_MINLEN) or #name
|
||||
COLOR_NAME_MAXLEN = COLOR_NAME_MAXLEN and max(#name, COLOR_NAME_MAXLEN) or #name
|
||||
COLOR_MAP[name] = v
|
||||
COLOR_TRIE:insert(name)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
TAILWIND_ENABLED = opts.tailwind
|
||||
end
|
||||
|
||||
if #line < i + COLOR_NAME_MINLEN - 1 then
|
||||
return
|
||||
end
|
||||
|
||||
if i > 1 and byte_is_valid_colorchar(line:byte(i - 1)) then
|
||||
return
|
||||
end
|
||||
|
||||
local prefix = COLOR_TRIE:longest_prefix(line, i)
|
||||
if prefix then
|
||||
-- Check if there is a letter here so as to disallow matching here.
|
||||
-- Take the Blue out of Blueberry
|
||||
-- Line end or non-letter.
|
||||
local next_byte_index = i + #prefix
|
||||
if #line >= next_byte_index and byte_is_valid_colorchar(line:byte(next_byte_index)) then
|
||||
return
|
||||
end
|
||||
return #prefix, COLOR_MAP[prefix]
|
||||
end
|
||||
end
|
||||
|
||||
local CSS_RGBA_FN_MINIMUM_LENGTH = #"rgba(0,0,0)" - 1
|
||||
local CSS_RGB_FN_MINIMUM_LENGTH = #"rgb(0,0,0)" - 1
|
||||
---Parse for rgb() rgba() css function and return rgb hex.
|
||||
-- For more info: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/rgb
|
||||
---@param line string: Line to parse
|
||||
---@param i number: Index of line from where to start parsing
|
||||
---@param opts table: Values passed from matchers like prefix
|
||||
---@return number|nil: Index of line where the rgb/rgba function ended
|
||||
---@return string|nil: rgb hex value
|
||||
function color.rgb_function_parser(line, i, opts)
|
||||
local min_len = CSS_RGBA_FN_MINIMUM_LENGTH
|
||||
local min_commas, min_spaces, min_percent = 2, 2, 3
|
||||
local pattern = "^"
|
||||
.. opts.prefix
|
||||
.. "%(%s*([.%d]+)([%%]?)(%s?)%s*(,?)%s*([.%d]+)([%%]?)(%s?)%s*(,?)%s*([.%d]+)([%%]?)%s*(/?,?)%s*([.%d]*)([%%]?)%s*%)()"
|
||||
|
||||
if opts.prefix == "rgb" then
|
||||
min_len = CSS_RGB_FN_MINIMUM_LENGTH
|
||||
end
|
||||
|
||||
if #line < i + min_len then
|
||||
return
|
||||
end
|
||||
|
||||
local r, unit1, ssep1, csep1, g, unit2, ssep2, csep2, b, unit3, sep3, a, unit_a, match_end =
|
||||
line:sub(i):match(pattern)
|
||||
if not match_end then
|
||||
return
|
||||
end
|
||||
|
||||
if a == "" then
|
||||
a = nil
|
||||
else
|
||||
min_commas = min_commas + 1
|
||||
end
|
||||
|
||||
local units = ("%s%s%s"):format(unit1, unit2, unit3)
|
||||
if units:match "%%" then
|
||||
if not ((count(units, "%%")) == min_percent) then
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
local c_seps = ("%s%s%s"):format(csep1, csep2, sep3)
|
||||
local s_seps = ("%s%s"):format(ssep1, ssep2)
|
||||
-- comma separator syntax
|
||||
if c_seps:match "," then
|
||||
if not (count(c_seps, ",") == min_commas) then
|
||||
return
|
||||
end
|
||||
-- space separator syntax with decimal or percentage alpha
|
||||
elseif count(s_seps, "%s") >= min_spaces then
|
||||
if a then
|
||||
if not (c_seps == "/") then
|
||||
return
|
||||
end
|
||||
end
|
||||
else
|
||||
return
|
||||
end
|
||||
|
||||
if not a then
|
||||
a = 1
|
||||
else
|
||||
a = tonumber(a)
|
||||
-- if percentage, then convert to decimal
|
||||
if unit_a == "%" then
|
||||
a = a / 100
|
||||
end
|
||||
-- although alpha doesn't support larger values than 1, css anyways renders it at 1
|
||||
if a > 1 then
|
||||
a = 1
|
||||
end
|
||||
end
|
||||
|
||||
r = tonumber(r)
|
||||
if not r then
|
||||
return
|
||||
end
|
||||
g = tonumber(g)
|
||||
if not g then
|
||||
return
|
||||
end
|
||||
b = tonumber(b)
|
||||
if not b then
|
||||
return
|
||||
end
|
||||
|
||||
if unit1 == "%" then
|
||||
r = r / 100 * 255
|
||||
g = g / 100 * 255
|
||||
b = b / 100 * 255
|
||||
else
|
||||
-- although r,g,b doesn't support larger values than 255, css anyways renders it at 255
|
||||
if r > 255 then
|
||||
r = 255
|
||||
end
|
||||
if g > 255 then
|
||||
g = 255
|
||||
end
|
||||
if b > 255 then
|
||||
b = 255
|
||||
end
|
||||
end
|
||||
|
||||
local rgb_hex = string.format("%02x%02x%02x", r * a, g * a, b * a)
|
||||
return match_end - 1, rgb_hex
|
||||
end
|
||||
|
||||
---parse for #rrggbbaa and return rgb hex.
|
||||
-- a format used in android apps
|
||||
---@param line string: line to parse
|
||||
---@param i number: index of line from where to start parsing
|
||||
---@param opts table: Containing minlen, maxlen, valid_lengths
|
||||
---@return number|nil: index of line where the hex value ended
|
||||
---@return string|nil: rgb hex value
|
||||
function color.rgba_hex_parser(line, i, opts)
|
||||
local minlen, maxlen, valid_lengths = opts.minlen, opts.maxlen, opts.valid_lengths
|
||||
local j = i + 1
|
||||
if #line < j + minlen - 1 then
|
||||
return
|
||||
end
|
||||
|
||||
if i > 1 and byte_is_alphanumeric(line:byte(i - 1)) then
|
||||
return
|
||||
end
|
||||
|
||||
local n = j + maxlen
|
||||
local alpha
|
||||
local v = 0
|
||||
|
||||
while j <= min(n, #line) do
|
||||
local b = line:byte(j)
|
||||
if not byte_is_hex(b) then
|
||||
break
|
||||
end
|
||||
if j - i >= 7 then
|
||||
alpha = parse_hex(b) + lshift(alpha or 0, 4)
|
||||
else
|
||||
v = parse_hex(b) + lshift(v, 4)
|
||||
end
|
||||
j = j + 1
|
||||
end
|
||||
|
||||
if #line >= j and byte_is_alphanumeric(line:byte(j)) then
|
||||
return
|
||||
end
|
||||
|
||||
local length = j - i
|
||||
if length ~= 4 and length ~= 7 and length ~= 9 then
|
||||
return
|
||||
end
|
||||
|
||||
if alpha then
|
||||
alpha = tonumber(alpha) / 255
|
||||
local r = floor(band(rshift(v, 16), 0xFF) * alpha)
|
||||
local g = floor(band(rshift(v, 8), 0xFF) * alpha)
|
||||
local b = floor(band(v, 0xFF) * alpha)
|
||||
local rgb_hex = string.format("%02x%02x%02x", r, g, b)
|
||||
return 9, rgb_hex
|
||||
end
|
||||
return (valid_lengths[length - 1] and length), line:sub(i + 1, i + length - 1)
|
||||
end
|
||||
|
||||
return color
|
||||
|
|
|
|||
|
|
@ -3,21 +3,24 @@
|
|||
local Trie = require "colorizer.trie"
|
||||
local min, max = math.min, math.max
|
||||
|
||||
local color = require "colorizer.color"
|
||||
local color_name_parser = color.name_parser
|
||||
local rgba_hex_parser = color.rgba_hex_parser
|
||||
local color_name_parser = require "colorizer.parser.names"
|
||||
|
||||
local sass = require "colorizer.sass"
|
||||
local sass_name_parser = sass.name_parser
|
||||
local rgb_function_parser = require "colorizer.parser.rgb"
|
||||
local hsl_function_parser = require "colorizer.parser.hsl"
|
||||
|
||||
local argb_hex_parser = require "colorizer.parser.argb_hex"
|
||||
local rgba_hex_parser = require "colorizer.parser.rgba_hex"
|
||||
|
||||
local sass_name_parser = require("colorizer.sass").name_parser
|
||||
|
||||
local B_HASH, DOLLAR_HASH = ("#"):byte(), ("$"):byte()
|
||||
|
||||
local parser = {
|
||||
["_0x"] = color.argb_hex_parser,
|
||||
["_rgb"] = color.rgb_function_parser,
|
||||
["_rgba"] = color.rgb_function_parser,
|
||||
["_hsl"] = color.hsl_function_parser,
|
||||
["_hsla"] = color.hsl_function_parser,
|
||||
["_0x"] = argb_hex_parser,
|
||||
["_rgb"] = rgb_function_parser,
|
||||
["_rgba"] = rgb_function_parser,
|
||||
["_hsl"] = hsl_function_parser,
|
||||
["_hsla"] = hsl_function_parser,
|
||||
}
|
||||
|
||||
local matcher = {}
|
||||
|
|
|
|||
58
lua/colorizer/parser/argb_hex.lua
Normal file
58
lua/colorizer/parser/argb_hex.lua
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
---Helper function to parse argb
|
||||
|
||||
local bit = require "bit"
|
||||
local floor, min = math.floor, math.min
|
||||
local band, rshift, lshift = bit.band, bit.rshift, bit.lshift
|
||||
|
||||
local utils = require "colorizer.utils"
|
||||
local byte_is_alphanumeric = utils.byte_is_alphanumeric
|
||||
local byte_is_hex = utils.byte_is_hex
|
||||
local parse_hex = utils.parse_hex
|
||||
|
||||
local parser = {}
|
||||
|
||||
local ARGB_MINIMUM_LENGTH = #"0xAARRGGBB" - 1
|
||||
---parse for 0xaarrggbb and return rgb hex.
|
||||
-- a format used in android apps
|
||||
---@param line string: line to parse
|
||||
---@param i number: index of line from where to start parsing
|
||||
---@return number|nil: index of line where the hex value ended
|
||||
---@return string|nil: rgb hex value
|
||||
function parser.argb_hex_parser(line, i)
|
||||
if #line < i + ARGB_MINIMUM_LENGTH then
|
||||
return
|
||||
end
|
||||
|
||||
local j = i + 2
|
||||
|
||||
local n = j + 8
|
||||
local alpha
|
||||
local v = 0
|
||||
while j <= min(n, #line) do
|
||||
local b = line:byte(j)
|
||||
if not byte_is_hex(b) then
|
||||
break
|
||||
end
|
||||
if j - i <= 3 then
|
||||
alpha = parse_hex(b) + lshift(alpha or 0, 4)
|
||||
else
|
||||
v = parse_hex(b) + lshift(v, 4)
|
||||
end
|
||||
j = j + 1
|
||||
end
|
||||
if #line >= j and byte_is_alphanumeric(line:byte(j)) then
|
||||
return
|
||||
end
|
||||
local length = j - i
|
||||
if length ~= 10 then
|
||||
return
|
||||
end
|
||||
alpha = tonumber(alpha) / 255
|
||||
local r = floor(band(rshift(v, 16), 0xFF) * alpha)
|
||||
local g = floor(band(rshift(v, 8), 0xFF) * alpha)
|
||||
local b = floor(band(v, 0xFF) * alpha)
|
||||
local rgb_hex = string.format("%02x%02x%02x", r, g, b)
|
||||
return length, rgb_hex
|
||||
end
|
||||
|
||||
return parser.argb_hex_parser
|
||||
110
lua/colorizer/parser/hsl.lua
Normal file
110
lua/colorizer/parser/hsl.lua
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
---Helper function to parse argb
|
||||
local count = require("colorizer.utils").count
|
||||
local floor = math.floor
|
||||
|
||||
local hsl_to_rgb = require("colorizer.color").hsl_to_rgb
|
||||
|
||||
local parser = {}
|
||||
|
||||
local CSS_HSLA_FN_MINIMUM_LENGTH = #"hsla(0,0%,0%)" - 1
|
||||
local CSS_HSL_FN_MINIMUM_LENGTH = #"hsl(0,0%,0%)" - 1
|
||||
---Parse for hsl() hsla() css function and return rgb hex.
|
||||
-- For more info: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/hsl
|
||||
---@param line string: Line to parse
|
||||
---@param i number: Index of line from where to start parsing
|
||||
---@param opts table: Values passed from matchers like prefix
|
||||
---@return number|nil: Index of line where the hsla/hsl function ended
|
||||
---@return string|nil: rgb hex value
|
||||
function parser.hsl_function_parser(line, i, opts)
|
||||
local min_len = CSS_HSLA_FN_MINIMUM_LENGTH
|
||||
local min_commas, min_spaces = 2, 2
|
||||
local pattern = "^"
|
||||
.. opts.prefix
|
||||
.. "%(%s*([.%d]+)([deg]*)([turn]*)(%s?)%s*(,?)%s*(%d+)%%(%s?)%s*(,?)%s*(%d+)%%%s*(/?,?)%s*([.%d]*)([%%]?)%s*%)()"
|
||||
|
||||
if opts.prefix == "hsl" then
|
||||
min_len = CSS_HSL_FN_MINIMUM_LENGTH
|
||||
end
|
||||
|
||||
if #line < i + min_len then
|
||||
return
|
||||
end
|
||||
|
||||
local h, deg, turn, ssep1, csep1, s, ssep2, csep2, l, sep3, a, percent_sign, match_end = line:sub(i):match(pattern)
|
||||
if not match_end then
|
||||
return
|
||||
end
|
||||
if a == "" then
|
||||
a = nil
|
||||
else
|
||||
min_commas = min_commas + 1
|
||||
end
|
||||
|
||||
-- the text after hue should be either deg or empty
|
||||
if not ((deg == "") or (deg == "deg") or (turn == "turn")) then
|
||||
return
|
||||
end
|
||||
|
||||
local c_seps = ("%s%s%s"):format(csep1, csep2, sep3)
|
||||
local s_seps = ("%s%s"):format(ssep1, ssep2)
|
||||
-- comma separator syntax
|
||||
if c_seps:match "," then
|
||||
if not (count(c_seps, ",") == min_commas) then
|
||||
return
|
||||
end
|
||||
-- space separator syntax with decimal or percentage alpha
|
||||
elseif count(s_seps, "%s") >= min_spaces then
|
||||
if a then
|
||||
if not (c_seps == "/") then
|
||||
return
|
||||
end
|
||||
end
|
||||
else
|
||||
return
|
||||
end
|
||||
|
||||
if not a then
|
||||
a = 1
|
||||
else
|
||||
a = tonumber(a)
|
||||
-- if percentage, then convert to decimal
|
||||
if percent_sign == "%" then
|
||||
a = a / 100
|
||||
end
|
||||
-- although alpha doesn't support larger values than 1, css anyways renders it at 1
|
||||
if a > 1 then
|
||||
a = 1
|
||||
end
|
||||
end
|
||||
|
||||
h = tonumber(h) or 1
|
||||
-- single turn is 360
|
||||
if turn == "turn" then
|
||||
h = 360 * h
|
||||
end
|
||||
|
||||
-- if hue angle if greater than 360, then calculate the hue within 360
|
||||
if h > 360 then
|
||||
local turns = h / 360
|
||||
h = 360 * (turns - floor(turns))
|
||||
end
|
||||
|
||||
-- if saturation or luminance percentage is greater than 100 then reset it to 100
|
||||
s = tonumber(s)
|
||||
if s > 100 then
|
||||
s = 100
|
||||
end
|
||||
l = tonumber(l)
|
||||
if l > 100 then
|
||||
l = 100
|
||||
end
|
||||
|
||||
local r, g, b = hsl_to_rgb(h / 360, s / 100, l / 100)
|
||||
if r == nil or g == nil or b == nil then
|
||||
return
|
||||
end
|
||||
local rgb_hex = string.format("%02x%02x%02x", r * a, g * a, b * a)
|
||||
return match_end - 1, rgb_hex
|
||||
end
|
||||
|
||||
return parser.hsl_function_parser
|
||||
84
lua/colorizer/parser/names.lua
Normal file
84
lua/colorizer/parser/names.lua
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
---Helper function to parse argb
|
||||
local api = vim.api
|
||||
|
||||
local bit = require "bit"
|
||||
local tohex = bit.tohex
|
||||
|
||||
local min, max = math.min, math.max
|
||||
|
||||
local Trie = require "colorizer.trie"
|
||||
|
||||
local utils = require "colorizer.utils"
|
||||
local byte_is_valid_colorchar = utils.byte_is_valid_colorchar
|
||||
|
||||
local parser = {}
|
||||
|
||||
local COLOR_MAP
|
||||
local COLOR_TRIE
|
||||
local COLOR_NAME_MINLEN, COLOR_NAME_MAXLEN
|
||||
local COLOR_NAME_SETTINGS = { lowercase = true, strip_digits = false }
|
||||
local TAILWIND_ENABLED = false
|
||||
--- Grab all the colour values from `vim.api.nvim_get_color_map` and create a lookup table.
|
||||
-- COLOR_MAP is used to store the colour values
|
||||
---@param line string: Line to parse
|
||||
---@param i number: Index of line from where to start parsing
|
||||
---@param opts table: Currently contains whether tailwind is enabled or not
|
||||
function parser.name_parser(line, i, opts)
|
||||
--- Setup the COLOR_MAP and COLOR_TRIE
|
||||
if not COLOR_TRIE or opts.tailwind ~= TAILWIND_ENABLED then
|
||||
COLOR_MAP = {}
|
||||
COLOR_TRIE = Trie()
|
||||
for k, v in pairs(api.nvim_get_color_map()) do
|
||||
if not (COLOR_NAME_SETTINGS.strip_digits and k:match "%d+$") then
|
||||
COLOR_NAME_MINLEN = COLOR_NAME_MINLEN and min(#k, COLOR_NAME_MINLEN) or #k
|
||||
COLOR_NAME_MAXLEN = COLOR_NAME_MAXLEN and max(#k, COLOR_NAME_MAXLEN) or #k
|
||||
local rgb_hex = tohex(v, 6)
|
||||
COLOR_MAP[k] = rgb_hex
|
||||
COLOR_TRIE:insert(k)
|
||||
if COLOR_NAME_SETTINGS.lowercase then
|
||||
local lowercase = k:lower()
|
||||
COLOR_MAP[lowercase] = rgb_hex
|
||||
COLOR_TRIE:insert(lowercase)
|
||||
end
|
||||
end
|
||||
end
|
||||
if opts and opts.tailwind then
|
||||
if opts.tailwind == true or opts.tailwind == "normal" or opts.tailwind == "both" then
|
||||
local tailwind = require "colorizer.tailwind_colors"
|
||||
-- setup tailwind colors
|
||||
for k, v in pairs(tailwind.colors) do
|
||||
for _, pre in ipairs(tailwind.prefixes) do
|
||||
local name = pre .. "-" .. k
|
||||
COLOR_NAME_MINLEN = COLOR_NAME_MINLEN and min(#name, COLOR_NAME_MINLEN) or #name
|
||||
COLOR_NAME_MAXLEN = COLOR_NAME_MAXLEN and max(#name, COLOR_NAME_MAXLEN) or #name
|
||||
COLOR_MAP[name] = v
|
||||
COLOR_TRIE:insert(name)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
TAILWIND_ENABLED = opts.tailwind
|
||||
end
|
||||
|
||||
if #line < i + COLOR_NAME_MINLEN - 1 then
|
||||
return
|
||||
end
|
||||
|
||||
if i > 1 and byte_is_valid_colorchar(line:byte(i - 1)) then
|
||||
return
|
||||
end
|
||||
|
||||
local prefix = COLOR_TRIE:longest_prefix(line, i)
|
||||
if prefix then
|
||||
-- Check if there is a letter here so as to disallow matching here.
|
||||
-- Take the Blue out of Blueberry
|
||||
-- Line end or non-letter.
|
||||
local next_byte_index = i + #prefix
|
||||
if #line >= next_byte_index and byte_is_valid_colorchar(line:byte(next_byte_index)) then
|
||||
return
|
||||
end
|
||||
return #prefix, COLOR_MAP[prefix]
|
||||
end
|
||||
end
|
||||
|
||||
return parser.name_parser
|
||||
114
lua/colorizer/parser/rgb.lua
Normal file
114
lua/colorizer/parser/rgb.lua
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
---Helper function to parse argb
|
||||
local count = require("colorizer.utils").count
|
||||
|
||||
local parser = {}
|
||||
local CSS_RGBA_FN_MINIMUM_LENGTH = #"rgba(0,0,0)" - 1
|
||||
local CSS_RGB_FN_MINIMUM_LENGTH = #"rgb(0,0,0)" - 1
|
||||
---Parse for rgb() rgba() css function and return rgb hex.
|
||||
-- For more info: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/rgb
|
||||
---@param line string: Line to parse
|
||||
---@param i number: Index of line from where to start parsing
|
||||
---@param opts table: Values passed from matchers like prefix
|
||||
---@return number|nil: Index of line where the rgb/rgba function ended
|
||||
---@return string|nil: rgb hex value
|
||||
function parser.rgb_function_parser(line, i, opts)
|
||||
local min_len = CSS_RGBA_FN_MINIMUM_LENGTH
|
||||
local min_commas, min_spaces, min_percent = 2, 2, 3
|
||||
local pattern = "^"
|
||||
.. opts.prefix
|
||||
.. "%(%s*([.%d]+)([%%]?)(%s?)%s*(,?)%s*([.%d]+)([%%]?)(%s?)%s*(,?)%s*([.%d]+)([%%]?)%s*(/?,?)%s*([.%d]*)([%%]?)%s*%)()"
|
||||
|
||||
if opts.prefix == "rgb" then
|
||||
min_len = CSS_RGB_FN_MINIMUM_LENGTH
|
||||
end
|
||||
|
||||
if #line < i + min_len then
|
||||
return
|
||||
end
|
||||
|
||||
local r, unit1, ssep1, csep1, g, unit2, ssep2, csep2, b, unit3, sep3, a, unit_a, match_end =
|
||||
line:sub(i):match(pattern)
|
||||
if not match_end then
|
||||
return
|
||||
end
|
||||
|
||||
if a == "" then
|
||||
a = nil
|
||||
else
|
||||
min_commas = min_commas + 1
|
||||
end
|
||||
|
||||
local units = ("%s%s%s"):format(unit1, unit2, unit3)
|
||||
if units:match "%%" then
|
||||
if not ((count(units, "%%")) == min_percent) then
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
local c_seps = ("%s%s%s"):format(csep1, csep2, sep3)
|
||||
local s_seps = ("%s%s"):format(ssep1, ssep2)
|
||||
-- comma separator syntax
|
||||
if c_seps:match "," then
|
||||
if not (count(c_seps, ",") == min_commas) then
|
||||
return
|
||||
end
|
||||
-- space separator syntax with decimal or percentage alpha
|
||||
elseif count(s_seps, "%s") >= min_spaces then
|
||||
if a then
|
||||
if not (c_seps == "/") then
|
||||
return
|
||||
end
|
||||
end
|
||||
else
|
||||
return
|
||||
end
|
||||
|
||||
if not a then
|
||||
a = 1
|
||||
else
|
||||
a = tonumber(a)
|
||||
-- if percentage, then convert to decimal
|
||||
if unit_a == "%" then
|
||||
a = a / 100
|
||||
end
|
||||
-- although alpha doesn't support larger values than 1, css anyways renders it at 1
|
||||
if a > 1 then
|
||||
a = 1
|
||||
end
|
||||
end
|
||||
|
||||
r = tonumber(r)
|
||||
if not r then
|
||||
return
|
||||
end
|
||||
g = tonumber(g)
|
||||
if not g then
|
||||
return
|
||||
end
|
||||
b = tonumber(b)
|
||||
if not b then
|
||||
return
|
||||
end
|
||||
|
||||
if unit1 == "%" then
|
||||
r = r / 100 * 255
|
||||
g = g / 100 * 255
|
||||
b = b / 100 * 255
|
||||
else
|
||||
-- although r,g,b doesn't support larger values than 255, css anyways renders it at 255
|
||||
if r > 255 then
|
||||
r = 255
|
||||
end
|
||||
if g > 255 then
|
||||
g = 255
|
||||
end
|
||||
if b > 255 then
|
||||
b = 255
|
||||
end
|
||||
end
|
||||
|
||||
local rgb_hex = string.format("%02x%02x%02x", r * a, g * a, b * a)
|
||||
return match_end - 1, rgb_hex
|
||||
end
|
||||
|
||||
return parser.rgb_function_parser
|
||||
68
lua/colorizer/parser/rgba_hex.lua
Normal file
68
lua/colorizer/parser/rgba_hex.lua
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
---Helper function to parse argb
|
||||
local bit = require "bit"
|
||||
local floor, min = math.floor, math.min
|
||||
local band, rshift, lshift = bit.band, bit.rshift, bit.lshift
|
||||
|
||||
local utils = require "colorizer.utils"
|
||||
local byte_is_alphanumeric = utils.byte_is_alphanumeric
|
||||
local byte_is_hex = utils.byte_is_hex
|
||||
local parse_hex = utils.parse_hex
|
||||
|
||||
local parser = {}
|
||||
|
||||
---parse for #rrggbbaa and return rgb hex.
|
||||
-- a format used in android apps
|
||||
---@param line string: line to parse
|
||||
---@param i number: index of line from where to start parsing
|
||||
---@param opts table: Containing minlen, maxlen, valid_lengths
|
||||
---@return number|nil: index of line where the hex value ended
|
||||
---@return string|nil: rgb hex value
|
||||
function parser.rgba_hex_parser(line, i, opts)
|
||||
local minlen, maxlen, valid_lengths = opts.minlen, opts.maxlen, opts.valid_lengths
|
||||
local j = i + 1
|
||||
if #line < j + minlen - 1 then
|
||||
return
|
||||
end
|
||||
|
||||
if i > 1 and byte_is_alphanumeric(line:byte(i - 1)) then
|
||||
return
|
||||
end
|
||||
|
||||
local n = j + maxlen
|
||||
local alpha
|
||||
local v = 0
|
||||
|
||||
while j <= min(n, #line) do
|
||||
local b = line:byte(j)
|
||||
if not byte_is_hex(b) then
|
||||
break
|
||||
end
|
||||
if j - i >= 7 then
|
||||
alpha = parse_hex(b) + lshift(alpha or 0, 4)
|
||||
else
|
||||
v = parse_hex(b) + lshift(v, 4)
|
||||
end
|
||||
j = j + 1
|
||||
end
|
||||
|
||||
if #line >= j and byte_is_alphanumeric(line:byte(j)) then
|
||||
return
|
||||
end
|
||||
|
||||
local length = j - i
|
||||
if length ~= 4 and length ~= 7 and length ~= 9 then
|
||||
return
|
||||
end
|
||||
|
||||
if alpha then
|
||||
alpha = tonumber(alpha) / 255
|
||||
local r = floor(band(rshift(v, 16), 0xFF) * alpha)
|
||||
local g = floor(band(rshift(v, 8), 0xFF) * alpha)
|
||||
local b = floor(band(v, 0xFF) * alpha)
|
||||
local rgb_hex = string.format("%02x%02x%02x", r, g, b)
|
||||
return 9, rgb_hex
|
||||
end
|
||||
return (valid_lengths[length - 1] and length), line:sub(i + 1, i + length - 1)
|
||||
end
|
||||
|
||||
return parser.rgba_hex_parser
|
||||
Loading…
Reference in a new issue