質問

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

E.g.:

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

役に立ちましたか?

解決

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 <C-x><C-o> while completion from tags is done with <C-x><C-]>.

他のヒント

Check out YouCompleteMe and tern_for_vim.

Here's an article about using them together.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top