Comments and tests
timw4mail/php-kilo/pipeline/head This commit looks good Details

This commit is contained in:
Timothy Warren 2021-04-14 19:00:37 -04:00
parent 3ef4268263
commit 457560137d
4 changed files with 46 additions and 5 deletions

View File

@ -3,7 +3,12 @@
namespace Aviat\Kilo; namespace Aviat\Kilo;
class FileType { class FileType {
/**
* Create the FileType object from the filename
*
* @param string|null $filename
* @return self
*/
public static function from(?string $filename): self public static function from(?string $filename): self
{ {
$syntax = self::getSyntaxFromFilename((string)$filename); $syntax = self::getSyntaxFromFilename((string)$filename);
@ -11,6 +16,12 @@ class FileType {
return new self($syntax->filetype, $syntax); return new self($syntax->filetype, $syntax);
} }
/**
* Create the Syntax object from the filename
*
* @param string $filename
* @return Syntax
*/
private static function getSyntaxFromFilename(string $filename): Syntax private static function getSyntaxFromFilename(string $filename): Syntax
{ {
$ext = strstr(basename($filename), '.'); $ext = strstr(basename($filename), '.');

View File

@ -11,8 +11,6 @@ use Aviat\Kilo\Enum\RawKeyCode;
* @property-read string $chars * @property-read string $chars
*/ */
class Row { class Row {
// use Traits\MagicProperties;
/** /**
* The version of the row to be displayed (where tabs are converted to display spaces) * The version of the row to be displayed (where tabs are converted to display spaces)
*/ */

View File

@ -41,7 +41,15 @@ class Syntax {
public static function default(): self public static function default(): self
{ {
return self::new('No filetype', slcs: '', mcs: '', mce: '', highlightNumbers: false, highlightStrings: false, hasCommonOperators: false); return self::new(
'No filetype', slcs:
'', mcs:
'', mce:
'',
highlightNumbers: false,
highlightStrings: false,
hasCommonOperators: false,
);
} }
private function __construct( private function __construct(
@ -57,7 +65,7 @@ class Syntax {
public string $singleLineCommentStart, public string $singleLineCommentStart,
/** Syntax to start a multi-line comment */ /** Syntax to start a multi-line comment */
public string $multiLineCommentStart, public string $multiLineCommentStart,
/** Syntax to end a multi-line commment */ /** Syntax to end a multi-line comment */
public string $multiLineCommentEnd, public string $multiLineCommentEnd,
/** Should we highlight numbers? */ /** Should we highlight numbers? */
private bool $highlightNumbers, private bool $highlightNumbers,

24
tests/Type/PointTest.php Normal file
View File

@ -0,0 +1,24 @@
<?php declare(strict_types=1);
namespace Aviat\Kilo\Tests\Type;
use Aviat\Kilo\Type\Point;
use PHPUnit\Framework\TestCase;
class PointTest extends TestCase {
public function testNewPoint(): void
{
$p = Point::new(1, 2);
$this->assertEquals(1, $p->x);
$this->assertEquals(2, $p->y);
}
public function testPointFrom(): void
{
$p = Point::new(3, 7);
$p2 = Point::from($p);
$this->assertEquals($p->x, $p2->x);
$this->assertEquals($p->y, $p2->y);
}
}