branch: externals/phps-mode commit 66edaca1c581017c066500f3aa196ac140931fcb Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Improved lexing of comment version doc comment --- phps-mode-lexer.el | 14 ++++++++------ phps-mode-test-lexer.el | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/phps-mode-lexer.el b/phps-mode-lexer.el index f2e887c..95ce874 100644 --- a/phps-mode-lexer.el +++ b/phps-mode-lexer.el @@ -1316,16 +1316,18 @@ (lambda() (let* ((start (match-beginning 0)) (end (match-end 0)) - (_data (buffer-substring-no-properties start end))) + (_data (buffer-substring-no-properties start end)) + (doc-com (looking-at-p (concat "/\\*\\*" phps-mode-lexer-WHITESPACE)))) (let ((string-start (search-forward "*/" nil t)) position) (if string-start - (setq position string-start) + (if doc-com + (phps-mode-lexer-RETURN_TOKEN 'T_DOC_COMMENT start (match-end 0)) + (phps-mode-lexer-RETURN_TOKEN 'T_COMMENT start (match-end 0))) (progn - (setq position (point-max)) - (phps-mode-lexer-MOVE_FORWARD (point-max)))) - (phps-mode-lexer-RETURN_TOKEN 'T_DOC_COMMENT start position) - )))) + (display-warning "phps-mode" "PHPs Lexer Error - Unterminated comment starting at %s" start) + (phps-mode-lexer-RETURN_TOKEN 'T_ERROR start (point-max)) + (phps-mode-lexer-MOVE_FORWARD (point-max)))))))) (phps-mode-lexer-re2c-rule (and ST_IN_SCRIPTING (looking-at "\\?>\n?")) diff --git a/phps-mode-test-lexer.el b/phps-mode-test-lexer.el index d201484..364ab75 100644 --- a/phps-mode-test-lexer.el +++ b/phps-mode-test-lexer.el @@ -178,7 +178,7 @@ (phps-mode-test-with-buffer "<?php\n/*my comment */\n/** my doc comment */" "Comment vs doc-comment" - (message "Tokens: %s" (phps-mode-lexer-get-tokens)) + ;; (message "Tokens: %s" (phps-mode-lexer-get-tokens)) (should (equal (phps-mode-lexer-get-tokens) '((T_OPEN_TAG 1 . 7) (T_COMMENT 7 . 22) (T_DOC_COMMENT 23 . 44)))))