Merge topic 'UpdateEmacsMode-bug0013548'

301e67e cmake-mode.el: add local keybindings
6d1e4ef cmake-mode.el: Use more readable regex and case-fold-search
This commit is contained in:
David Cole 2012-09-25 15:17:35 -04:00 committed by CMake Topic Stage
commit 8e29b375c4
1 changed files with 20 additions and 3 deletions

View File

@ -68,9 +68,9 @@ set the path with these commands:
"\\|" "[ \t\r\n]" "\\|" "[ \t\r\n]"
"\\)*")) "\\)*"))
(defconst cmake-regex-block-open (defconst cmake-regex-block-open
"^\\([iI][fF]\\|[mM][aA][cC][rR][oO]\\|[fF][oO][rR][eE][aA][cC][hH]\\|[eE][lL][sS][eE]\\|[eE][lL][sS][eE][iI][fF]\\|[wW][hH][iI][lL][eE]\\|[fF][uU][nN][cC][tT][iI][oO][nN]\\)$") "^\\(if\\|macro\\|foreach\\|else\\|elseif\\|while\\|function\\)$")
(defconst cmake-regex-block-close (defconst cmake-regex-block-close
"^[ \t]*\\([eE][nN][dD][iI][fF]\\|[eE][nN][dD][fF][oO][rR][eE][aA][cC][hH]\\|[eE][nN][dD][mM][aA][cC][rR][oO]\\|[eE][lL][sS][eE]\\|[eE][lL][sS][eE][iI][fF]\\|[eE][nN][dD][wW][hH][iI][lL][eE]\\|[eE][nN][dD][fF][uU][nN][cC][tT][iI][oO][nN]\\)[ \t]*(") "^[ \t]*\\(endif\\|endforeach\\|endmacro\\|else\\|elseif\\|endwhile\\|endfunction\\)[ \t]*(")
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------
@ -126,6 +126,7 @@ set the path with these commands:
(beginning-of-line) (beginning-of-line)
(let ((point-start (point)) (let ((point-start (point))
(case-fold-search t) ;; case-insensitive
token) token)
; Search back for the last indented line. ; Search back for the last indented line.
@ -229,13 +230,26 @@ the indentation. Otherwise it retains the same position on the line"
;; ;;
(defvar cmake-tab-width 2) (defvar cmake-tab-width 2)
;;
;; Keymap.
;;
(defvar cmake-mode-map
(let ((map (make-sparse-keymap)))
(define-key map "\C-ch" 'cmake-help-command)
(define-key map "\C-cl" 'cmake-help-list-commands)
(define-key map "\C-cu" 'unscreamify-cmake-buffer)
map)
"Keymap used in cmake-mode buffers.")
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------
;; ;;
;; CMake mode startup function. ;; CMake mode startup function.
;; ;;
(defun cmake-mode () (defun cmake-mode ()
"Major mode for editing CMake listfiles." "Major mode for editing CMake listfiles.
\\{cmake-mode-map}"
(interactive) (interactive)
(kill-all-local-variables) (kill-all-local-variables)
(setq major-mode 'cmake-mode) (setq major-mode 'cmake-mode)
@ -262,6 +276,9 @@ the indentation. Otherwise it retains the same position on the line"
(make-local-variable 'comment-start) (make-local-variable 'comment-start)
(setq comment-start "#") (setq comment-start "#")
; Setup keymap.
(use-local-map cmake-mode-map)
; Run user hooks. ; Run user hooks.
(run-hooks 'cmake-mode-hook)) (run-hooks 'cmake-mode-hook))