Skip to content

Commit

Permalink
feature #26698 [Console] Use UTF-8 bullet for listing (ro0NL)
Browse files Browse the repository at this point in the history
This PR was squashed before being merged into the 4.1-dev branch (closes #26698).

Discussion
----------

[Console] Use UTF-8 bullet for listing

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Inspired by the new table style, this updates the listing style.

before

![image](https://user-images.githubusercontent.com/1047696/38031214-019c79f4-329b-11e8-8352-9453c7ccc129.png)

after

![image](https://user-images.githubusercontent.com/1047696/38031186-ed8b1e66-329a-11e8-8538-2256a0e24a42.png)

Commits
-------

d1e4acb [Console] Use UTF-8 bullet for listing
  • Loading branch information
fabpot committed Mar 30, 2018
2 parents 9b25573 + d1e4acb commit 6bfc082
Show file tree
Hide file tree
Showing 14 changed files with 146 additions and 19 deletions.
Expand Up @@ -203,7 +203,7 @@ private function getDescriptionTestData(array $objects)
{
$data = array();
foreach ($objects as $name => $object) {
$description = file_get_contents(sprintf('%s/../../Fixtures/Descriptor/%s.%s', __DIR__, $name, $this->getFormat()));
$description = file_get_contents($this->getFixtureFilename($name));
$data[] = array($object, $description);
}

Expand All @@ -223,7 +223,7 @@ private function getContainerBuilderDescriptionTestData(array $objects)
$data = array();
foreach ($objects as $name => $object) {
foreach ($variations as $suffix => $options) {
$description = file_get_contents(sprintf('%s/../../Fixtures/Descriptor/%s_%s.%s', __DIR__, $name, $suffix, $this->getFormat()));
$description = file_get_contents($this->getFixtureFilename($name.'_'.$suffix));
$data[] = array($object, $description, $options);
}
}
Expand All @@ -241,11 +241,23 @@ private function getEventDispatcherDescriptionTestData(array $objects)
$data = array();
foreach ($objects as $name => $object) {
foreach ($variations as $suffix => $options) {
$description = file_get_contents(sprintf('%s/../../Fixtures/Descriptor/%s_%s.%s', __DIR__, $name, $suffix, $this->getFormat()));
$description = file_get_contents($this->getFixtureFilename($name.'_'.$suffix));
$data[] = array($object, $description, $options);
}
}

return $data;
}

private function getFixtureFilename($name)
{
$format = $this->getFormat();
$baseDir = __DIR__.'/../../Fixtures/Descriptor';
$file = $baseDir.'/'.$name.'.'.$format;
if ('\\' === DIRECTORY_SEPARATOR && is_file($winFile = $baseDir.'/win/'.$name.'.'.$format)) {
return $winFile;
}

return $file;
}
}
Expand Up @@ -5,10 +5,10 @@
"tag1" tag
----------

* definition_2
definition_2

"tag2" tag
----------

* definition_2
definition_2

@@ -0,0 +1,14 @@

Symfony Container Public and Private Tags
=========================================

"tag1" tag
----------

* definition_2

"tag2" tag
----------

* definition_2

2 changes: 1 addition & 1 deletion src/Symfony/Component/Console/Style/SymfonyStyle.php
Expand Up @@ -103,7 +103,7 @@ public function listing(array $elements)
{
$this->autoPrependText();
$elements = array_map(function ($element) {
return sprintf(' * %s', $element);
return sprintf(' %s %s', '\\' === DIRECTORY_SEPARATOR ? '*' : '•', $element);
}, $elements);

$this->writeln($elements);
Expand Down
@@ -1,10 +1,10 @@
Lorem ipsum dolor sit amet
* Lorem ipsum dolor sit amet
* consectetur adipiscing elit
Lorem ipsum dolor sit amet
consectetur adipiscing elit

Lorem ipsum dolor sit amet
* Lorem ipsum dolor sit amet
* consectetur adipiscing elit
Lorem ipsum dolor sit amet
consectetur adipiscing elit

Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Expand Down
@@ -1,6 +1,6 @@

* Lorem ipsum dolor sit amet
* consectetur adipiscing elit
Lorem ipsum dolor sit amet
consectetur adipiscing elit

[OK] Lorem ipsum dolor sit amet

@@ -0,0 +1,18 @@
Lorem ipsum dolor sit amet
* Lorem ipsum dolor sit amet
* consectetur adipiscing elit

Lorem ipsum dolor sit amet
* Lorem ipsum dolor sit amet
* consectetur adipiscing elit

Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
consectetur adipiscing elit

Lorem ipsum dolor sit amet

// Lorem ipsum dolor sit amet
//
// consectetur adipiscing elit

@@ -0,0 +1,6 @@

* Lorem ipsum dolor sit amet
* consectetur adipiscing elit

[OK] Lorem ipsum dolor sit amet

10 changes: 9 additions & 1 deletion src/Symfony/Component/Console/Tests/Style/SymfonyStyleTest.php
Expand Up @@ -74,7 +74,15 @@ public function inputCommandToOutputFilesProvider()
{
$baseDir = __DIR__.'/../Fixtures/Style/SymfonyStyle';

return array_map(null, glob($baseDir.'/command/command_*.php'), glob($baseDir.'/output/output_*.txt'));
return array_map(function ($cmd) use ($baseDir) {
$basename = 'output_'.substr(basename($cmd, '.php'), 8).'.txt';
$output = $baseDir.'/output/'.$basename;
if ('\\' === \DIRECTORY_SEPARATOR && is_file($outputWin = $baseDir.'/output/win/'.$basename)) {
return array($cmd, $outputWin);
}

return array($cmd, $output);
}, glob($baseDir.'/command/command_*.php'));
}

public function testGetErrorStyle()
Expand Down
Expand Up @@ -127,7 +127,14 @@ private function getExpectedDescription($name)

private function getFixtureFilename($name)
{
return sprintf('%s/../../Fixtures/Descriptor/%s.%s', __DIR__, $name, $this->getFormat());
$format = $this->getFormat();
$baseDir = __DIR__.'/../../Fixtures/Descriptor';
$file = $baseDir.'/'.$name.'.'.$format;
if ('\\' === DIRECTORY_SEPARATOR && is_file($winFile = $baseDir.'/win/'.$name.'.'.$format)) {
return $winFile;
}

return $file;
}
}

Expand Down
Expand Up @@ -7,15 +7,15 @@ Built-in form types (Symfony\Component\Form\Extension\Core\Type)
Service form types
------------------

* Symfony\Bridge\Doctrine\Form\Type\EntityType
Symfony\Bridge\Doctrine\Form\Type\EntityType

Type extensions
---------------

* Symfony\Component\Form\Extension\Csrf\Type\FormTypeCsrfExtension
Symfony\Component\Form\Extension\Csrf\Type\FormTypeCsrfExtension

Type guessers
-------------

* Symfony\Component\Form\Extension\Validator\ValidatorTypeGuesser
Symfony\Component\Form\Extension\Validator\ValidatorTypeGuesser

Expand Up @@ -32,10 +32,10 @@ Symfony\Component\Form\Extension\Core\Type\ChoiceType (Block prefix: "choice")
Parent types
------------

* Symfony\Component\Form\Extension\Core\Type\FormType
Symfony\Component\Form\Extension\Core\Type\FormType

Type extensions
---------------

* Symfony\Component\Form\Extension\Csrf\Type\FormTypeCsrfExtension
Symfony\Component\Form\Extension\Csrf\Type\FormTypeCsrfExtension

@@ -0,0 +1,21 @@

Built-in form types (Symfony\Component\Form\Extension\Core\Type)
----------------------------------------------------------------

FormType

Service form types
------------------

* Symfony\Bridge\Doctrine\Form\Type\EntityType

Type extensions
---------------

* Symfony\Component\Form\Extension\Csrf\Type\FormTypeCsrfExtension

Type guessers
-------------

* Symfony\Component\Form\Extension\Validator\ValidatorTypeGuesser

@@ -0,0 +1,41 @@

Symfony\Component\Form\Extension\Core\Type\ChoiceType (Block prefix: "choice")
==============================================================================

--------------------------- -------------------- ------------------------- -----------------------
Options Overridden options Parent options Extension options
--------------------------- -------------------- ------------------------- -----------------------
choice_attr FormType FormType FormTypeCsrfExtension
choice_label -------------------- ------------------------- -----------------------
choice_loader compound action csrf_field_name
choice_name data_class attr csrf_message
choice_translation_domain empty_data auto_initialize csrf_protection
choice_value error_bubbling block_name csrf_token_id
choices by_reference csrf_token_manager
expanded data
group_by disabled
multiple help
placeholder inherit_data
preferred_choices label
label_attr
label_format
mapped
method
post_max_size_message
property_path
required
translation_domain
trim
upload_max_size_message
--------------------------- -------------------- ------------------------- -----------------------

Parent types
------------

* Symfony\Component\Form\Extension\Core\Type\FormType

Type extensions
---------------

* Symfony\Component\Form\Extension\Csrf\Type\FormTypeCsrfExtension

0 comments on commit 6bfc082

Please sign in to comment.