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

Git Clone URL: https://aur.archlinux.org/neovim-youcompleteme-core-git.git (read-only, click to copy)
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: Morguldir
Last Packager: yan12125_2
Votes: 8
Popularity: 0.74
First Submitted: 2017-01-08 06:52
Last Updated: 2019-06-29 12:30

Dependencies (21)

Required by (0)

Sources (3)

Latest Comments

1 2 Next › Last »

Ferdi265 commented on 2019-11-25 19:13

This package currently doesn't find the Python 3.8 libs; at least not when also having installed the python3.7 AUR package.

However, it still installs its libraries into the 3.8 site-packages directory, leading to the problem that YCMD tries to either load a 3.7 module from 3.8, or doesn't find the dependency libraries from 3.7 (those were only installed for 3.8).

The fix is already in upstream YCMD, so updating submodules using git submodule update --remote fixes this:

https://gist.github.com/Ferdi265/7aeb5c468dee7db6e2c7015ec945f7ee

yan12125 commented on 2019-11-15 10:18

Orphaned as I have jumped to coc.nvim a while ago.

buttcake commented on 2019-09-29 02:33

@yan12125 Thanks, it's all cleared up now.

yan12125 commented on 2019-09-28 16:21

Hi @buttcake thanks for the interest!

Why is this named *-core when it's ycmd ?

I call it "core" as this package does not include language-specific completers, which are listed in optional dependencies instead.

Are ycmd and the compiled part of YouCompleteMe (ycm core) the same thing ?

Not quite the same. ycmd also includes some Python scripts besides the compiled part (ycmd_core.so).

Are all the python deps required ? I don't see them in the ycmd readme.

Yes. In the official install script, those dependencies are vendored (third_party folder of ycmd). Most likely that's why they are not mentioned in ycmd's readme.

I'm honestly looking for a way to have the compiled part installed globally and the plugin installed locally since if it's globally I can handle it with a package.

I'm afraid this is far from what you need. This package includes both language-independent parts of the plugin and the compiled part.

By the way, there was pull requests that tried to decouple ycmd and YouCompleteMe but all of them are abandoned (https://github.com/ycm-core/YouCompleteMe/pulls?utf8=%E2%9C%93&q=is%3Apr+decouple+YCM+and+ycmd+is%3Aclosed+). If such an effort succeeds in the future, I will create another package ycmd-core-git. That might be closer to what you want.

Are you waiting for this to get solved before you update the pkgbuild ? https://github.com/ycm-core/ycmd/issues/1289

Yes. There is already a pull request https://github.com/ycm-core/ycmd/pull/1282, which still needs some improvements.

buttcake commented on 2019-09-27 04:38

I just found out about ycm and I'm confused.

Why is this named *-core when it's ycmd ? Are ycmd and the compiled part of YouCompleteMe (ycm core) the same thing ? Are all the python deps required ? I don't see them in the ycmd readme.

I'm honestly looking for a way to have the compiled part installed globally and the plugin installed locally since if it's globally I can handle it with a package.

Are you waiting for this to get solved before you update the pkgbuild ? https://github.com/ycm-core/ycmd/issues/1289

staletic commented on 2019-07-19 13:21

Hello, I'm one of YCM's maintainers.

There's quite a few dependencies wrong here:

  • gocode and godef have been replaced by gopls.
  • clang>=6.0 should be clang>=7.0 to be able to compile.
  • racerd has been replaced with rls.
  • YCM has migrated to OmniSharp-Roslyn, so you can use it as a dependency as well.

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