diff options
author | XhmikosR <xhmikosr@users.sourceforge.net> | 2011-01-13 22:59:02 +0000 |
---|---|---|
committer | XhmikosR <xhmikosr@users.sourceforge.net> | 2011-01-13 22:59:02 +0000 |
commit | 3efd9b4e70c2e273298070ee7eb8dfc594e6d4df (patch) | |
tree | 0ab3794b1b8976cbeece1b0eab9c04a0a2ac429d | |
parent | 00b345f56922209bef4a336caf57972281e3abd1 (diff) | |
download | notepad2-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.txt | 4 | ||||
-rw-r--r-- | build/makefile.mak | 2 | ||||
-rw-r--r-- | scintilla/src/Catalogue.cxx | 2 | ||||
-rw-r--r-- | src/Notepad2.c | 4 | ||||
-rw-r--r-- | src/Notepad2.vcxproj | 1 | ||||
-rw-r--r-- | src/Notepad2.vcxproj.filters | 3 | ||||
-rw-r--r-- | src/Notepad2_icl12.vcxproj | 1 | ||||
-rw-r--r-- | src/Notepad2_icl12.vcxproj.filters | 3 | ||||
-rw-r--r-- | src/Styles.c | 57 | ||||
-rw-r--r-- | src/Styles.h | 2 |
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();
|