简体   繁体   中英

Vim Javascript Autocompletion + Suggestions?

I'm developing on top of OpenLayers.js. My project folder is structured as follows:

project /
    |-- OpenLayers.js
    |-- map.html
    |-- map.js
    \-- etc

As you can argue, when I start a new map project, I espect suggestions from Vim on how to complete the code, reading JS classes from all the libraries in the project folder (in this case, just OpenLayers.js ).

Eg:

map = new OpenLayers. --> <C-x><C-o>
map = new OpenLayers.Bounds
                    .Control
                    .Map

Selecting one of the suggested classes I should get a kind of autocompletion, like in Aptana. I've installed AutoComplPop and I get a nice automatic menu to select suggestions, but all of them are taken from the current JS file.

Anyway, I've correctly set up Tagbar + node.js + jsctags and I've generated tags file for my project, and added set tags=./tags,./../tags,./*/tags to my .vimrc .

In this case, also, Tagbar maps the current file JS structure but doesn't offer any mapping of the classes coming from other files.

Another probably relevant line in my .vimrc :

autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS

I'm struggling to get class and subclass suggestions and now I'm getting a bit confused with all the plugins/piece of software available.

Any hint? Thank you guys :)

Check out YouCompleteMe and tern_for_vim .

Here's an article about using them together.

Your expectations are a bit too high. Vim is not an IDE like Aptana and the mechanisms used to provide completion are crude.

Did you check that your tags file has OpenLayers.Bounds , OpenLayers.Control or OpenLayer.Map ? I can't find OpenLayer.Map and, going through the OpenLayer.debug.js I can't find this function either.

TagBar only works with the current buffer. If you want to show tags for other windows/buffers you'll need another older plugin: TagList.

AutoComplPop doesn't support JS out of the box. How did you set it up? Here is how I did but it still uses <Cx><Co> while completion from tags is done with <Cx><C-]> .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM