nixd
Loading...
Searching...
No Matches
FlattenAttrs.h
Go to the documentation of this file.
1/// \file
2/// \brief Code action for flattening nested attribute sets.
3///
4/// Transforms: { foo = { bar = 1; }; } -> { foo.bar = 1; }
5
6#pragma once
7
9
10#include <nixf/Sema/ParentMap.h>
11
12#include <llvm/ADT/StringRef.h>
13
14#include <string>
15#include <vector>
16
17namespace nixf {
18class Node;
19} // namespace nixf
20
21namespace nixd {
22
23/// \brief Add flatten action for nested attribute sets.
24///
25/// This action is offered when the cursor is on a binding whose value is
26/// a non-recursive attribute set. It flattens all nested bindings into
27/// dotted paths.
28void addFlattenAttrsAction(const nixf::Node &N,
29 const nixf::ParentMapAnalysis &PM,
30 const std::string &FileURI, llvm::StringRef Src,
31 std::vector<lspserver::CodeAction> &Actions);
32
33} // namespace nixd
ParentMap analysis.
void addFlattenAttrsAction(const nixf::Node &N, const nixf::ParentMapAnalysis &PM, const std::string &FileURI, llvm::StringRef Src, std::vector< lspserver::CodeAction > &Actions)
Add flatten action for nested attribute sets.