summaryrefslogtreecommitdiff
path: root/Userland/DevTools
diff options
context:
space:
mode:
authorSam Atkins <atkinssj@serenityos.org>2023-02-28 16:29:49 +0000
committerAndrew Kaster <andrewdkaster@gmail.com>2023-03-04 05:43:43 -0700
commit0d0ad225726be7913433a5e1af93b0a224db65e5 (patch)
tree6cc325c9761719d81e6ec89b6141474c926e9bb2 /Userland/DevTools
parentac824677b877ebeb1264340d8b171a0956cc865b (diff)
downloadserenity-0d0ad225726be7913433a5e1af93b0a224db65e5.zip
HackStudio: Enable CMake syntax highlighting
Diffstat (limited to 'Userland/DevTools')
-rw-r--r--Userland/DevTools/HackStudio/CMakeLists.txt2
-rw-r--r--Userland/DevTools/HackStudio/Editor.cpp4
-rw-r--r--Userland/DevTools/HackStudio/Language.cpp5
-rw-r--r--Userland/DevTools/HackStudio/Language.h1
4 files changed, 10 insertions, 2 deletions
diff --git a/Userland/DevTools/HackStudio/CMakeLists.txt b/Userland/DevTools/HackStudio/CMakeLists.txt
index cb52bdf20d..e012b3a412 100644
--- a/Userland/DevTools/HackStudio/CMakeLists.txt
+++ b/Userland/DevTools/HackStudio/CMakeLists.txt
@@ -55,5 +55,5 @@ set(GENERATED_SOURCES
)
serenity_app(HackStudio ICON app-hack-studio)
-target_link_libraries(HackStudio PRIVATE LibWebView LibWeb LibMarkdown LibGUI LibCpp LibGfx LibCore LibVT LibDebug LibX86 LibDiff LibShell LibSymbolication LibSyntax LibRegex LibSQL LibConfig LibCore LibCoredump LibDesktop LibIPC LibJS LibMain LibThreading)
+target_link_libraries(HackStudio PRIVATE LibWebView LibWeb LibMarkdown LibGUI LibCpp LibCMake LibGfx LibCore LibVT LibDebug LibX86 LibDiff LibShell LibSymbolication LibSyntax LibRegex LibSQL LibConfig LibCore LibCoredump LibDesktop LibIPC LibJS LibMain LibThreading)
add_dependencies(HackStudio CppLanguageServer)
diff --git a/Userland/DevTools/HackStudio/Editor.cpp b/Userland/DevTools/HackStudio/Editor.cpp
index 6cc0a45d6f..4395f3ff5a 100644
--- a/Userland/DevTools/HackStudio/Editor.cpp
+++ b/Userland/DevTools/HackStudio/Editor.cpp
@@ -14,6 +14,7 @@
#include <AK/Debug.h>
#include <AK/JsonParser.h>
#include <AK/LexicalPath.h>
+#include <LibCMake/SyntaxHighlighter.h>
#include <LibConfig/Client.h>
#include <LibCore/DeprecatedFile.h>
#include <LibCore/DirIterator.h>
@@ -637,6 +638,9 @@ void Editor::set_syntax_highlighter_for(CodeDocument const& document)
set_syntax_highlighter(make<Cpp::SyntaxHighlighter>());
break;
+ case Language::CMake:
+ set_syntax_highlighter(make<CMake::SyntaxHighlighter>());
+ break;
case Language::CSS:
set_syntax_highlighter(make<Web::CSS::SyntaxHighlighter>());
break;
diff --git a/Userland/DevTools/HackStudio/Language.cpp b/Userland/DevTools/HackStudio/Language.cpp
index 81ab6a970d..2d5e947fef 100644
--- a/Userland/DevTools/HackStudio/Language.cpp
+++ b/Userland/DevTools/HackStudio/Language.cpp
@@ -5,7 +5,6 @@
*/
#include "Language.h"
-#include <AK/LexicalPath.h>
namespace HackStudio {
@@ -19,6 +18,8 @@ Language language_from_file(LexicalPath const& file)
if (extension == "c" || extension == "cc" || extension == "cxx" || extension == "cpp" || extension == "c++"
|| extension == "h" || extension == "hh" || extension == "hxx" || extension == "hpp" || extension == "h++")
return Language::Cpp;
+ if (extension == "cmake" || (extension == "txt" && file.title() == "CMakeLists"))
+ return Language::CMake;
if (extension == "js" || extension == "mjs" || extension == "json")
return Language::JavaScript;
if (extension == "html" || extension == "htm")
@@ -61,6 +62,8 @@ DeprecatedString language_name_from_file(LexicalPath const& file)
if (extension == "c" || extension == "cc" || extension == "cxx" || extension == "cpp" || extension == "c++"
|| extension == "h" || extension == "hh" || extension == "hxx" || extension == "hpp" || extension == "h++")
return "C++";
+ if (extension == "cmake" || (extension == "txt" && file.title() == "CMakeLists"))
+ return "CMake";
if (extension == "js" || extension == "mjs" || extension == "json")
return "JavaScript";
if (extension == "gml")
diff --git a/Userland/DevTools/HackStudio/Language.h b/Userland/DevTools/HackStudio/Language.h
index 2dc73e6c29..6713e52c05 100644
--- a/Userland/DevTools/HackStudio/Language.h
+++ b/Userland/DevTools/HackStudio/Language.h
@@ -12,6 +12,7 @@
namespace HackStudio {
enum class Language {
Unknown,
+ CMake,
Cpp,
CSS,
JavaScript,