我的javascript代码看起来像这样:
cs.client.startApplication = function() {
function attachStepHandler() {
var stepNodes = goog.dom.getElementsByClass('step');
function selectActiveElement(element) {
...
我想使用idomenu来选择功能,但没有可用的选择。到目前为止,我正在使用idomenu与elisp,clojure和ruby模式没有问题。
idomenu应该使用javascript模式吗?
答案 0 :(得分:3)
引擎盖idomenu
使用相同的函数来构建函数列表,以imenu
本身的形式呈现。对我来说,imenu
对JavaScript(js-mode
)的效果也不好,这就是为什么我这样推出了自己的imenu--generic-function
函数:
(defun mo-js-imenu-make-index ()
(save-excursion
(imenu--generic-function '((nil "function\\s-+\\([^ ]+\\)(" 1)
(nil "\\.\\([^\\. ]+\\)\\s-*=\\s-*function\\s-*(" 1)))))
(defun mo-js-mode-hook ()
(setq imenu-create-index-function 'mo-js-imenu-make-index)
(define-key js-mode-map [?\M-i] 'imenu))
(add-hook 'js-mode-hook 'mo-js-mode-hook)
这很好imenu
,希望扩展名idomenu
能够识别两种类型的函数定义,非面向对象的function someFunc() {…}
和面向对象的函数定义{{1} }。
如果您想详细了解其工作原理,请阅读Emacs帮助中的cls.someFunc = function() {…}
。