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.115930
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 »

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

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?