Skip to content

Commit f6dc79d

Browse files
authored
Merge pull request zhoupro#1 from zhoupro/coc
change to language server and coc.nvim
2 parents 802b110 + 6913242 commit f6dc79d

File tree

7 files changed

+61
-135
lines changed

7 files changed

+61
-135
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
### setup
1616
#### ubuntu
1717
```bash
18-
./init.sh --with_php --with_vim_c --with_vim_ycm --with_vim_go --with_java \
18+
./init.sh --with_php --with_c --with_vim_go --with_java \
1919
--with_lua --with_leetcode --with_man --with_dict --with_bash
2020
```
2121
#### mac and centos

helper/option.sh

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
OPT_PHP=
2-
OPT_VIM_C=
3-
OPT_VIM_YCM=
2+
OPT_C=
43
OPT_VIM_GO=
54
OPT_JAVA=
65
OPT_LUA=
@@ -15,8 +14,7 @@ for option
1514
do
1615
case "$option" in
1716
--with_php) OPT_PHP=yes ;;
18-
--with_vim_c) OPT_VIM_C=yes ;;
19-
--with_vim_ycm) OPT_VIM_YCM=yes ;;
17+
--with_c) OPT_C=yes ;;
2018
--with_vim_go) OPT_VIM_GO=yes ;;
2119
--with_java) OPT_JAVA=yes ;;
2220
--with_lua) OPT_LUA=yes ;;

tools/dep/jdtls

Lines changed: 0 additions & 13 deletions
This file was deleted.

tools/dep/ubuntu_init.sh

Lines changed: 38 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@ apt-get install -y gawk curl zsh language-pack-zh-hans language-pack-zh-hans-ba
55
libtool-bin gettext sudo \
66
cmake automake m4 autoconf libtool build-essential pkg-config wamerican \
77
autojump nmap iproute2 net-tools sshfs
8-
98
apt-get remove -y neovim exuberant-ctags
10-
9+
npm install -g yarn
1110
if [ "Y$OPT_MAN" == "Yyes" ];then
1211
[ -f /etc/dpkg/dpkg.cfg.d/excludes ] && rm -rf /etc/dpkg/dpkg.cfg.d/excludes
1312
apt-get install -y \
@@ -25,7 +24,27 @@ if [ "Y$OPT_DICT" == "Yyes" ];then
2524
fi
2625
fi
2726

28-
if [ "Y$OPT_VIM_C" == "Yyes" ];then
27+
#install clangd8 url:https://apt.llvm.org/
28+
if [ "Y$OPT_C" == "Yyes" ];then
29+
! ( grep -F "llvm-toolchain-" /etc/apt/sources.list ) && \
30+
cat >> /etc/apt/sources.list <<END
31+
# clangd
32+
# i386 not available
33+
deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic main
34+
deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic main
35+
# 7
36+
deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-7 main
37+
deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic-7 main
38+
# 8
39+
deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-8 main
40+
deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic-8 main
41+
END
42+
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add - &&\
43+
apt update && apt install -y clang-tools-8 &&\
44+
sudo update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-8 100
45+
fi
46+
47+
if [ "Y$OPT_C" == "Yyes" ];then
2948
apt-get install -y \
3049
valgrind clang-format cscope gdb
3150
fi
@@ -40,8 +59,9 @@ fi
4059
if [ "Y$OPT_PHP" == "Yyes" ];then
4160
sudo npm i -g intelephense
4261
fi
43-
44-
pip install python-language-server
62+
if [ "Y$OPT_PYTHON" == "Yyes" ];then
63+
sudo pip3 install jedi
64+
fi
4565

4666
if [ "Y$OPT_LUA" == "Yyes" ];then
4767
apt install -y lua5.3-dev luarocks lua5.3
@@ -53,15 +73,22 @@ if [ "Y$OPT_FE" == "Yyes" ];then
5373
fi
5474
if [ "Y$OPT_JAVA" == "Yyes" ];then
5575
OLD_DIR=`pwd`
56-
if [ ! -d ~/lsp/eclipse.jdt.ls ];then
57-
mkdir -p ~/lsp/eclipse.jdt.ls && \
58-
cd ~/lsp/eclipse.jdt.ls && \
59-
curl -L https://download.eclipse.org/jdtls/milestones/0.35.0/jdt-language-server-0.35.0-201903142358.tar.gz -O && \
76+
if [ ! -d ~/.config/coc/extensions/coc-java-data/server/config_linux ];then
77+
mkdir -p ~/.config/coc/extensions/coc-java-data/server && \
78+
cd ~/.config/coc/extensions/coc-java-data/server && \
79+
wget https://download.eclipse.org/jdtls/milestones/0.35.0/jdt-language-server-0.35.0-201903142358.tar.gz && \
6080
tar xf jdt-language-server-0.35.0-201903142358.tar.gz && rm jdt-language-server*.tar.gz
6181
fi
62-
rm -rf /usr/local/bin/jdtls
6382
cd $OLD_DIR
64-
cp tools/dep/jdtls /usr/local/bin && chmod u+x /usr/local/bin/jdtls
83+
if [ ! -d /opt/apache-maven-3.6.1 ];then
84+
# install maven
85+
cd /opt && \
86+
wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz && \
87+
tar xf apache-maven-3.6.1-bin.tar.gz && \
88+
export PATH=/opt/apache-maven-3.6.1/bin:$PATH && \
89+
echo "export PATH=\"/opt/apache-maven-3.6.1:$PATH\"" >> "$HOME/.cus_zshrc"
90+
cd $OLD_DIR
91+
fi
6592
fi
6693

