Move editorFor srom libutil to nix
libutil should not depend on libexpr.
This commit is contained in:
parent
48f0a76372
commit
0d6774468c
|
@ -178,19 +178,6 @@ Strings argvToStrings(int argc, char * * argv)
|
||||||
return args;
|
return args;
|
||||||
}
|
}
|
||||||
|
|
||||||
Strings editorFor(Pos pos)
|
|
||||||
{
|
|
||||||
auto editor = getEnv("EDITOR", "cat");
|
|
||||||
auto args = tokenizeString<Strings>(editor);
|
|
||||||
if (pos.line > 0 && (
|
|
||||||
editor.find("emacs") != std::string::npos ||
|
|
||||||
editor.find("nano") != std::string::npos ||
|
|
||||||
editor.find("vim") != std::string::npos))
|
|
||||||
args.push_back(fmt("+%d", pos.line));
|
|
||||||
args.push_back(pos.file);
|
|
||||||
return args;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string renderLabels(const Strings & labels)
|
std::string renderLabels(const Strings & labels)
|
||||||
{
|
{
|
||||||
std::string res;
|
std::string res;
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include "util.hh"
|
#include "util.hh"
|
||||||
#include "nixexpr.hh"
|
|
||||||
|
|
||||||
namespace nix {
|
namespace nix {
|
||||||
|
|
||||||
|
@ -191,9 +190,6 @@ public:
|
||||||
|
|
||||||
Strings argvToStrings(int argc, char * * argv);
|
Strings argvToStrings(int argc, char * * argv);
|
||||||
|
|
||||||
/* Helper function to generate args that invoke $EDITOR on filename:lineno */
|
|
||||||
Strings editorFor(Pos pos);
|
|
||||||
|
|
||||||
/* Helper function for rendering argument labels. */
|
/* Helper function for rendering argument labels. */
|
||||||
std::string renderLabels(const Strings & labels);
|
std::string renderLabels(const Strings & labels);
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "command.hh"
|
#include "command.hh"
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
#include "derivations.hh"
|
#include "derivations.hh"
|
||||||
|
#include "nixexpr.hh"
|
||||||
|
|
||||||
namespace nix {
|
namespace nix {
|
||||||
|
|
||||||
|
@ -153,4 +154,17 @@ void StorePathCommand::run(ref<Store> store)
|
||||||
run(store, *storePaths.begin());
|
run(store, *storePaths.begin());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Strings editorFor(const Pos & pos)
|
||||||
|
{
|
||||||
|
auto editor = getEnv("EDITOR", "cat");
|
||||||
|
auto args = tokenizeString<Strings>(editor);
|
||||||
|
if (pos.line > 0 && (
|
||||||
|
editor.find("emacs") != std::string::npos ||
|
||||||
|
editor.find("nano") != std::string::npos ||
|
||||||
|
editor.find("vim") != std::string::npos))
|
||||||
|
args.push_back(fmt("+%d", pos.line));
|
||||||
|
args.push_back(pos.file);
|
||||||
|
return args;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ extern std::string programPath;
|
||||||
struct Value;
|
struct Value;
|
||||||
class Bindings;
|
class Bindings;
|
||||||
class EvalState;
|
class EvalState;
|
||||||
|
struct Pos;
|
||||||
|
|
||||||
/* A command is an argument parser that can be executed by calling its
|
/* A command is an argument parser that can be executed by calling its
|
||||||
run() method. */
|
run() method. */
|
||||||
|
@ -216,4 +217,8 @@ PathSet toDerivations(ref<Store> store,
|
||||||
std::vector<std::shared_ptr<Installable>> installables,
|
std::vector<std::shared_ptr<Installable>> installables,
|
||||||
bool useDeriver = false);
|
bool useDeriver = false);
|
||||||
|
|
||||||
|
/* Helper function to generate args that invoke $EDITOR on
|
||||||
|
filename:lineno. */
|
||||||
|
Strings editorFor(const Pos & pos);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue