AdamNiederer / AdamNiederer/vue-mode

Better imenu to show functions and data

Open
#58 5 comments 2 reactions 0 assignees View on GitHub
enhancement
Dominant language
Emacs Lisp
Stars
341
Forks
59
PR merge metrics
No merged PRs in 30d

Description

Hi,
Currently the imenu shows some html tags. I'd like it to show javascript functions, and possibly different sub-menus for computed properties or methods.

I tried something but it is unclear to me how to add regular imenu entries.

I have a regexp, checked with the regexp-builder:

(setq imenu-generic-expression
'(("methods" "^\\s-*\\([a-zA-Z0-9_]+\\): function" 1)))

I don't know how to override the existing entries and use just that. I tried:

(add-hook 'vue-mode-hook
(lambda ()
(set (make-local-variable imenu-generic-expression)
'(("methods" "^\\s-*\\([a-zA-Z0-9_]+\\): function" 1))
)))

as discussed on emacswiki and [SE](https://emacs.stackexchange.com/questions/10105/imenu-generic-regexp-for-css-less) and as seen in a couple of other packages, with no luck.

An example file:

```
data: function() {
return {
page: 1,
};
},

props: {
title: String,
url: String,
},

computed: {
entries() {
log("hello");
},

methods: {
previousPage: function () {
// ...
},

```
there would be functions and data to catch, hence a few imenu regexps to write.

Any ideas ?

imenu doc: https://www.gnu.org/software/emacs/manual/html_node/elisp/Imenu.html

**edit**: I tried what you can see in the following commit.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.