diff --git a/DevTools/HackStudio/Project.cpp b/DevTools/HackStudio/Project.cpp index 8ff6a13a06..d994cc80ee 100644 --- a/DevTools/HackStudio/Project.cpp +++ b/DevTools/HackStudio/Project.cpp @@ -302,11 +302,32 @@ RefPtr Project::get_file(const String& filename) String Project::default_file() const { - if (m_type == ProjectType::Cpp) - return "main.cpp"; + if (m_files.size() > 0) { + if (m_type != ProjectType::Unknown) { + StringView extension; + switch (m_type) { + case ProjectType::Cpp: + extension = ".cpp"; + break; + case ProjectType::JavaScript: + extension = ".js"; + break; + default: + ASSERT_NOT_REACHED(); + } + + auto project_file = m_files.find([&](auto project_file) { + return project_file->name().ends_with(extension); + }); + + if (!project_file.is_end()) { + auto& file = *project_file; + return file->name(); + } + } - if (m_files.size() > 0) return m_files.first().name(); + } ASSERT_NOT_REACHED(); }