Convert some uses of lambda to more concise std::mem_fn
This commit is contained in:
parent
bc9d1b4dac
commit
025b91baca
|
@ -57,7 +57,7 @@ Vector<std::pair<StringView, StringView>> AliasRegistry::flatten_aliases() const
|
||||||
res = m_parent->flatten_aliases();
|
res = m_parent->flatten_aliases();
|
||||||
for (auto& alias : m_aliases)
|
for (auto& alias : m_aliases)
|
||||||
{
|
{
|
||||||
if (not contains(res | transform([](const AliasDesc& val) { return val.first; }), alias.key))
|
if (not contains(res | transform(std::mem_fn(&AliasDesc::first)), alias.key))
|
||||||
res.emplace_back(alias.key, alias.value);
|
res.emplace_back(alias.key, alias.value);
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
|
|
|
@ -54,7 +54,6 @@ void BufferManager::delete_buffer(Buffer& buffer)
|
||||||
{ return p.get() == &buffer; });
|
{ return p.get() == &buffer; });
|
||||||
kak_assert(it != m_buffers.end());
|
kak_assert(it != m_buffers.end());
|
||||||
|
|
||||||
|
|
||||||
ClientManager::instance().ensure_no_client_uses_buffer(buffer);
|
ClientManager::instance().ensure_no_client_uses_buffer(buffer);
|
||||||
|
|
||||||
m_buffer_trash.emplace_back(std::move(*it));
|
m_buffer_trash.emplace_back(std::move(*it));
|
||||||
|
|
|
@ -531,16 +531,15 @@ Completions CommandManager::complete_command_name(const Context& context,
|
||||||
{
|
{
|
||||||
auto commands = m_commands
|
auto commands = m_commands
|
||||||
| filter([](const CommandMap::value_type& cmd) { return not (cmd.second.flags & CommandFlags::Hidden); })
|
| filter([](const CommandMap::value_type& cmd) { return not (cmd.second.flags & CommandFlags::Hidden); })
|
||||||
| transform([](const CommandMap::value_type& cmd) { return StringView{cmd.first}; });
|
| transform(std::mem_fn(&CommandMap::value_type::first));
|
||||||
|
|
||||||
if (not with_aliases)
|
if (not with_aliases)
|
||||||
return {0, query.length(), Kakoune::complete(query, query.length(), commands)};
|
return {0, query.length(), Kakoune::complete(query, query.length(), commands)};
|
||||||
|
|
||||||
auto candidates = Kakoune::complete(query, query.length(),
|
auto candidates = Kakoune::complete(query, query.length(),
|
||||||
concatenated(commands,
|
concatenated(commands,
|
||||||
context.aliases().flatten_aliases()
|
context.aliases().flatten_aliases() |
|
||||||
| transform([](AliasRegistry::AliasDesc alias)
|
transform(std::mem_fn(&AliasRegistry::AliasDesc::first))));
|
||||||
{ return alias.first; })));
|
|
||||||
return {0, query.length(), std::move(candidates)};
|
return {0, query.length(), std::move(candidates)};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,8 @@
|
||||||
#include "string.hh"
|
#include "string.hh"
|
||||||
#include "window.hh"
|
#include "window.hh"
|
||||||
|
|
||||||
|
#include <functional>
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
@ -1508,8 +1510,7 @@ void context_wrap(const ParametersParser& parser, Context& context, Func func)
|
||||||
// copy buffer list as we might be mutating the buffer list
|
// copy buffer list as we might be mutating the buffer list
|
||||||
// in the loop.
|
// in the loop.
|
||||||
auto ptrs = BufferManager::instance() |
|
auto ptrs = BufferManager::instance() |
|
||||||
transform([](const std::unique_ptr<Buffer>& ptr)
|
transform(std::mem_fn(&std::unique_ptr<Buffer>::get));
|
||||||
{ return ptr.get(); });
|
|
||||||
Vector<SafePtr<Buffer>> buffers{ptrs.begin(), ptrs.end()};
|
Vector<SafePtr<Buffer>> buffers{ptrs.begin(), ptrs.end()};
|
||||||
for (auto buffer : buffers)
|
for (auto buffer : buffers)
|
||||||
context_wrap_for_buffer(*buffer);
|
context_wrap_for_buffer(*buffer);
|
||||||
|
|
|
@ -254,7 +254,7 @@ struct ConcatView
|
||||||
{
|
{
|
||||||
using ContainerIt1 = decltype(begin(std::declval<Container1>()));
|
using ContainerIt1 = decltype(begin(std::declval<Container1>()));
|
||||||
using ContainerIt2 = decltype(begin(std::declval<Container2>()));
|
using ContainerIt2 = decltype(begin(std::declval<Container2>()));
|
||||||
using ValueType = typename ContainerIt1::value_type;
|
using ValueType = typename std::common_type<typename ContainerIt1::value_type, typename ContainerIt2::value_type>::type;
|
||||||
|
|
||||||
struct Iterator : std::iterator<std::forward_iterator_tag, ValueType>
|
struct Iterator : std::iterator<std::forward_iterator_tag, ValueType>
|
||||||
{
|
{
|
||||||
|
@ -265,7 +265,7 @@ struct ConcatView
|
||||||
: m_it1(std::move(it1)), m_end1(std::move(end1)),
|
: m_it1(std::move(it1)), m_end1(std::move(end1)),
|
||||||
m_it2(std::move(it2)) {}
|
m_it2(std::move(it2)) {}
|
||||||
|
|
||||||
decltype(*std::declval<ContainerIt1>()) operator*() { return is2() ? *m_it2 : *m_it1; }
|
ValueType operator*() { return is2() ? *m_it2 : *m_it1; }
|
||||||
Iterator& operator++() { if (is2()) ++m_it2; else ++m_it1; return *this; }
|
Iterator& operator++() { if (is2()) ++m_it2; else ++m_it1; return *this; }
|
||||||
Iterator operator++(int) { auto copy = *this; ++*this; return copy; }
|
Iterator operator++(int) { auto copy = *this; ++*this; return copy; }
|
||||||
|
|
||||||
|
|
|
@ -95,8 +95,7 @@ CandidateList FaceRegistry::complete_alias_name(StringView prefix,
|
||||||
ByteCount cursor_pos) const
|
ByteCount cursor_pos) const
|
||||||
{
|
{
|
||||||
return complete(prefix, cursor_pos,
|
return complete(prefix, cursor_pos,
|
||||||
m_aliases | transform([](const AliasMap::value_type& v) -> const String&
|
m_aliases | transform(std::mem_fn(&AliasMap::value_type::first)));
|
||||||
{ return v.first; }));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FaceRegistry::FaceRegistry()
|
FaceRegistry::FaceRegistry()
|
||||||
|
|
|
@ -32,7 +32,7 @@ struct option_type_name<Enum, typename std::enable_if<std::is_enum<Enum>::value>
|
||||||
{
|
{
|
||||||
constexpr StringView type = WithBitOps<Enum>::value ? "flags" : "enum";
|
constexpr StringView type = WithBitOps<Enum>::value ? "flags" : "enum";
|
||||||
auto name = enum_desc(Enum{});
|
auto name = enum_desc(Enum{});
|
||||||
return type + "(" + join(name | transform([](const EnumDesc<Enum>& d) { return d.name; }), '|') + ")";
|
return type + "(" + join(name | transform(std::mem_fn(&EnumDesc<Enum>::name)), '|') + ")";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -235,9 +235,8 @@ String ShellManager::get_val(StringView name, const Context& context) const
|
||||||
CandidateList ShellManager::complete_env_var(StringView prefix,
|
CandidateList ShellManager::complete_env_var(StringView prefix,
|
||||||
ByteCount cursor_pos) const
|
ByteCount cursor_pos) const
|
||||||
{
|
{
|
||||||
return complete(prefix, cursor_pos, m_env_vars |
|
return complete(prefix, cursor_pos,
|
||||||
transform([](const EnvVarDesc& desc) -> const String&
|
m_env_vars | transform(std::mem_fn(&EnvVarDesc::str)));
|
||||||
{ return desc.str; }));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user