Junxuan Ng
Junxuan Ng

Reputation: 709

vim javascript omnicomplete

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!:)

Upvotes: 18

Views: 6536

Answers (3)

Ory Band
Ory Band

Reputation: 15724

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.).

Upvotes: 7

xer0x
xer0x

Reputation: 13156

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/

Upvotes: 5

ArtBIT
ArtBIT

Reputation: 3989

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.

Upvotes: 5

Related Questions