6794
# install ripgrep

tools/neovim/coc-settings.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"suggest.triggerAfterInsertEnter": true,
3+
"suggest.noselect": false,
4+
"suggest.timeout": 500,
5+
"suggest.minTriggerInputLength": 2,
6+
"suggest.echodocSupport": true,
7+
"suggest.enablePreview": true
8+
}

tools/neovim/init.vim

Lines changed: 2 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
11
call plug#begin('~/.local/share/nvim/plugged')
2-
"lint
3-
Plug 'w0rp/ale', { 'on': 'ALEToggle' }
4-
"complete
5-
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
6-
"viml complete source
7-
Plug 'Shougo/neco-vim'
8-
"language server
9-
Plug 'autozimu/LanguageClient-neovim', {
10-
\ 'branch': 'next',
11-
\ 'do': 'bash install.sh',
12-
\ }
2+
"complete
3+
Plug 'neoclide/coc.nvim', {'branch': 'release'}
134
"outline
145
Plug 'majutsushi/tagbar'
156
Plug 'vim-airline/vim-airline'
@@ -74,14 +65,6 @@ call plug#end()
7465
let mapleader=","
7566
set noswapfile
7667
map <leader>js :call json_format#parse("l")<cr>
77-
" deoplete
78-
let g:deoplete#enable_at_startup = 1
79-
let g:deoplete#ignore_sources = get(g:, 'deoplete#ignore_sources', {})
80-
set hidden
81-
let g:LanguageClient_diagnosticsEnable = 0
82-
let g:LanguageClient_serverCommands = {
83-
\ 'python': ['pyls'],
84-
\ }
8568
" <TAB>: completion.
8669
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
8770
@@ -101,32 +84,6 @@ map J <Plug>(expand_region_shrink)
10184
map <leader>n :Defx<CR>
10285
map <leader>m :TagbarOpenAutoClose<CR>
10386
104-
" ale-setting {{{
105-
let g:ale_set_highlights = 0
106-
"自定义error和warning图标
107-
let g:ale_sign_error = ''
108-
let g:ale_sign_warning = ''
109-
"打开文件时不进行检查
110-
let g:ale_lint_on_enter = 0
111-
" Set this. Airline will handle the rest.
112-
let g:airline#extensions#ale#enabled = 1
113-
114-
"普通模式下,sp前往上一个错误或警告,sn前往下一个错误或警告
115-
nmap sp <Plug>(ale_previous_wrap)
116-
nmap sn <Plug>(ale_next_wrap)
117-
"<Leader>s触发/关闭语法检查
118-
nmap <Leader>s :ALEToggle<CR>
119-
"<Leader>d查看错误或警告的详细信息
120-
nmap <Leader>d :ALEDetail<CR>
121-
" Only run linters named in ale_linters settings.
122-
let g:ale_linters_explicit = 1
123-
let g:ale_linters = {
124-
\ 'php': ['phpcs','phpmd'],
125-
\ 'sh': ['shellcheck'],
126-
\}
127-
let g:ale_php_phpcs_standard = 'psr2'
128-
" }}}
129-
13087
"----------------------------------------------
13188
" Language: Golang
13289
"----------------------------------------------
@@ -142,7 +99,6 @@ let g:go_highlight_operators = 1
14299
let g:go_highlight_structs = 1
143100
let g:go_highlight_types = 1
144101

