       ;; just in comments). To do the highlighting intelligently, install the
       ;; `fic-mode' package - https://github.com/lewang/fic-mode
 
-      ;; ;; Enable orgstruct mode
-      ;; (setq-local orgstruct-heading-prefix-regexp "//; ")
-      ;; (turn-on-orgstruct++)
-
-      (with-eval-after-load 'imenu
-        (setq imenu-generic-expression
-              (append imenu-generic-expression
-                      modi/verilog-imenu-generic-expression)))
-
       ;; Replace tabs with spaces when saving files in verilog-mode
       (add-hook 'before-save-hook #'modi/untabify-buffer nil :local)
 
+;;;; imenu + outshine
       (with-eval-after-load 'outshine
-        ;; Force the `imenu-generic-expression' to contain
-        ;; `modi/verilog-imenu-generic-expression' for `verilog-mode' by making
-        ;; sure that `modi/verilog-outshine-imenu' is *appended* to
-        ;; `outline-minor-mode-hook' after `outshine-hook-function'.
-        (when (member 'outshine-hook-function outline-minor-mode-hook)
-          (add-hook 'outline-minor-mode-hook
-                    #'modi/verilog-outshine-imenu :append :local))))
+        (defun modi/verilog-outshine-imenu-generic-expression (&rest _)
+          "Update `imenu-generic-expression' when using outshine."
+          (setq-local imenu-generic-expression
+                      (append '(("*Level 1*"
+                                 "^// \\* \\(?1:.*$\\)" 1)
+                                ("*Level 2*"
+                                 "^// \\*\\* \\(?1:.*$\\)" 1)
+                                ("*Level 3*"
+                                 "^// \\*\\* \\(?1:.*$\\)" 1))
+                              verilog-imenu-generic-expression)))
+        (advice-add 'outshine-hook-function :after
+                    #'modi/verilog-outshine-imenu-generic-expression)))
 
     ;; *Append* `my/verilog-mode-customizations' to `verilog-mode-hook' so that
     ;; that function is run very last of all other functions added to that hook.

;;    modi/verilog-jump-to-module-at-point (interactive)
;;    modi/verilog-find-parent-module (interactive)
;;    my/verilog-selective-indent
;;  imenu support
;;  hideshow
;;  hydra-verilog-template
;;  my/verilog-mode-customizations
;;  Key bindings

(use-package verilog-mode

      ("q"   nil nil :color blue)
      ("C-g" nil nil :color blue))

;;; abbrev
    ;; Reset the verilog-mode abbrev table
    (with-eval-after-load 'abbrev
      (clear-abbrev-table verilog-mode-abbrev-table))

;;; my/verilog-mode-customizations
    (defun my/verilog-mode-customizations ()
