summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXhmikosR <xhmikosr@users.sourceforge.net>2011-01-13 22:59:02 +0000
committerXhmikosR <xhmikosr@users.sourceforge.net>2011-01-13 22:59:02 +0000
commit3efd9b4e70c2e273298070ee7eb8dfc594e6d4df (patch)
tree0ab3794b1b8976cbeece1b0eab9c04a0a2ac429d
parent00b345f56922209bef4a336caf57972281e3abd1 (diff)
downloadnotepad2-mod-3efd9b4e70c2e273298070ee7eb8dfc594e6d4df.zip
notepad2-mod-3efd9b4e70c2e273298070ee7eb8dfc594e6d4df.tar.gz
notepad2-mod-3efd9b4e70c2e273298070ee7eb8dfc594e6d4df.tar.bz2
add syntax highlighting for CMake scripts (thanks goes to sansnom05 for the help regarding CMakeLists.txt)
git-svn-id: https://notepad2-mod.googlecode.com/svn/trunk@379 28bd50df-7adb-d945-0439-6e466c6a13cc
-rw-r--r--Readme-mod.txt4
-rw-r--r--build/makefile.mak2
-rw-r--r--scintilla/src/Catalogue.cxx2
-rw-r--r--src/Notepad2.c4
-rw-r--r--src/Notepad2.vcxproj1
-rw-r--r--src/Notepad2.vcxproj.filters3
-rw-r--r--src/Notepad2_icl12.vcxproj1
-rw-r--r--src/Notepad2_icl12.vcxproj.filters3
-rw-r--r--src/Styles.c57
-rw-r--r--src/Styles.h2
10 files changed, 72 insertions, 7 deletions
diff --git a/Readme-mod.txt b/Readme-mod.txt
index 1cd50c1..af747ec 100644
--- a/Readme-mod.txt
+++ b/Readme-mod.txt
@@ -4,8 +4,8 @@ using patches by Kai Liu and others.
Notable changes:
* Code folding
* Support for bookmarks
-* Syntax highlighting support for AutoHotKey, AutoIt3, Bash, LaTeX, Lua, Ruby,
- Tcl, NSIS and Inno Setup scripts
+* Syntax highlighting support for AutoHotKey, AutoIt3, Bash, CMake, LaTeX, Lua,
+ Ruby, Tcl, NSIS and Inno Setup scripts
* Native x86-64 support
* Support for registry-based Notepad replacement
diff --git a/build/makefile.mak b/build/makefile.mak
index 9effa7f..99ffccf 100644
--- a/build/makefile.mak
+++ b/build/makefile.mak
@@ -83,6 +83,7 @@ SCILEX_OBJ= \
$(OBJDIR)\LexAsm.obj \
$(OBJDIR)\LexAU3.obj \
$(OBJDIR)\LexBash.obj \
+ $(OBJDIR)\LexCmake.obj \
$(OBJDIR)\LexConf.obj \
$(OBJDIR)\LexCPP.obj \
$(OBJDIR)\LexCSS.obj \
@@ -191,6 +192,7 @@ $(OBJDIR)\LexAHK.obj: $(SCILEX)\LexAHK.cxx $(LEX_HEADERS)
$(OBJDIR)\LexAsm.obj: $(SCILEX)\LexAsm.cxx $(LEX_HEADERS)
$(OBJDIR)\LexAU3.obj: $(SCILEX)\LexAU3.cxx $(LEX_HEADERS)
$(OBJDIR)\LexBash.obj: $(SCILEX)\LexBash.cxx $(LEX_HEADERS)
+$(OBJDIR)\LexCmake.obj: $(SCILEX)\LexCmake.cxx $(LEX_HEADERS)
$(OBJDIR)\LexConf.obj: $(SCILEX)\LexConf.cxx $(LEX_HEADERS)
$(OBJDIR)\LexCPP.obj: $(SCILEX)\LexCPP.cxx $(LEX_HEADERS)
$(OBJDIR)\LexCSS.obj: $(SCILEX)\LexCSS.cxx $(LEX_HEADERS)
diff --git a/scintilla/src/Catalogue.cxx b/scintilla/src/Catalogue.cxx
index 758d263..30efb28 100644
--- a/scintilla/src/Catalogue.cxx
+++ b/scintilla/src/Catalogue.cxx
@@ -100,7 +100,7 @@ int Scintilla_LinkLexers() {
// LINK_LEXER(lmCaml);
// LINK_LEXER(lmClw);
// LINK_LEXER(lmClwNoCase);
-// LINK_LEXER(lmCmake);
+ LINK_LEXER(lmCmake);
// LINK_LEXER(lmCOBOL);
LINK_LEXER(lmConf);
LINK_LEXER(lmCPP);
diff --git a/src/Notepad2.c b/src/Notepad2.c
index 384da97..7da01a5 100644
--- a/src/Notepad2.c
+++ b/src/Notepad2.c
@@ -2085,7 +2085,7 @@ void MsgInitMenu(HWND hwnd,WPARAM wParam,LPARAM lParam)
!(i == SCLEX_NULL || i == SCLEX_VBSCRIPT || i == SCLEX_MAKEFILE || i == SCLEX_VB || i == SCLEX_ASM ||
i == SCLEX_SQL || i == SCLEX_PERL || i == SCLEX_PYTHON || i == SCLEX_PROPERTIES ||i == SCLEX_CONF ||
i == SCLEX_POWERSHELL || i == SCLEX_BATCH || i == SCLEX_DIFF || i == SCLEX_BASH || i == SCLEX_TCL ||
- i == SCLEX_AU3 || i == SCLEX_LATEX || i == SCLEX_AHK || i == SCLEX_RUBY));
+ i == SCLEX_AU3 || i == SCLEX_LATEX || i == SCLEX_AHK || i == SCLEX_RUBY || i == SCLEX_CMAKE));
EnableCmd(hmenu,IDM_EDIT_INSERT_ENCODING,*mEncoding[iEncoding].pszParseNames);
@@ -3255,6 +3255,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
case SCLEX_TCL:
case SCLEX_RUBY:
case SCLEX_POWERSHELL:
+ case SCLEX_CMAKE:
SendMessage(hwndEdit,SCI_SETCURSOR,SC_CURSORWAIT,0);
EditToggleLineComments(hwndEdit,L"#",TRUE);
SendMessage(hwndEdit,SCI_SETCURSOR,SC_CURSORNORMAL,0);
@@ -3310,6 +3311,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
case SCLEX_LATEX:
case SCLEX_AHK:
case SCLEX_RUBY:
+ case SCLEX_CMAKE:
break;
case SCLEX_HTML:
case SCLEX_XML:
diff --git a/src/Notepad2.vcxproj b/src/Notepad2.vcxproj
index 7fb3652..b6ae6eb 100644
--- a/src/Notepad2.vcxproj
+++ b/src/Notepad2.vcxproj
@@ -233,6 +233,7 @@ update_version.bat</Command>
<ClCompile Include="..\scintilla\lexers\LexAsm.cxx" />
<ClCompile Include="..\scintilla\lexers\LexAU3.cxx" />
<ClCompile Include="..\scintilla\lexers\LexBash.cxx" />
+ <ClCompile Include="..\scintilla\lexers\LexCmake.cxx" />
<ClCompile Include="..\scintilla\lexers\LexConf.cxx" />
<ClCompile Include="..\scintilla\lexers\LexCPP.cxx" />
<ClCompile Include="..\scintilla\lexers\LexCSS.cxx" />
diff --git a/src/Notepad2.vcxproj.filters b/src/Notepad2.vcxproj.filters
index 04b8f16..b54edb2 100644
--- a/src/Notepad2.vcxproj.filters
+++ b/src/Notepad2.vcxproj.filters
@@ -213,6 +213,9 @@
<ClCompile Include="..\scintilla\win32\ScintillaWin.cxx">
<Filter>Scintilla\win32</Filter>
</ClCompile>
+ <ClCompile Include="..\scintilla\lexers\LexCmake.cxx">
+ <Filter>Scintilla\lexers</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Dialogs.h">
diff --git a/src/Notepad2_icl12.vcxproj b/src/Notepad2_icl12.vcxproj
index 313a143..9b0dbd5 100644
--- a/src/Notepad2_icl12.vcxproj
+++ b/src/Notepad2_icl12.vcxproj
@@ -259,6 +259,7 @@ update_version.bat
<ClCompile Include="..\scintilla\lexers\LexAsm.cxx" />
<ClCompile Include="..\scintilla\lexers\LexAU3.cxx" />
<ClCompile Include="..\scintilla\lexers\LexBash.cxx" />
+ <ClCompile Include="..\scintilla\lexers\LexCmake.cxx" />
<ClCompile Include="..\scintilla\lexers\LexConf.cxx" />
<ClCompile Include="..\scintilla\lexers\LexCPP.cxx" />
<ClCompile Include="..\scintilla\lexers\LexCSS.cxx" />
diff --git a/src/Notepad2_icl12.vcxproj.filters b/src/Notepad2_icl12.vcxproj.filters
index 06b3650..21a4c12 100644
--- a/src/Notepad2_icl12.vcxproj.filters
+++ b/src/Notepad2_icl12.vcxproj.filters
@@ -213,6 +213,9 @@
<ClCompile Include="..\scintilla\win32\ScintillaWin.cxx">
<Filter>Scintilla\win32</Filter>
</ClCompile>
+ <ClCompile Include="..\scintilla\lexers\LexCmake.cxx">
+ <Filter>Scintilla\lexers</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Dialogs.h">
diff --git a/src/Styles.c b/src/Styles.c
index 39c9695..1b3a6ea 100644
--- a/src/Styles.c
+++ b/src/Styles.c
@@ -1472,6 +1472,53 @@ EDITLEXER lexAHK = { SCLEX_AHK, 63305, L"AutoHotKey Script", L"ahk; ia; scriptle
{ -1, 00000, L"", L"", L"" } } };
+KEYWORDLIST KeyWords_CMAKE = {
+"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library "
+"add_subdirectory add_test aux_source_directory build_command build_name cmake_minimum_required "
+"configure_file create_test_sourcelist else elseif enable_language enable_testing endforeach endif "
+"endmacro endwhile exec_program execute_process export_library_dependencies file find_file find_library "
+"find_package find_path find_program fltk_wrap_ui foreach get_cmake_property get_directory_property "
+"get_filename_component get_source_file_property get_target_property get_test_property if include "
+"include_directories include_external_msproject include_regular_expression install install_files "
+"install_programs install_targets link_directories link_libraries list load_cache load_command "
+"macro make_directory mark_as_advanced math message option output_required_files project qt_wrap_cpp "
+"qt_wrap_ui remove remove_definitions separate_arguments set set_directory_properties set_source_files_properties "
+"set_target_properties set_tests_properties site_name source_group string subdir_depends subdirs "
+"target_link_libraries try_compile try_run use_mangled_mesa utility_source variable_requires vtk_make_instantiator "
+"vtk_wrap_java vtk_wrap_python vtk_wrap_tcl while write_file",
+"ABSOLUTE ABSTRACT ADDITIONAL_MAKE_CLEAN_FILES ALL AND APPEND ARGS ASCII BEFORE CACHE CACHE_VARIABLES "
+"CLEAR COMMAND COMMANDS COMMAND_NAME COMMENT COMPARE COMPILE_FLAGS COPYONLY DEFINED DEFINE_SYMBOL "
+"DEPENDS DOC EQUAL ESCAPE_QUOTES EXCLUDE EXCLUDE_FROM_ALL EXISTS EXPORT_MACRO EXT EXTRA_INCLUDE "
+"FATAL_ERROR FILE FILES FORCE FUNCTION GENERATED GLOB GLOB_RECURSE GREATER GROUP_SIZE HEADER_FILE_ONLY "
+"HEADER_LOCATION IMMEDIATE INCLUDES INCLUDE_DIRECTORIES INCLUDE_INTERNALS INCLUDE_REGULAR_EXPRESSION "
+"LESS LINK_DIRECTORIES LINK_FLAGS LOCATION MACOSX_BUNDLE MACROS MAIN_DEPENDENCY MAKE_DIRECTORY MATCH "
+"MATCHALL MATCHES MODULE NAME NAME_WE NOT NOTEQUAL NO_SYSTEM_PATH OBJECT_DEPENDS OPTIONAL OR OUTPUT "
+"OUTPUT_VARIABLE PATH PATHS POST_BUILD POST_INSTALL_SCRIPT PREFIX PREORDER PRE_BUILD PRE_INSTALL_SCRIPT "
+"PRE_LINK PROGRAM PROGRAM_ARGS PROPERTIES QUIET RANGE READ REGEX REGULAR_EXPRESSION REPLACE REQUIRED "
+"RETURN_VALUE RUNTIME_DIRECTORY SEND_ERROR SHARED SOURCES STATIC STATUS STREQUAL STRGREATER STRLESS "
+"SUFFIX TARGET TOLOWER TOUPPER VAR VARIABLES VERSION WIN32 WRAP_EXCLUDE WRITE APPLE MINGW MSYS CYGWIN "
+"BORLAND WATCOM MSVC MSVC_IDE MSVC60 MSVC70 MSVC71 MSVC80 CMAKE_COMPILER_2005 OFF ON",
+"", "", "", "", "", "", "" };
+
+
+EDITLEXER lexCmake = { SCLEX_CMAKE, 63324, L"Cmake Script", L"cmake; ctest", L"", &KeyWords_CMAKE, {
+ { STYLE_DEFAULT, 63126, L"Default", L"", L"" },
+ //{ SCE_CMAKE_DEFAULT, L"Default", L"", L"" },
+ { SCE_CMAKE_COMMENT, 63127, L"Comment", L"fore:#008000", L"" },
+ { MULTI_STYLE(SCE_CMAKE_STRINGDQ,SCE_CMAKE_STRINGLQ,SCE_CMAKE_STRINGRQ,0), 63131, L"String", L"back:#EEEEEE;fore:#7F007F", L"" },
+ { SCE_CMAKE_COMMANDS, 63277, L"Function", L"fore:#00007F", L"" },
+ { SCE_CMAKE_PARAMETERS, 63294, L"Parameter", L"fore:#7F200F", L"" },
+ { SCE_CMAKE_VARIABLE, 63249, L"Variable", L"fore:#CC3300", L"" },
+ { SCE_CMAKE_WHILEDEF, 63325, L"While def", L"fore:#00007F", L"" },
+ { SCE_CMAKE_FOREACHDEF, 63326, L"For each def", L"fore:#00007F", L"" },
+ { SCE_CMAKE_IFDEFINEDEF, 63327, L"If def", L"fore:#00007F", L"" },
+ { SCE_CMAKE_MACRODEF, 63328, L"Macro def", L"fore:#00007F", L"" },
+ { SCE_CMAKE_STRINGVAR, 63329, L"Variable within string", L"back:#EEEEEE;fore:#CC3300", L"" },
+ { SCE_CMAKE_NUMBER, 63130, L"Number", L"fore:#008080", L"" },
+ //{ SCE_CMAKE_USERDEFINED, 63106, L"User Defined", L"fore:#800020", L"" },
+ { -1, 00000, L"", L"", L"" } } };
+
+
// This array holds all the lexers...
// Don't forget to change the number in Style_SetHTMLLexer and Style_SetXMLLexer
// if you change this array
@@ -1487,6 +1534,7 @@ PEDITLEXER pLexArray[NUMLEXERS] =
&lexINI,
&lexCPP,
&lexCS,
+ &lexCmake,
&lexCSS,
&lexDIFF,
&lexINNO,
@@ -2328,6 +2376,11 @@ void Style_SetLexerFromFile(HWND hwnd,LPCWSTR lpszFile)
}
}
+ if (!bFound && lstrcmpi(PathFindFileName(lpszFile),L"cmakelists.txt") == 0) {
+ pLexNew = &lexCmake;
+ bFound = TRUE;
+ }
+
// check associated extensions
if (!bFound) {
if (pLexSniffed = Style_MatchLexer(lpszExt,FALSE)) {
@@ -2400,7 +2453,7 @@ void Style_SetDefaultLexer(HWND hwnd)
//
void Style_SetHTMLLexer(HWND hwnd)
{
- Style_SetLexer(hwnd,pLexArray[30]);
+ Style_SetLexer(hwnd,pLexArray[31]);
}
@@ -2410,7 +2463,7 @@ void Style_SetHTMLLexer(HWND hwnd)
//
void Style_SetXMLLexer(HWND hwnd)
{
- Style_SetLexer(hwnd,pLexArray[31]);
+ Style_SetLexer(hwnd,pLexArray[32]);
}
diff --git a/src/Styles.h b/src/Styles.h
index ea9fde5..2faf6fd 100644
--- a/src/Styles.h
+++ b/src/Styles.h
@@ -55,7 +55,7 @@ typedef struct _editlexer
// Number of Lexers in pLexArray
-#define NUMLEXERS 32
+#define NUMLEXERS 33
void Style_Load();