Package Details: neovim-youcompleteme-core-git r2532.d556a43c-2

Git Clone URL: https://aur.archlinux.org/neovim-youcompleteme-core-git.git (read-only)
Package Base: neovim-youcompleteme-core-git
Description: A code-completion engine for Vim
Upstream URL: https://valloric.github.io/YouCompleteMe/
Licenses: GPL3
Submitter: yan12125
Maintainer: yan12125 (yan12125_2)
Last Packager: yan12125_2
Votes: 7
Popularity: 0.756326
First Submitted: 2017-01-08 06:52
Last Updated: 2019-06-29 12:30

Dependencies (21)

Required by (0)

Sources (3)

Latest Comments

cap_sensitive commented on 2019-06-30 03:29

You are absolutely correct. Obviously I forgot to update my remote computer. Now everything works like a charm.

Many thanks!

yan12125 commented on 2019-06-30 00:22

I think clang_rsrc_dir.patch already fixes the GetClangResourceDir() function?

cap_sensitive commented on 2019-06-29 22:30

By the way, I think this is technically an upstream bug. But since we are using system clang, I believe we are not officially supported. Still, maybe I should just file this issue as an upstream bug?

cap_sensitive commented on 2019-06-29 22:23

Thanks for the fast update! However, the main problem remains:

ln -s /usr/lib/clang "$pkg_ycmd_dir/third_party/clang/lib/clang"

You are symbolic linking all files under /usr/lib/clang, so the $pkg_ycmd_dir/third_party/clang/lib/clang looks like:

$ ls /usr/share/nvim/runtime/third_party/ycmd/third_party/clang/lib/clang
c++-analyzer  ccc-analyzer  8.0.0

But YCM expects that all entities inside that directory are directories. Take a look at https://github.com/ycm-core/ycmd/blob/master/ycmd/utils.py:

def GetClangResourceDir():
  resource_dir = os.path.join( LIBCLANG_DIR, 'clang' )
  for version in ListDirectory( resource_dir ):
    return os.path.join( resource_dir, version )

  raise RuntimeError( 'Cannot find Clang resource directory.' )

It just returns the first entity, and use that as --resource-dir. So some of my computer, when using clang, instead of clangd, would have the following flags:

 Flags: ['-Wall', '-Wextra', '-Wno-long-long', '-Wno-variadic-macros', '-fexceptions', '-ferror-limit=10000', '-DNDEBUG', '-std=c++17', '-xc++', '-I', '/usr/lib/', '
-I', '/usr/include/-I', '-I', '/usr/include/c++/9.1.0/x86_64-pc-linux-gnu', '-I', '-resource-dir=/usr/share/nvim/runtime/third_party/ycmd/third_part
y/clang/lib/clang/c++-analyzer', '-fspell-checking']

I guess to workaround that, we should only link the 8.0.0 folder, and skip both c++-analyzer and ccc-analyzer.

I purpose the following change:

  install -Ddm755 "$pkg_ycmd_dir/third_party/clang/lib/"
  ln -s /usr/lib/libclang.so "$pkg_ycmd_dir/third_party/clang/lib/libclang.so"
  install -Ddm755 "$pkg_ycmd_dir/third_party/clang/lib/clang"
  ln -s /usr/lib/clang/* "$pkg_ycmd_dir/third_party/clang/lib/clang"
  rm -rf $pkg_ycmd_dir/third_party/clang/lib/clang/{c++,ccc}-analyzer

yan12125 commented on 2019-06-29 12:32

Thank you for identification of the problem! Could you check whether the latest commit works or not?

Or, maybe, not use system clang?

I don't have such a plan - a major guideline for this specific package is using system libraries/binaries as much as possible.

cap_sensitive commented on 2019-06-29 04:54

Just realized that my suggestion won't work: It will try to actually delete the system files.

I guess we can:

  1. Manually link the content of the clang folder
  2. Or, maybe, not use system clang?

cap_sensitive commented on 2019-06-29 04:28

For the second part, I'd like to suggest the following modification:

  install -Ddm755 "$pkg_ycmd_dir/third_party/clang/lib"
  ln -s /usr/lib/* "$pkg_ycmd_dir/third_party/clang/lib"
  rm -rf $pkg_ycmd_dir/third_party/clang/lib/clang/{c++,ccc}-analyzer

cap_sensitive commented on 2019-06-29 02:33

Hi,

The github repositories have been migrated to: https://github.com/ycm-core/ycmd https://github.com/ycm-core/YouCompleteMe

Even though github automatic redirection still works (for now), I think it's better to use the canonical urls

Also, /usr/lib/clang now contains two executable files: c++-analyzer ccc-analyzer

But YouCompleteMe assumes that $pkg_ycmd_dir/third_party/clang/lib contains folder only. Could you link the folder under the /usr/lib/clang only?

Thanks!

ChoromPotro commented on 2017-08-16 08:56

Works perfect, thanks !