==CMake Editor Modes==
There are CMake syntax highlighting and indentation supports for many editors:
This has [https://..com/cmake///doc/Editors ].
* '''[http://www.eclipse.org/cdt/ Eclipse]''' There are two plugins for Eclipse:
** The [https://github.com/15knots/cmakeed CMakeEd] plugin for Eclipse provides syntax coloring and content assist for editing CMakeLists.txt and any file ending in a .cmake extension. It also integrates the CMake command reference documentation into the Eclipse Help system. This plugin does NOT do project management for you or generate CMake files for you. You are still responsible for this part. CMakeEd just makes writing the CMakeLists.txt files easier. Unfortunately, the built-in documentation has not been updated for several years and is badly out of date.
** The [https:// marketplace. eclipse.org/content/cmake4eclipse cmake4eclipse] plugin generates the build scripts when you build the project from eclipse -- no need to manually invoke cmake with the CDT generator. It does not provide project management, your <tt>CMakeLists.txt</tt> files control the build. The plugin comes with a Language Settings Provider that feeds (non standard) include paths and pre-processor symbols defined in your CMake scripts to the CDT-Indexer.
** The [http://www.cmakebuilder.com / CMakeBuilder] plugin provides a user friendly interface to easily manage CMake-based projects, with the following features: advanced parser, Advanced CMake outline, CMakeBuilder perspective, symbol table and environment inspector, CMake files editor with syntax highlighting, code assist, wizard-oriented project management, Project Nature CMakeBuilder for CDT projects, and incremental project builders.<br>As of 2017, this '''seems to be [https://marketplace.eclipse.org/content/cmakebuilder dead]''': No downloads page, apparently no downloads in the past year.
** More plugins can be found in the '''[https://marketplace.eclipse.org/search/site/cmake Eclipse Marketplace]'''.
* Eclipse C/C++ Development Tooling (CDT) 9.2.0 claims to provide an experimental [https://projects.eclipse.org/projects/tools.cdt/releases/9.2.0 CMake feature].
** '''[[Eclipse_CDT4_Generator|Here]]''' you find documentation how to use the Eclipse CDT project generator of CMake.
** '''[[CMake:Eclipse_UNIX_Tutorial|Here]]''' you find documentation how to use Eclipse with the regular Makefile generator of CMake (for versions < 2.6 of CMake).
* '''[http://www.kdevelop.org KDevelop 4]''' supports CMake-based projects natively.
* '''[https://www.jetbrains.com/clion/ CLion]''', though not free, uses CMake-based projects natively.
* '''[http://qt-project.org/ wiki/ category:tools::qtcreator QtCreator]''' supports CMake-based projects [https://qt-project.org/doc /qtcreator-2.8/creator-project-cmake.html natively since version 1.1].
* '''[http://www.netbeans.org NetBeans]''' supports CMake-based projects [http://forums.netbeans.org/ntopic26390.html natively since version 6.8].
* '''[http://www.gnu.org/software/emacs Emacs]''': See the [[CMake/Editors /Emacs|CMake Emacs Support]] page.
* '''Enscript''' [http://tristancarel.com/pub/patches/enscript/cmake.st syntax highlighting rules]. To enable it:
*# copy <tt>cmake.st</tt> in the <tt>hl/</tt> directory.
*#add the following in the <tt>namerules</tt> section of the <tt>hl/enscript.st</tt> file:
* '''[http://www.lugaru.com Epsilon]''' has a CMake [http://lugaru.com/ftp/for-v13/cmake.e extension] that supports syntax highlighting, indentation, and auto-completion of expressions for control statements such as if-else-endif, foreach-endforeach, and while-endwhile.
* '''[http://www.geany.org Geany]''' added CMake support in [http://www.geany.org/Main/20090215 version 0.16]
* '''[http://kate.kde.org Kate]''', '''KWrite''', '''[http://www.kdevelop.org KDevelop]''' and all other [http://www.kde.org KDE] applications, which use the kate text-editing component support cmake syntax highlighting since KDE 3.4.
* '''NEdit''' [http://www.cmake.org/Wiki/images/c/c6/NEditCMakeHighlighting-0001.tar.gz syntax highlighting support] was added by [http://public.kitware.com/pipermail/cmake/2007-May/014267.html Philippe Poilbarbe]
* '''[http://notepad-plus.sourceforge.net/uk/site.htm Notepad++]''' added CMake support in version 4.1
* '''[http://scintilla.sourceforge.net/SciTEDownload.html SciTE]''' version 1.73 has CMake support. To enable the feature edit SciTEGlobal.Properties and remove the comment before the CMake lines.
* '''[http://www.sublimetext.com/ Sublime Text]''' Sublime Text is a sophisticated text editor for code, markup and prose. You'll love the slick user interface, extraordinary features and amazing performance. CMake synatx support is provided through the [https://sublime.wbond.net/ Package Control] and the [https://sublime.wbond.net/packages/CMake CMake Package].
* '''[http://www.macromates.com TextMate]''' is a wonderful text editor for OS X. [http://www.bluequartz.net/binaries/CMake.tmbundle.zip CMake Bundle]. This plugin adds syntax highlighting for CMake files and rudimentary completion for command, properties and cmake variables.
* '''UltraEdit''' syntax highlighting [http://www.cmake.org/Wiki/images/5/56/UltraEditWordfile.tar.gz word file.]
* '''VIM''' [http://cmake.org/gitweb?p=cmake.git;a=blob_plain;hb=master;f=Docs/cmake-syntax.vim syntax highlighting] and [http://cmake.org/gitweb?p=cmake.git;a=blob_plain;hb=master;f=Docs/cmake-indent.vim indentation mode]. To enable indentation, copy indentation file to your .vim/indent directory, syntax highlighting file to your .vim/syntax directory and add the following to your .vimrc:
:autocmd BufRead,BufNewFile *.cmake,CMakeLists.txt,*.cmake.in runtime! indent/cmake.vim
:autocmd BufRead,BufNewFile *.cmake,CMakeLists.txt,*.cmake.in setf cmake
:autocmd BufRead,BufNewFile *.ctest,*.ctest.in setf cmake
* '''Visual Studio 2010 Professional''' and above have two extensions available for editing CMake files. [http://code.google.com/p/vissemee Vissemee] provides syntax highlighting for CMake. [http://cmaketools.codeplex.com CMake Tools for Visual Studio] provides both syntax highlighting and IntelliSense for CMake.
* '''Visual Studio 2017''' and above [https://blogs.msdn.microsoft.com/vcblog/2016/10/05/cmake-support-in-visual-studio/ natively support] CMake projects.
==Creating New Editor Mode==
The best way to start is to check the logic in existing ones. Make sure to enable indentation for files that match the following file names: