[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/raku-mode 0f053e21f2 146/253: now have a working solution
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/raku-mode 0f053e21f2 146/253: now have a working solution for an Index imenu for subs and vars |
Date: |
Sat, 29 Jan 2022 08:28:50 -0500 (EST) |
branch: elpa/raku-mode
commit 0f053e21f29af4566b63000834d4ca5079277f2a
Author: Tom Browder <tom.browder@gmail.com>
Commit: Tom Browder <tom.browder@gmail.com>
now have a working solution for an Index imenu for subs and vars
---
perl6-imenu.el | 40 ++++++++++++++++++++++++++++++++++++++++
perl6-mode.el | 3 ++-
2 files changed, 42 insertions(+), 1 deletion(-)
diff --git a/perl6-imenu.el b/perl6-imenu.el
new file mode 100644
index 0000000000..89184491de
--- /dev/null
+++ b/perl6-imenu.el
@@ -0,0 +1,40 @@
+;;; perl6-imenu.el --- Imenu support Perl 6 -*- lexical-binding: t; -*-
+
+;;; Commentary:
+
+
+;; Imenu functions and variables are defined here.
+(defvar perl6-imenu-generic-expression
+ '(
+ ;; the names are in reverse desired order since they are evaluated here
last first
+ ("Variables"
"^\\s-*\\(?:my\\|our\\)\\s-+\\(\\(?:\\$\\|@\\|%\\)\\(?:[_[:alnum:]]+\\)\\)" 1)
+ ("Subs/Methods"
"^\\s-*\\(?:my\\|our\\)\\s-+\\(?:sub\\|method\\|multi-method\\)\\s-+\\(.+)\\)"
1)
+ )
+ "Define interesting points in the Perl 6 buffer for `imenu'.
+
+This is used to set `imenu-generic-expression' when Perl 6 mode is
+entered. Subsequent changes to `perl6-imenu-generic-expression' will
+not affect existing Perl 6 buffers because imenu-generic-expression is
+a local variable.")
+
+;; Add imenu support for perl6-mode. Note that imenu-generic-expression
+;; is buffer-local, so we don't need a local-variable for it.
+(setq imenu-generic-expression perl6-imenu-generic-expression
+ imenu-case-fold-search nil)
+
+;; Imenu support
+(setq imenu-auto-rescan t)
+(add-hook 'perl6-mode-hook 'imenu-add-menubar-index)
+(add-hook 'perl6-mode-hook
+ (lambda ()
+ (setq imenu-generic-expression perl6-imenu-generic-expression)))
+
+;;===========================
+(provide 'perl6-imenu)
+
+;; Local Variables:
+;; coding: utf-8
+;; indent-tabs-mode: nil
+;; End:
+
+;;; perl6-imenu.el ends here
diff --git a/perl6-mode.el b/perl6-mode.el
index 67c5853a8d..25538dac07 100644
--- a/perl6-mode.el
+++ b/perl6-mode.el
@@ -41,6 +41,7 @@
(require 'perl6-detect)
(require 'perl6-font-lock)
(require 'perl6-indent)
+(require 'perl6-imenu)
;;;###autoload
(define-derived-mode perl6-mode prog-mode "Perl6"
@@ -55,7 +56,7 @@
(setq-local comment-start-skip "#+ *")
(setq-local comment-use-syntax t)
(setq-local comment-end "")
- ;; Indentation
+ ;; Indentation
(smie-setup perl6-smie-grammar #'perl6-smie-rules
:forward-token #'perl6-smie--forward-token
:backward-token #'perl6-smie--backward-token))
- [nongnu] elpa/raku-mode 0dd62e4d1f 217/253: Add missing 's' to parent customization group name., (continued)
- [nongnu] elpa/raku-mode 0dd62e4d1f 217/253: Add missing 's' to parent customization group name., ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode 13ebcd87ce 220/253: trivial change Perl 6 to Raku, plus temp change of URL meanwhile, ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode 98db56c6ec 212/253: Add some clarifying comments., ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode acc516e76d 225/253: Uncomment code blocks in POD., ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode 341c898848 029/253: Add note about electricity, ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode e7a3770427 008/253: Recommend `:defer t` with use-package, ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode 032fa40e1b 068/253: Highlight [RSXZ] metaoperators, ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode e8111ebbdf 106/253: Factor metaoperator regex into a reusable part, ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode bfccfac15a 090/253: Alter priority of metaoperator highlighting, ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode d9682fb331 098/253: Highlight regex/rule/token even when not followed by an identifier, ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode 0f053e21f2 146/253: now have a working solution for an Index imenu for subs and vars,
ELPA Syncer <=
- [nongnu] elpa/raku-mode 14073feeb0 161/253: Don't highlight hyperops starting with << and «« as strings, ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode 0bd2a09663 153/253: add vars moved from perl6-imenu.el per comments from syohex, ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode 4f1e2928d2 158/253: add more generalization with more defined regexes, remove commented out old code, ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode aa3a58e4c5 162/253: "Map" type highlighting, ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode 4867c6d268 181/253: add example state var, ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode 0d2dfb04c1 178/253: Remove pointer to original repo's bug tracker, ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode 5a7cc0d425 173/253: Let's see what's going on, ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode 2e622f86e0 202/253: Change perl6-repl command to run-perl6, ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode bcdd53e9ec 201/253: Merge remote-tracking branch 'origin/master' into repl, ELPA Syncer, 2022/01/29
- [nongnu] elpa/raku-mode 0be91cc76e 204/253: Fix cask instalation on travis-ci, ELPA Syncer, 2022/01/29