X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/eb0374674c8fc9c35474e2cf2880e5035719be06..7d0db9ea6232b0167d9d437fc72a9ee16a028747:/company-cmake.el diff --git a/company-cmake.el b/company-cmake.el index b38ece00a..010df32e4 100644 --- a/company-cmake.el +++ b/company-cmake.el @@ -1,4 +1,4 @@ -;;; company-cmake.el --- company-mode completion back-end for CMake +;;; company-cmake.el --- company-mode completion backend for CMake ;; Copyright (C) 2013-2014 Free Software Foundation, Inc. @@ -29,7 +29,7 @@ (require 'cl-lib) (defgroup company-cmake nil - "Completion back-end for CMake." + "Completion backend for CMake." :group 'company) (defcustom company-cmake-executable @@ -59,9 +59,14 @@ They affect which types of symbols we get completion candidates for.") (defun company-cmake--replace-tags (rlt) (setq rlt (replace-regexp-in-string - "\\(.*\\)\\(.*\\)" - (mapconcat 'identity '("\\1CXX\\2" "\\1C\\2" "\\1G77\\2") "\n") - rlt)) + "\\(.*?\\(IS_GNU\\)?\\)\\(.*\\)" + (lambda (_match) + (mapconcat 'identity + (if (match-beginning 2) + '("\\1CXX\\3" "\\1C\\3" "\\1G77\\3") + '("\\1CXX\\3" "\\1C\\3" "\\1Fortran\\3")) + "\n")) + rlt t)) (setq rlt (replace-regexp-in-string "\\(.*\\)\\(.*\\)" (mapconcat 'identity '("\\1DEBUG\\2" "\\1RELEASE\\2" @@ -123,7 +128,7 @@ They affect which types of symbols we get completion candidates for.") (defun company-cmake--unexpand-candidate (candidate) (cond - ((string-match "^CMAKE_\\(C\\|CXX\\|G77\\)\\(_.*\\)$" candidate) + ((string-match "^CMAKE_\\(C\\|CXX\\|Fortran\\)\\(_.*\\)$" candidate) (setq candidate (concat "CMAKE_" (match-string 2 candidate)))) ;; C flags @@ -131,7 +136,7 @@ They affect which types of symbols we get completion candidates for.") (setq candidate (concat (match-string 1 candidate) "IS_GNU"))) ;; C flags - ((string-match "^\\(.*_\\)OVERRIDE_\\(C\\|CXX\\|G77\\)$" candidate) + ((string-match "^\\(.*_\\)OVERRIDE_\\(C\\|CXX\\|Fortran\\)$" candidate) (setq candidate (concat (match-string 1 candidate) "OVERRIDE_"))) ((string-match "^\\(.*\\)\\(_DEBUG\\|_RELEASE\\|_RELWITHDEBINFO\\|_MINSIZEREL\\)\\(.*\\)$" candidate) @@ -173,7 +178,7 @@ They affect which types of symbols we get completion candidates for.") (point-max)))))) (defun company-cmake (command &optional arg &rest ignored) - "`company-mode' completion back-end for CMake. + "`company-mode' completion backend for CMake. CMake is a cross-platform, open-source make system." (interactive (list 'interactive)) (cl-case command