23 const auto position = function_signature.rfind(
"::");
24 if (position != std::string_view::npos) function_signature.remove_prefix(position + 2);
25 return function_signature;
27consteval bool starts_with(std::string_view str, std::string_view prefix) {
28 return str.size() >= prefix.size() && str.substr(0, prefix.size()) == prefix;
32 if (function_name.find(
"::enter") != std::string_view::npos)
return true;
37 if (function_name.find(
"::exit") != std::string_view::npos)
return true;
46 std::is_base_of_v<AST::ASTNode, typename T::element_type>;
59 { t.get_program() } -> std::same_as<std::shared_ptr<bpp::bpp_program>>;
60 { t.get_include_stack() } -> std::same_as<const std::vector<std::string>&>;
61 { t.get_source_file() } -> std::same_as<std::string>;
62 { t.get_lsp_mode() } -> std::same_as<bool>;