From 9f81093411ebb2b4eee2b20d8f0a5db68f0c653a Mon Sep 17 00:00:00 2001 From: Eike Plack Date: Tue, 23 Dec 2014 02:49:53 +0100 Subject: [PATCH] Expose buffer list to shell over $kak_buflist --- README.asciidoc | 1 + src/main.cc | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/README.asciidoc b/README.asciidoc index b8f6f7a1..05f4a594 100644 --- a/README.asciidoc +++ b/README.asciidoc @@ -911,6 +911,7 @@ Some of Kakoune state is available through environment variables: * +kak_selections+: content of the selection separated by colons, colons in the selection contents are escapted with a backslash. * +kak_bufname+: name of the current buffer + * +kak_buflist+: the current buffer list, each buffer seperated by a colon * +kak_timestamp+: timestamp of the current buffer, the timestamp is an integer value which is incremented each time the buffer is modified. * +kak_runtime+: directory containing the kak binary diff --git a/src/main.cc b/src/main.cc index 8b5d0114..885d7333 100644 --- a/src/main.cc +++ b/src/main.cc @@ -56,6 +56,17 @@ void register_env_vars() "buffile", [](StringView name, const Context& context) -> String { return context.buffer().name(); } + }, { + "buflist", + [](StringView name, const Context& context) + { + String res; + for (auto& buf : BufferManager::instance()) + { + res += buf->display_name() + ":"; + } + res.pop_back(); + return res; } }, { "timestamp", [](StringView name, const Context& context)