hoshi-lang dev
Yet another programming language
Loading...
Searching...
No Matches
completion.h
Go to the documentation of this file.
1//
2// Completion Provider for hoshi-lang LSP
3//
4
5#ifndef HOSHI_LANG_LSP_COMPLETION_H
6#define HOSHI_LANG_LSP_COMPLETION_H
7
8#include "protocol.h"
9#include "document.h"
10
11namespace lsp {
12
14public:
15 CompletionList provide(Document *doc, const Position &pos);
16
17private:
18 std::vector<CompletionItem> keywordCompletions(const std::string &prefix);
19 std::vector<CompletionItem> useModuleCompletions(Document *doc, const std::string &prefix);
20 std::vector<CompletionItem> usePathCompletions(Document *doc, const std::string &pathPrefix);
21 std::vector<CompletionItem> symbolCompletions(Document *doc, const std::string &prefix,
22 int cursorLine);
23 std::vector<CompletionItem> crossModuleCompletions(Document *doc, const std::string &prefix);
24 std::vector<CompletionItem> memberCompletions(Document *doc, const std::string &parent, const std::string &prefix, int cursorLine = -1);
25 std::vector<CompletionItem> resolveModuleCompletionsFromText(Document *doc, const std::string &parent, const std::string &prefix);
26 std::vector<CompletionItem> completionsForType(Document *doc, const yoi::wstr &typeName, const std::string &prefix);
27 std::vector<CompletionItem> completionsForTypeNameFromModules(Document *doc, const std::string &typeName, const std::string &prefix);
29};
30
31} // namespace lsp
32
33#endif // HOSHI_LANG_LSP_COMPLETION_H
std::vector< CompletionItem > completionsForType(Document *doc, const yoi::wstr &typeName, const std::string &prefix)
std::vector< CompletionItem > usePathCompletions(Document *doc, const std::string &pathPrefix)
std::vector< CompletionItem > completionsForTypeNameFromModules(Document *doc, const std::string &typeName, const std::string &prefix)
std::vector< CompletionItem > keywordCompletions(const std::string &prefix)
CompletionList provide(Document *doc, const Position &pos)
std::vector< CompletionItem > resolveModuleCompletionsFromText(Document *doc, const std::string &parent, const std::string &prefix)
std::vector< CompletionItem > symbolCompletions(Document *doc, const std::string &prefix, int cursorLine)
std::vector< CompletionItem > crossModuleCompletions(Document *doc, const std::string &prefix)
CompletionItem symbolToCompletionItem(const Symbol &sym)
std::vector< CompletionItem > memberCompletions(Document *doc, const std::string &parent, const std::string &prefix, int cursorLine=-1)
std::vector< CompletionItem > useModuleCompletions(Document *doc, const std::string &prefix)
std::wstring wstr
Definition def.hpp:51