145-
"
146102
func! RunProgram()
147103
exec "w"
148104
if &filetype == 'c'
@@ -248,13 +204,6 @@ highlight DbgBreakptLine ctermbg=none ctermfg=none
248204
highlight DbgBreakptSign ctermbg=none ctermfg=10
249205
highlight DbgCurrentLine ctermbg=none ctermfg=none
250206
highlight DbgCurrentSign ctermbg=none ctermfg=red
251-
" Vim-php-cs-fixer
252-
" If you use php-cs-fixer version 2.x
253-
let g:php_cs_fixer_rules = "@PSR2" " options: --rules (default:@PSR2)
254-
let g:php_cs_fixer_php_path = "php" " Path to PHP
255-
let g:php_cs_fixer_enable_default_mapping = 1 " Enable the mapping by default (<leader>pcd)
256-
let g:php_cs_fixer_dry_run = 0 " Call command with dry-run option
257-
let g:php_cs_fixer_verbose = 0 " Return the output of command if 1, else an inline information.
258207
" snips
259208
" UltiSnips 的 tab 键与 YCM 冲突,重新设定
260209
let g:UltiSnipsExpandTrigger="<leader><tab>"
@@ -366,8 +315,6 @@ let s:bot = {
366315
\ }
367316
\ }
368317
let g:vwm#layouts = [s:bot]
369-
"https://github.com/Shougo/deoplete.nvim/issues/440
370-
let g:deoplete#auto_complete_delay = 150
371318

372319
" clang_format
373320
let g:clang_format#style_options = {

tools/neovim/ubuntu_init.sh

