18

I'm trying to get vim to provide some form of jQuery Omnicomplete. I have used ctags to generate tags based ont he jquery js file. After which I have turned on omnicompletion for javascript using

autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS

after which I set the tags variable to the tag file I created

set tags+=~/.vim/tags/jquery

When I open a js file, and use :ta I'm able to find the function I want, but when I try to use omnicompletion, it just doesn't turn up. For example, I took this code from the net to test:

$("input").has(".email").addClass("email_icon");    

In VIM, after typing $("input")., I hit tab(with supertab set up) and has does not turn up, even though I can find it through fuzzy finder or :ta

Any suggestions as to what I can do to resolve this? Thanks!:)

Junxuan Ng
  • 709
  • 1
  • 6
  • 7

3 Answers3

7

Use Mozilla's DoctorJS (formerly jsctags), which is also used in Cloud9 IDE's Ace online editor.

See my answers for this question and this question for more info (install, config, etc.).

Community
  • 1
  • 1
Ory Band
  • 14,716
  • 14
  • 59
  • 66
5

javascriptcomplete#CompleteJS does not use the ctags file for completion.

What you can do is, you can write your own omni-complete function for jQuery, or even better, expand the javascriptcomplete#CompleteJS function defined in /usr/share/vim/vim72/autoload/javascriptcomplete.vim to suit your needs.

ArtBIT
  • 3,931
  • 28
  • 39
  • 2
    By the way, you can access tag-based completion with `C-x C-]`, or have SuperTab try it for you. – ches Aug 22 '11 at 19:03
5

Another way to get javascript autocompletion would be to use mozilla's 'jsctags' project. It generates better tags for javascript than 'exuberant ctags'. Hopefully you'll see more when you use supertab & taglist-plus.

For more info: http://www.discontinuously.com/2011/03/vim-support-javascript-taglist-plus/

xer0x
  • 12,970
  • 5
  • 32
  • 29