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.vimvim8 প্যাকপথের মধ্যে প্রয়োজন 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)