eirikpre / VSCode-SystemVerilog

SystemVerilog support in VS Code
MIT License
128 stars 50 forks source link

Indexing Always on Open #83

Closed Alex-Mann closed 4 years ago

Alex-Mann commented 4 years ago

I am using VSCode remote ssh extension to edit some files. Each time I connect, the extension reindexes and just hammers my CPU. Is there a way to cache results so that it doesn't reindex everything each time I connect, but rather does things incrementally?

eirikpre commented 4 years ago

Unfortunately, I do not have a nice way to store the data in-between opens.

But you can turn off auto-indexing on startup with the disableIndexing setting. Then if you want indexing, click on SystemVerilog on the status bar.

Alex-Mann commented 4 years ago

I have no idea what the underlying implementation looks like.. but is there any possibility of storing a cache like data structure in a file and periodically updating it so that the indexing doesn't start from square one? Or is the current implementation not really conducive to something like this?

eirikpre commented 4 years ago

Think I figured it out, I published a patch. Can you test it for me? :) Ps turn off disableIndexing

Alex-Mann commented 4 years ago

Sure, how do I pull the changes of the patch into the extension? Or have you already pushed?

eirikpre commented 4 years ago

It should update shortly on the marketplace, it is usually up in less than 10 min. Then you just need to reload. You should be able to check the version in the extension sidebar, new one is 0.9.7

Alex-Mann commented 4 years ago

Alright so I've updated everything, but if i disable indexing I no longer get the cmd+click to view other modules right?

eirikpre commented 4 years ago

If the object you're looking up is in the same file, it should find it. Also, it does incremental indexing when you open verilog files.

Right now it stores the state after full blown indexation, it's probably better to store it on workspaceClose to get the incremental objects too..

eirikpre commented 4 years ago

After some trying out, I think it works. Added saving the indexed objects on incremental updates too.

Alex-Mann commented 4 years ago

So should I keep indexing disabled or can I now turn it back on? I'm still a little unclear on what the setting should be.

Really glad to hear that it's working for you though. I am working with a massive design so the indexing effectively crippled my Macbook Pro.

eirikpre commented 4 years ago

That is up to you. If you keep indexing disabled, indexing will not trigger automatically when you open previously un-indexed folders/workspaces. However, it will use the saved data from already indexed workspaces regardless of that setting.

If you would like to always control indexing by yourself, i would suggest keeping it disabled and click the statusbar when you would like to index (and that database will carry over next time you open that workspace/folder)

Alex-Mann commented 4 years ago

I see. But in the event that indexing is enabled, is there a check to determine what to re-index (so that you don't reindex files that have not changed since the last index)? This would suffice so that on start up it doesn't always reindex everything over again if it hasn't changed.

eirikpre commented 4 years ago

This feature will make it so that if it finds the cache from last time you opened the folder/workspace, it will not run indexing. (but instead use the cache) :)