Language.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*
  2. * Copyright (c) 2020, the SerenityOS developers.
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include "Language.h"
  7. namespace HackStudio {
  8. Language language_from_file_extension(const String& extension)
  9. {
  10. VERIFY(!extension.starts_with("."));
  11. if (extension == "cpp" || extension == "h")
  12. return Language::Cpp;
  13. else if (extension == "js" || extension == "json")
  14. return Language::JavaScript;
  15. else if (extension == "html" || extension == "htm")
  16. return Language::HTML;
  17. else if (extension == "gml")
  18. return Language::GML;
  19. else if (extension == "ini")
  20. return Language::Ini;
  21. else if (extension == "sh" || extension == "bash")
  22. return Language::Shell;
  23. else if (extension == "sql")
  24. return Language::SQL;
  25. return Language::Unknown;
  26. }
  27. Language language_from_name(const String& name)
  28. {
  29. if (name == "Cpp")
  30. return Language::Cpp;
  31. if (name == "Javascript")
  32. return Language::JavaScript;
  33. if (name == "Shell")
  34. return Language::Shell;
  35. return Language::Unknown;
  36. }
  37. String language_name_from_file_extension(const String& extension)
  38. {
  39. VERIFY(!extension.starts_with("."));
  40. if (extension == "cpp" || extension == "h")
  41. return "C++";
  42. else if (extension == "js" || extension == "json")
  43. return "JavaScript";
  44. else if (extension == "gml")
  45. return "GML";
  46. else if (extension == "ini")
  47. return "Ini";
  48. else if (extension == "sh" || extension == "bash")
  49. return "Shell";
  50. else if (extension == "md")
  51. return "Markdown";
  52. else if (extension == "html" || extension == "htm")
  53. return "HTML";
  54. else if (extension == "sql")
  55. return "SQL";
  56. else if (extension == "txt")
  57. return "Plaintext";
  58. return "Unknown";
  59. }
  60. }