branch: elpa/swift-mode commit abd6f87aacd5b643a3d181561e6108d61d69db13 Author: taku0 <mxxouy6x3m_git...@tatapa.org> Commit: taku0 <mxxouy6x3m_git...@tatapa.org>
Fix Imenu for open curly braces on its own line Fix https://github.com/swift-emacs/swift-mode/issues/173. --- swift-mode-imenu.el | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/swift-mode-imenu.el b/swift-mode-imenu.el index effdc68..0e171fe 100644 --- a/swift-mode-imenu.el +++ b/swift-mode-imenu.el @@ -109,9 +109,13 @@ Return found declarations in reverse order." (while (not done) (setq next-token (swift-mode:forward-token-or-list-except-curly-bracket)) + (when (and (eq (swift-mode:token:type next-token) 'implicit-\;) + (save-excursion + (swift-mode:skip-whitespaces) + (eq (char-after) ?\{))) + (setq next-token (swift-mode:forward-token))) (setq next-type (swift-mode:token:type next-token)) (setq next-text (swift-mode:token:text next-token)) - (cond ((equal next-text "import") ;; Skips an import kind, for example, "class" token below: @@ -147,7 +151,7 @@ Return found declarations in reverse order." (swift-mode:declaration 'class name-token - (when (eq (swift-mode:token:type next-token) '{) + (when (eq next-type '{) (nreverse (swift-mode:scan-declarations)))) declarations))) @@ -267,6 +271,11 @@ KEYWORD-TOKEN is the keyword beginning the declaration like \"struct\" or (swift-mode:forward-token-or-list-except-curly-bracket)) (not (memq (swift-mode:token:type next-token) '(\; implicit-\; { } outside-of-buffer))))) + (when (and (eq (swift-mode:token:type next-token) 'implicit-\;) + (save-excursion + (swift-mode:skip-whitespaces) + (eq (char-after) ?\{))) + (setq next-token (swift-mode:forward-token))) (swift-mode:declaration (intern (swift-mode:token:text keyword-token)) name-token