Language.cpp 2.1 KB

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