Thanks a lot the completion works quite nicely...

Anyway something brutal like this below already would work if someone
is using auto-complete.
The problem is that variables and functions depend on the version, in theory
is possible to get the list of completions with a shell script but
- it might be time-consuming
- and OS-dependent

Any thoughts about this?
After this first attempt it would be good to show the documentation, and then
I would be already quite satisfied...

(require 'cmake-mode)
(require 'auto-complete)

(add-hook 'cmake-mode-hook
          '(lambda ()
             (add-to-list 'ac-sources 'cmake-command-list)
             (add-to-list 'ac-sources 'cmake-variable-list)))

;; cmake version 2.8.6
;; see how to generate for other things as well

(setq cmake-command-list
'("add_custom_command" "add_custom_target" "add_definitions" "add_dependencies" "add_executable" "add_library" "add_subdirectory" "add_test" "aux_source_directory" "break" "build_command" "cmake_minimum_required" "cmake_policy" "configure_file" "create_test_sourcelist" "define_property" "else" "elseif" "enable_language" "enable_testing" "endforeach" "endfunction" "endif" "endmacro" "endwhile" "execute_process" "export" "file" "find_file" "find_library" "find_package" "find_path" "find_program" "fltk_wrap_ui" "foreach" "function" "get_cmake_property" "get_directory_property" "get_filename_component" "get_property" "get_source_file_property" "get_target_property" "get_test_property" "if" "include" "include_directories" "include_external_msproject" "include_regular_expression" "install" "link_directories" "list" "load_cache" "load_command" "macro" "mark_as_advanced" "math" "message" "option" "project" "qt_wrap_cpp" "qt_wrap_ui" "remove_definitions" "return" "separate_arguments" "set" "set_directory_properties" "set_property" "set_source_files_properties" "set_target_properties" "set_tests_properties" "site_name" "source_group" "string" "target_link_libraries" "try_compile" "try_run" "unset" "variable_watch" "while" "build_name" "exec_program" "export_library_dependencies" "install_files" "install_programs" "install_targets" "link_libraries" "make_directory" "output_required_files" "remove" "subdir_depends" "subdirs" "use_mangled_mesa" "utility_source" "variable_requires" "write_file"))

;; show the documentation of variables too
(setq cmake-variable-list
'("CMAKE_AR" "CMAKE_ARGC" "CMAKE_ARGV0" "CMAKE_BINARY_DIR" "CMAKE_BUILD_TOOL" "CMAKE_CACHEFILE_DIR" "CMAKE_CACHE_MAJOR_VERSION" "CMAKE_CACHE_MINOR_VERSION" "CMAKE_CACHE_PATCH_VERSION" "CMAKE_CFG_INTDIR" "CMAKE_COMMAND" "CMAKE_CROSSCOMPILING" "CMAKE_CTEST_COMMAND" "CMAKE_CURRENT_BINARY_DIR" "CMAKE_CURRENT_LIST_DIR" "CMAKE_CURRENT_LIST_FILE" "CMAKE_CURRENT_LIST_LINE" "CMAKE_CURRENT_SOURCE_DIR" "CMAKE_DL_LIBS" "CMAKE_EDIT_COMMAND" "CMAKE_EXECUTABLE_SUFFIX" "CMAKE_EXTRA_GENERATOR" "CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES" "CMAKE_GENERATOR" "CMAKE_HOME_DIRECTORY" "CMAKE_IMPORT_LIBRARY_PREFIX" "CMAKE_IMPORT_LIBRARY_SUFFIX" "CMAKE_LINK_LIBRARY_SUFFIX" "CMAKE_MAJOR_VERSION" "CMAKE_MAKE_PROGRAM" "CMAKE_MINOR_VERSION" "CMAKE_PARENT_LIST_FILE" "CMAKE_PATCH_VERSION" "CMAKE_PROJECT_NAME" "CMAKE_RANLIB" "CMAKE_ROOT" "CMAKE_SCRIPT_MODE_FILE" "CMAKE_SHARED_LIBRARY_PREFIX" "CMAKE_SHARED_LIBRARY_SUFFIX" "CMAKE_SHARED_MODULE_PREFIX" "CMAKE_SHARED_MODULE_SUFFIX" "CMAKE_SIZEOF_VOID_P" "CMAKE_SKIP_RPATH" "CMAKE_SOURCE_DIR" "CMAKE_STANDARD_LIBRARIES" "CMAKE_STATIC_LIBRARY_PREFIX" "CMAKE_STATIC_LIBRARY_SUFFIX" "CMAKE_TWEAK_VERSION" "CMAKE_USING_VC_FREE_TOOLS" "CMAKE_VERBOSE_MAKEFILE" "CMAKE_VERSION" "PROJECT_BINARY_DIR" "PROJECT_NAME" "PROJECT_SOURCE_DIR" "[Project name]_BINARY_DIR" "[Project name]_SOURCE_DIR" "BUILD_SHARED_LIBS" "CMAKE_BACKWARDS_COMPATIBILITY" "CMAKE_BUILD_TYPE" "CMAKE_COLOR_MAKEFILE" "CMAKE_CONFIGURATION_TYPES" "CMAKE_DISABLE_FIND_PACKAGE_<PackageName>" "CMAKE_FIND_LIBRARY_PREFIXES" "CMAKE_FIND_LIBRARY_SUFFIXES" "CMAKE_IGNORE_PATH" "CMAKE_INCLUDE_PATH" "CMAKE_INSTALL_PREFIX" "CMAKE_LIBRARY_PATH" "CMAKE_MFC_FLAG" "CMAKE_MODULE_PATH" "CMAKE_NOT_USING_CONFIG_FLAGS" "CMAKE_POLICY_DEFAULT_CMP<NNNN>" "CMAKE_PREFIX_PATH" "CMAKE_PROGRAM_PATH" "CMAKE_SKIP_INSTALL_ALL_DEPENDENCY" "CMAKE_SYSTEM_IGNORE_PATH" "CMAKE_SYSTEM_INCLUDE_PATH" "CMAKE_SYSTEM_LIBRARY_PATH" "CMAKE_SYSTEM_PREFIX_PATH" "CMAKE_SYSTEM_PROGRAM_PATH" "CMAKE_USER_MAKE_RULES_OVERRIDE" "APPLE" "BORLAND" "CMAKE_CL_64" "CMAKE_COMPILER_2005" "CMAKE_HOST_APPLE" "CMAKE_HOST_SYSTEM" "CMAKE_HOST_SYSTEM_NAME" "CMAKE_HOST_SYSTEM_PROCESSOR" "CMAKE_HOST_SYSTEM_VERSION" "CMAKE_HOST_UNIX" "CMAKE_HOST_WIN32" "CMAKE_LIBRARY_ARCHITECTURE" "CMAKE_LIBRARY_ARCHITECTURE_REGEX" "CMAKE_OBJECT_PATH_MAX" "CMAKE_SYSTEM" "CMAKE_SYSTEM_NAME" "CMAKE_SYSTEM_PROCESSOR" "CMAKE_SYSTEM_VERSION" "CYGWIN" "MSVC" "MSVC80" "MSVC_IDE" "MSVC_VERSION" "UNIX" "WIN32" "XCODE_VERSION" "CMAKE_<CONFIG>_POSTFIX" "CMAKE_ARCHIVE_OUTPUT_DIRECTORY" "CMAKE_AUTOMOC" "CMAKE_BUILD_WITH_INSTALL_RPATH" "CMAKE_DEBUG_POSTFIX" "CMAKE_EXE_LINKER_FLAGS" "CMAKE_EXE_LINKER_FLAGS_[CMAKE_BUILD_TYPE]" "CMAKE_Fortran_FORMAT" "CMAKE_Fortran_MODULE_DIRECTORY" "CMAKE_INCLUDE_CURRENT_DIR" "CMAKE_INSTALL_NAME_DIR" "CMAKE_INSTALL_RPATH" "CMAKE_INSTALL_RPATH_USE_LINK_PATH" "CMAKE_LIBRARY_OUTPUT_DIRECTORY" "CMAKE_LIBRARY_PATH_FLAG" "CMAKE_LINK_DEF_FILE_FLAG " "CMAKE_LINK_LIBRARY_FILE_FLAG" "CMAKE_LINK_LIBRARY_FLAG" "CMAKE_NO_BUILTIN_CHRPATH" "CMAKE_RUNTIME_OUTPUT_DIRECTORY" "CMAKE_SKIP_BUILD_RPATH" "CMAKE_TRY_COMPILE_CONFIGURATION" "CMAKE_USE_RELATIVE_PATHS" "EXECUTABLE_OUTPUT_PATH" "LIBRARY_OUTPUT_PATH" "CMAKE_<LANG>_ARCHIVE_APPEND" "CMAKE_<LANG>_ARCHIVE_CREATE" "CMAKE_<LANG>_ARCHIVE_FINISH" "CMAKE_<LANG>_COMPILER" "CMAKE_<LANG>_COMPILER_ABI" "CMAKE_<LANG>_COMPILER_ID" "CMAKE_<LANG>_COMPILER_LOADED" "CMAKE_<LANG>_COMPILE_OBJECT" "CMAKE_<LANG>_CREATE_SHARED_LIBRARY" "CMAKE_<LANG>_CREATE_SHARED_MODULE" "CMAKE_<LANG>_CREATE_STATIC_LIBRARY" "CMAKE_<LANG>_FLAGS_DEBUG" "CMAKE_<LANG>_FLAGS_MINSIZEREL" "CMAKE_<LANG>_FLAGS_RELEASE" "CMAKE_<LANG>_FLAGS_RELWITHDEBINFO" "CMAKE_<LANG>_IGNORE_EXTENSIONS" "CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES" "CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES" "CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES" "CMAKE_<LANG>_LIBRARY_ARCHITECTURE" "CMAKE_<LANG>_LINKER_PREFERENCE" "CMAKE_<LANG>_LINKER_PREFERENCE_PROPAGATES" "CMAKE_<LANG>_LINK_EXECUTABLE " "CMAKE_<LANG>_OUTPUT_EXTENSION" "CMAKE_<LANG>_PLATFORM_ID" "CMAKE_<LANG>_SIZEOF_DATA_PTR" "CMAKE_<LANG>_SOURCE_FILE_EXTENSIONS" "CMAKE_COMPILER_IS_GNU<LANG>" "CMAKE_Fortran_MODDIR_DEFAULT" "CMAKE_Fortran_MODDIR_FLAG" "CMAKE_Fortran_MODOUT_FLAG" "CMAKE_INTERNAL_PLATFORM_ABI" "CMAKE_USER_MAKE_RULES_OVERRIDE_<LANG>"))

--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to