mirror of
https://github.com/NixOS/nix
synced 2025-06-25 06:31:14 +02:00
* It is tough to contribute to a project that doesn't use a formatter, * It is extra hard to contribute to a project which has configured the formatter, but ignores it for some files * Code formatting makes it harder to hide obscure / weird bugs by accident or on purpose, Let's rip the bandaid off? Note that PRs currently in flight should be able to be merged relatively easily by applying `clang-format` to their tip prior to merge.
22 lines
754 B
C++
22 lines
754 B
C++
#include "nix/cmd/editor-for.hh"
|
|
#include "nix/util/environment-variables.hh"
|
|
#include "nix/util/source-path.hh"
|
|
|
|
namespace nix {
|
|
|
|
Strings editorFor(const SourcePath & file, uint32_t line)
|
|
{
|
|
auto path = file.getPhysicalPath();
|
|
if (!path)
|
|
throw Error("cannot open '%s' in an editor because it has no physical path", file);
|
|
auto editor = getEnv("EDITOR").value_or("cat");
|
|
auto args = tokenizeString<Strings>(editor);
|
|
if (line > 0
|
|
&& (editor.find("emacs") != std::string::npos || editor.find("nano") != std::string::npos
|
|
|| editor.find("vim") != std::string::npos || editor.find("kak") != std::string::npos))
|
|
args.push_back(fmt("+%d", line));
|
|
args.push_back(path->string());
|
|
return args;
|
|
}
|
|
|
|
}
|