#ifndef completion_hh_INCLUDED #define completion_hh_INCLUDED #include #include #include "units.hh" namespace Kakoune { class Context; class String; using CandidateList = std::vector; struct Completions { CandidateList candidates; ByteCount start; ByteCount end; Completions() : start(0), end(0) {} Completions(ByteCount start, ByteCount end) : start(start), end(end) {} Completions(ByteCount start, ByteCount end, CandidateList candidates) : start(start), end(end), candidates(std::move(candidates)) {} }; enum class CompletionFlags { None, Fast }; using Completer = std::function; inline Completions complete_nothing(const Context& context, CompletionFlags, const String&, ByteCount cursor_pos) { return Completions(cursor_pos, cursor_pos); } Completions shell_complete(const Context& context, CompletionFlags, const String&, ByteCount cursor_pos); } #endif // completion_hh_INCLUDED