clangd
ওভারলোডেড ফাংশনগুলির মধ্যে একটি ব্যবহৃত হয় এমন কোনও লাইন থেকে সঠিক সংজ্ঞাটি অনুসন্ধান করার সময় আমি ওভারলোডেড ফাংশনগুলি আসলে আলাদা করা যায় কিনা তা পরীক্ষা করে দেখেছি। আমার ন্যূনতম পরীক্ষার কনফিগারেশনটিতে ভিআইএম প্লাগইন ব্যবহার করে vim-lsp
এটি কাজ করে।
ন্যূনতম কনফিগারেশন
$MYVIMRC
হয়
source $VIMRUNTIME/defaults.vim
if executable('/usr/local/Cellar/llvm/7.0.0/bin/clangd')
augroup Clangd
autocmd User lsp_setup call lsp#register_server({
\ 'name': 'clangd',
\ 'cmd': {server_info->['/usr/local/Cellar/llvm/7.0.0/bin/clangd']},
\ 'whitelist': ['c', 'cpp', 'objc', 'objcpp'],
\ })
autocmd FileType c,cpp,objc,objcpp nmap <buffer> gd <plug>(lsp-definition)
autocmd FileType c,cpp,objc,objcpp setlocal omnifunc=lsp#complete
augroup END
endif
vim-lsp
যার ইনস্টলেশন async.vim
vim8 প্যাকপথের মধ্যে প্রয়োজন into
$ cd ~/.vim
$ git clone https://github.com/prabirshrestha/async.vim pack/prabirshrestha/start/async.vim/
$ git clone https://github.com/prabirshrestha/vim-lsp pack/prabirshrestha/start/vim-lsp/
এখন আপনার ভিএম কনফিগারেশনটি দেখতে হবে (আরও গভীরভাবে নেস্ট করা ফাইল এবং ফোল্ডার বাদ দেওয়া)
~/.vim
❯ tree -L 4 -F
.
├── pack/
│ └── prabirshrestha/
│ └── start/
│ ├── async.vim/
│ └── vim-lsp/
└── vimrc
5 directories, 1 file
পরীক্ষা
এখন সিপিপি ফাইল বিবেচনা করুন
void abc(int a, int b) {
}
void abc(int a, int b, int c) {
}
int main(int argc, char const *argv[])
{
abc(1,2);
abc(1,2,3);
return 0;
}
টিপলে gd
উপর abc
এর
abc(1,2)
প্রথম লাইনে লাফ দেয়, এবং এর
abc(1,2,3)
পঞ্চম লাইনে লাফ দেয়।
পরিবেশ এবং সংস্করণ:
vim
: ম্যাকভিম 8.1.950 (155); থেকে DMG হলো থেকে ইনস্টল GitHub MacOS 10.14.3 উপর
clangd
: 7.0.0; ইনস্টল করা $ brew install llvm
( $PATH
ডিফল্ট হিসাবে নয়, নিখুঁত পাথ ব্যবহার করুন)
vim-lsp
: e3f6933 (মার্চ 7, 2019) এবং async.vim
: f301455 (ফেব্রুয়ারী 13, 2019)