21 using OptionMapTy = std::map<std::string, std::unique_ptr<AttrSetClientProc>>;
24 std::unique_ptr<OwnedEvalClient> Eval;
27 std::unique_ptr<AttrSetClientProc> NixpkgsEval;
29 std::mutex OptionsLock;
43 void evalExprWithProgress(AttrSetClient &Client,
const EvalExprParams &Params,
44 std::string_view Description);
50 std::mutex ConfigLock;
55 WorkspaceConfiguration;
63 void updateConfig(Configuration NewConfig);
72 CreateWorkDoneProgress;
77 llvm::unique_function<void(
79 BeginWorkDoneProgress;
81 void beginWorkDoneProgress(
85 BeginWorkDoneProgress(Params);
88 llvm::unique_function<void(
90 ReportWorkDoneProgress;
92 void reportWorkDoneProgress(
96 ReportWorkDoneProgress(Params);
99 llvm::unique_function<void(
103 void endWorkDoneProgress(
106 EndWorkDoneProgress(Params);
110 llvm::StringMap<std::shared_ptr<NixTU>> TUs;
113 std::shared_ptr<NixTU> getTU(std::string
File,
116 std::lock_guard G(TUsLock);
117 if (!TUs.count(
File)) [[unlikely]] {
126 std::shared_ptr<nixf::Node> getAST(
const NixTU &TU,
137 boost::asio::thread_pool Pool;
141 std::optional<int64_t> Version);
150 bool ReceivedShutdown =
false;
169 void onDocumentSymbol(
194 void onDocumentHighlight(
202 std::set<nixf::Diagnostic::DiagnosticKind>
203 SuppressedDiagnostics;
205 std::mutex SuppressedDiagnosticsLock;
209 void updateSuppressed(
const std::vector<std::string> &Sup);
212 bool isSuppressed(nixf::Diagnostic::DiagnosticKind Kind);
214 std::optional<int64_t> Version, std::string_view Src,
215 const std::vector<nixf::Diagnostic> &Diagnostics);
229 void onDidChangeConfiguration(
233 Controller(std::unique_ptr<lspserver::InboundPort> In,
234 std::unique_ptr<lspserver::OutboundPort> Out);