Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4139536
BufferCommand.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
BufferCommand.php
View Options
<?php
/*
* This file is part of Psy Shell.
*
* (c) 2012-2023 Justin Hileman
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace
Psy\Command
;
use
Psy\Output\ShellOutput
;
use
Symfony\Component\Console\Input\InputInterface
;
use
Symfony\Component\Console\Input\InputOption
;
use
Symfony\Component\Console\Output\OutputInterface
;
/**
* Interact with the current code buffer.
*
* Shows and clears the buffer for the current multi-line expression.
*/
class
BufferCommand
extends
Command
{
/**
* {@inheritdoc}
*/
protected
function
configure
()
{
$this
->
setName
(
'buffer'
)
->
setAliases
([
'buf'
])
->
setDefinition
([
new
InputOption
(
'clear'
,
''
,
InputOption
::
VALUE_NONE
,
'Clear the current buffer.'
),
])
->
setDescription
(
'Show (or clear) the contents of the code input buffer.'
)
->
setHelp
(
<<<'HELP'
Show the contents of the code buffer for the current multi-line expression.
Optionally, clear the buffer by passing the <info>--clear</info> option.
HELP
);
}
/**
* {@inheritdoc}
*
* @return int 0 if everything went fine, or an exit code
*/
protected
function
execute
(
InputInterface
$input
,
OutputInterface
$output
):
int
{
$shell
=
$this
->
getShell
();
$buf
=
$shell
->
getCodeBuffer
();
if
(
$input
->
getOption
(
'clear'
))
{
$shell
->
resetCodeBuffer
();
$output
->
writeln
(
$this
->
formatLines
(
$buf
,
'urgent'
),
ShellOutput
::
NUMBER_LINES
);
}
else
{
$output
->
writeln
(
$this
->
formatLines
(
$buf
),
ShellOutput
::
NUMBER_LINES
);
}
return
0
;
}
/**
* A helper method for wrapping buffer lines in `<urgent>` and `<return>` formatter strings.
*
* @param array $lines
* @param string $type (default: 'return')
*
* @return array Formatted strings
*/
protected
function
formatLines
(
array
$lines
,
string
$type
=
'return'
):
array
{
$template
=
\sprintf
(
'<%s>%%s</%s>'
,
$type
,
$type
);
return
\array_map
(
function
(
$line
)
use
(
$template
)
{
return
\sprintf
(
$template
,
$line
);
},
$lines
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Wed, Aug 19, 15:07 (3 w, 5 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
59/d9/bf76af27c435627bd6cd00d35a62
Default Alt Text
BufferCommand.php (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment