summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2003-06-19 15:11:54 (GMT)
committerBrad King <brad.king@kitware.com>2003-06-19 15:11:54 (GMT)
commita7cde5c0052a5ebb0b44b0f9d2baa6335c4fe95c (patch)
treefe475e331dc717fcf583c4680dc8727bf65fb013
parentcc3b1932bea4cd919cdf2e52b18ec5fbc28850d2 (diff)
downloadCMake-a7cde5c0052a5ebb0b44b0f9d2baa6335c4fe95c.zip
CMake-a7cde5c0052a5ebb0b44b0f9d2baa6335c4fe95c.tar.gz
CMake-a7cde5c0052a5ebb0b44b0f9d2baa6335c4fe95c.tar.bz2
ENH: Wrote more robust regular expressions for indenting.
-rw-r--r--Docs/cmake-mode.el14
1 files changed, 12 insertions, 2 deletions
diff --git a/Docs/cmake-mode.el b/Docs/cmake-mode.el
index cbb12c4..9571ac5 100644
--- a/Docs/cmake-mode.el
+++ b/Docs/cmake-mode.el
@@ -12,9 +12,19 @@
(defvar cmake-tab-width 2)
; Regular expressions used by line indentation function.
+(defconst cmake-regex-quoted "\"\\([^\n\"\\\\]\\|\\\\.\\)*\"")
+(defconst cmake-regex-unquoted "\\([^\n \t()\\\\]\\|\\\\.\\)+")
+(defconst cmake-regex-arguments (concat "\\(" cmake-regex-quoted
+ "\\|" cmake-regex-unquoted
+ "\\|[ \t]\\)*"))
+(defconst cmake-regex-comment "\\(#[^\n]*\\)?")
+(defconst cmake-regex-identifier "[A-Za-z][A-Za-z0-9_]*")
(defconst cmake-indent-blank-regex "^[ \t]*$")
-(defconst cmake-indent-open-regex "^[^()\n]*([^()\n]*\\(#[^\n]*\\)?\n")
-(defconst cmake-indent-close-regex "^[^()\n]*)[ \t]*\\(#[^\n]*\\)?\n")
+(defconst cmake-indent-open-regex (concat "^[ \t]*" cmake-regex-identifier
+ "[ \t]*(" cmake-regex-arguments
+ cmake-indent-comment-regex "\n"))
+(defconst cmake-indent-close-regex (concat "^" cmake-regex-arguments
+ ")[ \t]*" cmake-indent-comment-regex "\n"))
(defconst cmake-indent-begin-regex "^[ \t]*\\(IF\\|MACRO\\|FOREACH\\|ELSE\\)")
(defconst cmake-indent-end-regex "^[ \t]*\\(ENDIF\\|ENDFOREACH\\|ENDMACRO\\|ELSE\\)")