Language.cpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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 == "c" || extension == "cc" || extension == "cxx" || extension == "cpp" || extension == "c++"
  12. || extension == "h" || extension == "hh" || extension == "hxx" || extension == "hpp" || extension == "h++")
  13. return Language::Cpp;
  14. if (extension == "js" || extension == "mjs" || extension == "json")
  15. return Language::JavaScript;
  16. if (extension == "html" || extension == "htm")
  17. return Language::HTML;
  18. if (extension == "css")
  19. return Language::CSS;
  20. if (extension == "gml")
  21. return Language::GML;
  22. if (extension == "ini" || extension == "af")
  23. return Language::Ini;
  24. if (extension == "sh" || extension == "bash")
  25. return Language::Shell;
  26. if (extension == "sql")
  27. return Language::SQL;
  28. return Language::Unknown;
  29. }
  30. Language language_from_name(const String& name)
  31. {
  32. if (name == "Cpp")
  33. return Language::Cpp;
  34. if (name == "Javascript")
  35. return Language::JavaScript;
  36. if (name == "Shell")
  37. return Language::Shell;
  38. return Language::Unknown;
  39. }
  40. String language_name_from_file_extension(const String& extension)
  41. {
  42. VERIFY(!extension.starts_with("."));
  43. if (extension == "c" || extension == "cc" || extension == "cxx" || extension == "cpp" || extension == "c++"
  44. || extension == "h" || extension == "hh" || extension == "hxx" || extension == "hpp" || extension == "h++")
  45. return "C++";
  46. if (extension == "js" || extension == "mjs" || extension == "json")
  47. return "JavaScript";
  48. if (extension == "gml")
  49. return "GML";
  50. if (extension == "ini")
  51. return "Ini";
  52. if (extension == "sh" || extension == "bash")
  53. return "Shell";
  54. if (extension == "md")
  55. return "Markdown";
  56. if (extension == "html" || extension == "htm")
  57. return "HTML";
  58. if (extension == "css")
  59. return "CSS";
  60. if (extension == "sql")
  61. return "SQL";
  62. if (extension == "txt")
  63. return "Plaintext";
  64. return "Unknown";
  65. }
  66. }