Make operator highlighting optional
All checks were successful
timw4mail/php-kilo/pipeline/head This commit looks good
All checks were successful
timw4mail/php-kilo/pipeline/head This commit looks good
This commit is contained in:
parent
d0817b62c4
commit
e22bb0545d
@ -18,9 +18,15 @@ class FileType {
|
|||||||
return match ($ext) {
|
return match ($ext) {
|
||||||
'.sh', '.bash' => Syntax::new(
|
'.sh', '.bash' => Syntax::new(
|
||||||
'Shell',
|
'Shell',
|
||||||
|
[
|
||||||
|
'case', 'do', 'done', 'elif', 'else', 'esac', 'fi', 'for', 'function', 'if', 'in',
|
||||||
|
'select', 'then', 'time', 'until', 'while', 'declare',
|
||||||
|
],
|
||||||
|
['set'],
|
||||||
slcs: '#',
|
slcs: '#',
|
||||||
mcs: '',
|
mcs: '',
|
||||||
mce: '',
|
mce: '',
|
||||||
|
highlightNumbers: false,
|
||||||
),
|
),
|
||||||
'.php', 'kilo' => Syntax::new(
|
'.php', 'kilo' => Syntax::new(
|
||||||
'PHP',
|
'PHP',
|
||||||
@ -49,6 +55,7 @@ class FileType {
|
|||||||
'.css', '.less', '.sass', '.scss' => Syntax::new(
|
'.css', '.less', '.sass', '.scss' => Syntax::new(
|
||||||
'CSS',
|
'CSS',
|
||||||
slcs: '',
|
slcs: '',
|
||||||
|
hasCommonOperators: false,
|
||||||
),
|
),
|
||||||
'.go' => Syntax::new(
|
'.go' => Syntax::new(
|
||||||
'Go',
|
'Go',
|
||||||
|
@ -257,7 +257,7 @@ class Row {
|
|||||||
|| $this->highlightString($i, $syntax)
|
|| $this->highlightString($i, $syntax)
|
||||||
|| $this->highlightOperators($i, $syntax)
|
|| $this->highlightOperators($i, $syntax)
|
||||||
|| $this->highlightCommonDelimeters($i)
|
|| $this->highlightCommonDelimeters($i)
|
||||||
|| $this->highlightCommonOperators($i)
|
|| $this->highlightCommonOperators($i, $syntax)
|
||||||
|| $this->highlightNumber($i, $syntax)
|
|| $this->highlightNumber($i, $syntax)
|
||||||
) {
|
) {
|
||||||
continue;
|
continue;
|
||||||
@ -376,8 +376,13 @@ class Row {
|
|||||||
return $this->highlightWord($i, $opts->operators, Highlight::OPERATOR);
|
return $this->highlightWord($i, $opts->operators, Highlight::OPERATOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function highlightCommonOperators(int &$i): bool
|
protected function highlightCommonOperators(int &$i, Syntax $opts): bool
|
||||||
{
|
{
|
||||||
|
if ( ! $opts->commonOperators())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return $this->highlightChar(
|
return $this->highlightChar(
|
||||||
$i,
|
$i,
|
||||||
['+', '-', '*', '/', '<', '^', '>', '%', '=', ':', ',', ';', '&', '~'],
|
['+', '-', '*', '/', '<', '^', '>', '%', '=', ':', ',', ';', '&', '~'],
|
||||||
|
@ -19,6 +19,7 @@ class Syntax {
|
|||||||
bool $highlightComments = true,
|
bool $highlightComments = true,
|
||||||
bool $hasCharType = false,
|
bool $hasCharType = false,
|
||||||
bool $highlightCharacters = false,
|
bool $highlightCharacters = false,
|
||||||
|
bool $hasCommonOperators = true,
|
||||||
): self
|
): self
|
||||||
{
|
{
|
||||||
return new self(
|
return new self(
|
||||||
@ -34,12 +35,13 @@ class Syntax {
|
|||||||
$highlightCharacters,
|
$highlightCharacters,
|
||||||
$highlightStrings,
|
$highlightStrings,
|
||||||
$highlightComments,
|
$highlightComments,
|
||||||
|
$hasCommonOperators,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function default(): self
|
public static function default(): self
|
||||||
{
|
{
|
||||||
return self::new('No filetype', slcs: '', mcs: '', mce: '', highlightNumbers: false, highlightStrings: false);
|
return self::new('No filetype', slcs: '', mcs: '', mce: '', highlightNumbers: false, highlightStrings: false, hasCommonOperators: false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function __construct(
|
private function __construct(
|
||||||
@ -67,6 +69,8 @@ class Syntax {
|
|||||||
private bool $highlightStrings,
|
private bool $highlightStrings,
|
||||||
/** should we highlight comments? */
|
/** should we highlight comments? */
|
||||||
private bool $highlightComments,
|
private bool $highlightComments,
|
||||||
|
/** should we highlight common operators? */
|
||||||
|
private bool $hasCommonOperators,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
public function numbers(): bool
|
public function numbers(): bool
|
||||||
@ -100,4 +104,9 @@ class Syntax {
|
|||||||
{
|
{
|
||||||
return $this->highlightComments && strlen($this->singleLineCommentStart) !== 0;
|
return $this->highlightComments && strlen($this->singleLineCommentStart) !== 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function commonOperators(): bool
|
||||||
|
{
|
||||||
|
return $this->hasCommonOperators;
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user