suoto/vim-hdl

Allow building files while setup runs in background

suoto opened this issue · 1 comments

suoto commented

When Vim is opened, vim_client.VimhdlClient.setup is run in a thread and calls to vim_client.VimhdlClient.buildByPath are locked until setup completes.

  • Implement a database inside project_builder.ProjectBuilder, taking into account errors (currently this is ignored)
  • Allow vim_client.VimhdlClient.buildByPath to be run while vim_client.VimhdlClient.buildByDependency is active
  • Shell calls called by compilers.base_compiler.BaseCompiler must be queued to avoid consistency errors by the compiler (it may not handle multiple threads accessing its internal DB)

Expected result:

  • Open Vim with nothing built (this will trigger background build)
  • While the build is running, build the current file
    • If dependencies have already been built, build it
    • If dependencies haven't been built, warn the user (don't wait until dependencies are met)
suoto commented

Issue has been implemented as of c936db8. Misc crashes fixed after that due to poor exception handling inside threads but most have been fixed as well.