Add -scratch and -file switches to the rename-buffer command
This commit is contained in:
parent
42094209fd
commit
15df0fc781
|
@ -106,8 +106,9 @@ of the file onto the filesystem
|
||||||
*alias* db +
|
*alias* db +
|
||||||
delete current buffer or the buffer <name> if specified
|
delete current buffer or the buffer <name> if specified
|
||||||
|
|
||||||
*rename-buffer* <name>::
|
*rename-buffer* [-file|-scratch] <name>::
|
||||||
set current buffer name
|
set current buffer name, if *-scratch* or *-file* is given, ensure
|
||||||
|
the buffer is set to the corresponding type.
|
||||||
|
|
||||||
*source* <filename> <param>...::
|
*source* <filename> <param>...::
|
||||||
execute commands in <filename>
|
execute commands in <filename>
|
||||||
|
|
|
@ -823,13 +823,28 @@ const CommandDesc rename_buffer_cmd = {
|
||||||
"rename-buffer",
|
"rename-buffer",
|
||||||
nullptr,
|
nullptr,
|
||||||
"rename-buffer <name>: change current buffer name",
|
"rename-buffer <name>: change current buffer name",
|
||||||
single_param,
|
ParameterDesc{
|
||||||
|
{
|
||||||
|
{ "scratch", { false, "convert a file buffer to a scratch buffer" } },
|
||||||
|
{ "file", { false, "convert a scratch buffer to a file buffer" } }
|
||||||
|
},
|
||||||
|
ParameterDesc::Flags::None, 1, 1
|
||||||
|
},
|
||||||
CommandFlags::None,
|
CommandFlags::None,
|
||||||
CommandHelper{},
|
CommandHelper{},
|
||||||
filename_completer<false>,
|
filename_completer<false>,
|
||||||
[](const ParametersParser& parser, Context& context, const ShellContext&)
|
[](const ParametersParser& parser, Context& context, const ShellContext&)
|
||||||
{
|
{
|
||||||
if (not context.buffer().set_name(parser[0]))
|
if (parser.get_switch("scratch") and parser.get_switch("file"))
|
||||||
|
throw runtime_error("scratch and file are incompatible switches");
|
||||||
|
|
||||||
|
auto& buffer = context.buffer();
|
||||||
|
if (parser.get_switch("scratch"))
|
||||||
|
buffer.flags() &= ~(Buffer::Flags::File | Buffer::Flags::New);
|
||||||
|
if (parser.get_switch("file"))
|
||||||
|
buffer.flags() |= Buffer::Flags::File;
|
||||||
|
|
||||||
|
if (not buffer.set_name(parser[0]))
|
||||||
throw runtime_error(format("unable to change buffer name to '{}': a buffer with this name already exists", parser[0]));
|
throw runtime_error(format("unable to change buffer name to '{}': a buffer with this name already exists", parser[0]));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user