Lines changed: 10 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,14 @@
11
#!/bin/bash
2-
3-
function ycm_ins(){
4-
! (grep -F 'YouCompleteMe' ~/.config/nvim/init.vim &>/dev/null ) && \
5-
sed -i "/plug#begin/aPlug 'Valloric/YouCompleteMe'" ~/.config/nvim/init.vim
6-
7-
if [ ! -f ~/.config/nvim/ycm.cpp.py ] ; then
8-
wget https://raw.githubusercontent.com/zhouzheng12/newycm_extra_conf.py/master/ycm.c.py
9-
wget https://raw.githubusercontent.com/zhouzheng12/newycm_extra_conf.py/master/ycm.cpp.py
10-
mkdir -p ~/.config/nvim
11-
cp ycm.c.py ~/.config/nvim/ycm.c.py
12-
cp ycm.cpp.py ~/.config/nvim/ycm.cpp.py
13-
rm -f ycm.c.py ycm.cpp.py
14-
fi
15-
if [ ! -f ~/.local/share/nvim/plugged/YouCompleteMe/third_party/ycmd/ycm_core.so ] ; then
16-
bash ~/.config/nvim/add_swap.sh
17-
pxy python2 ~/.local/share/nvim/plugged/YouCompleteMe/install.py --clang-completer
18-
bash ~/.config/nvim/del_swap.sh
19-
rm -rf ~/.local/share/nvim/plugged/YouCompleteMe/third_party/ycmd/clang_archives
20-
fi
21-
}
22-
232
function c_ins(){
243
! (grep -F 'nvim-gdb' ~/.config/nvim/init.vim &>/dev/null ) && \
254
sed -i "/plug#begin/aPlug 'vim-scripts/a.vim'" ~/.config/nvim/init.vim && \
265
sed -i "/plug#begin/aPlug 'gauteh/vim-cppman'" ~/.config/nvim/init.vim && \
276
sed -i "/plug#begin/aPlug 'rhysd/vim-clang-format'" ~/.config/nvim/init.vim && \
287
sed -i "/plug#begin/aPlug 'sakhnik/nvim-gdb' , { 'branch': 'legacy' }" ~/.config/nvim/init.vim
8+
! ( grep -F "languageserver" ~/.config/nvim/coc-settings.json ) && \
9+
sed -i '/suggest.timeout/i "languageserver": { \n "clangd": { \n "command": "clangd",\n"filetypes": ["c", "cpp", "objc", "objcpp"],\n"args": ["-background-index"]\n }\n },' ~/.config/nvim/coc-settings.json
2910
}
11+
3012
function leetcode_ins(){
3113
! (grep -F 'leetcode' ~/.config/nvim/init.vim &>/dev/null ) && \
3214
pip3 install requests beautifulsoup4 && \
@@ -37,8 +19,7 @@ function python_ins(){
3719
echo "python ins"
3820
}
3921
function java_ins(){
40-
! (grep -F 'jdtls' ~/.config/nvim/init.vim &>/dev/null ) && \
41-
sed -i "/LanguageClient_serverCommands/a \\\\\ 'java': ['/usr/local/bin/jdtls', '-data', getcwd()]," ~/.config/nvim/init.vim
22+
echo "java ins"
4223
}
4324
function lua_ins(){
4425
! (grep -F 'lua-lsp' ~/.config/nvim/init.vim &>/dev/null ) && \
@@ -49,34 +30,21 @@ function bash_ins(){
4930
sed -i "/LanguageClient_serverCommands/a \\\\\ 'sh': ['bash-language-server','start']," ~/.config/nvim/init.vim
5031
}
5132
function fe_ins(){
52-
! (grep -F 'typescript-language-server' ~/.config/nvim/init.vim &>/dev/null ) && \
53-
sed -i "/LanguageClient_serverCommands/a \\\\\ 'css': ['css-languageserver', '--stdio']," ~/.config/nvim/init.vim && \
54-
sed -i "/LanguageClient_serverCommands/a \\\\\ 'less': ['css-languageserver', '--stdio']," ~/.config/nvim/init.vim && \
55-
sed -i "/LanguageClient_serverCommands/a \\\\\ 'sass': ['css-languageserver', '--stdio']," ~/.config/nvim/init.vim && \
56-
sed -i "/LanguageClient_serverCommands/a \\\\\ 'javascript': ['typescript-language-server', '--stdio']," ~/.config/nvim/init.vim && \
57-
sed -i "/LanguageClient_serverCommands/a \\\\\ 'javascript.jsx': ['typescript-language-server', '--stdio']," ~/.config/nvim/init.vim && \
58-
sed -i "/LanguageClient_serverCommands/a \\\\\ 'typescript': ['typescript-language-server', '--stdio']," ~/.config/nvim/init.vim && \
59-
sed -i "/LanguageClient_serverCommands/a \\\\\ 'typescript.tsx': ['typescript-language-server', '--stdio']," ~/.config/nvim/init.vim
33+
echo "fe"
6034
}
6135

6236
function go_ins(){
63-
! (grep -F 'deoplete-go' ~/.config/nvim/init.vim &>/dev/null ) && \
64-
sed -i "/plug#begin/aPlug 'fatih/vim-go'" ~/.config/nvim/init.vim &&\
65-
sed -i "/plug#begin/aPlug 'buoto/gotests-vim'" ~/.config/nvim/init.vim &&\
66-
sed -i "/plug#begin/aPlug 'zchee/deoplete-go', { 'do': 'make'}" ~/.config/nvim/init.vim &&\
37+
! (grep -F 'sebdah/vim-delve' ~/.config/nvim/init.vim &>/dev/null ) && \
6738
sed -i "/plug#begin/aPlug 'sebdah/vim-delve'" ~/.config/nvim/init.vim
6839
if which go;then
69-
pxy nvim +'GoInstallBinaries' +qall
7040
pxy go get -u github.com/derekparker/delve/cmd/dlv
71-
pxy go get -u github.com/mdempsky/gocode
72-
pxy go get -u github.com/cweill/gotests/...
41+
pxy go get -u golang.org/x/tools/cmd/gopls
7342
fi
7443
}
7544

7645
function php_ins(){
77-
! (grep -F 'intelephense' ~/.config/nvim/init.vim &>/dev/null ) && \
46+
! (grep -F 'vim-php-cs-fixer' ~/.config/nvim/init.vim &>/dev/null ) && \
7847
sed -i "/plug#begin/aPlug 'stephpy/vim-php-cs-fixer'" ~/.config/nvim/init.vim && \
79-
sed -i "/LanguageClient_serverCommands/a\\\\\ 'php': ['intelephense', '--stdio']," ~/.config/nvim/init.vim && \
8048
sed -i "/plug#begin/aPlug 'vim-vdebug/vdebug'" ~/.config/nvim/init.vim
8149
cat > /usr/local/bin/phpxd <<END
8250
#!/bin/zsh
@@ -126,6 +94,7 @@ rm -f ~/.config/nvim/init.vim
12694
#common config
12795
mkdir -p ~/.config/nvim
12896
cp tools/neovim/init.vim ~/.config/nvim/init.vim
97+
cp tools/neovim/coc-settings.json ~/.config/nvim/coc-settings.json
12998
# copy
13099
if nmap localhost -p 8377 | grep open 2>/dev/null;then
131100
sed -in 's#NCHOST#localhost#g' ~/.config/nvim/init.vim
@@ -149,13 +118,10 @@ if [ "Y$OPT_PHP" == "Yyes" ];then
149118
php_ins
150119
fi
151120

152-
if [ "Y$OPT_VIM_C" == "Yyes" ];then
121+
if [ "Y$OPT_C" == "Yyes" ];then
153122
c_ins
154123
fi
155124

156-
if [ "Y$OPT_VIM_YCM" == "Yyes" ];then
157-
ycm_ins
158-
fi
159125

160126
if [ "Y$OPT_LUA" == "Yyes" ];then
161127
lua_ins
@@ -305,10 +271,3 @@ if [ "Y$OPT_DICT" == "Yyes" ];then
305271
nmap <leader>w :call QuerySel() <CR>
306272
END
307273
fi
308-
309-
! ( grep -F "deoplete#custom#source('ultisnips', 'rank', 1000)" ~/.config/nvim/init.vim ) && \
310-
cat >> ~/.config/nvim/init.vim <<END
311-
call deoplete#custom#source('ultisnips', 'rank', 1000)
312-
call deoplete#custom#option('sources', {
313-
\ 'sh': []})
314-
END

0 commit comments

Comments
 (0)