Skip to content

Commit f302ad7

Browse files
committed
use language server for most language
1 parent 4748e1f commit f302ad7

File tree

5 files changed

+78
-42
lines changed

5 files changed

+78
-42
lines changed

helper/option.sh

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,23 @@ OPT_LEETCODE=
1010
OPT_MAN=
1111
OPT_DICT=
1212
OPT_BASH=
13+
OPT_FE=
1314

1415
for option
1516
do
16-
case "$option" in
17-
--with_vim_php) OPT_VIM_PHP=yes ;;
18-
--with_vim_c) OPT_VIM_C=yes ;;
19-
--with_vim_ycm) OPT_VIM_YCM=yes ;;
20-
--with_vim_lua) OPT_VIM_LUA=yes ;;
21-
--with_vim_go) OPT_VIM_GO=yes ;;
22-
--with_java) OPT_JAVA=yes ;;
23-
--with_lua) OPT_LUA=yes ;;
24-
--with_python) OPT_PYTHON=yes ;;
25-
--with_leetcode) OPT_LEETCODE=yes ;;
26-
--with_man) OPT_MAN=yes ;;
27-
--with_dict) OPT_DICT=yes ;;
28-
--with_bash) OPT_BASH=yes ;;
17+
case "$option" in
18+
--with_vim_php) OPT_VIM_PHP=yes ;;
19+
--with_vim_c) OPT_VIM_C=yes ;;
20+
--with_vim_ycm) OPT_VIM_YCM=yes ;;
21+
--with_vim_lua) OPT_VIM_LUA=yes ;;
22+
--with_vim_go) OPT_VIM_GO=yes ;;
23+
--with_java) OPT_JAVA=yes ;;
24+
--with_lua) OPT_LUA=yes ;;
25+
--with_python) OPT_PYTHON=yes ;;
26+
--with_leetcode) OPT_LEETCODE=yes ;;
27+
--with_man) OPT_MAN=yes ;;
28+
--with_dict) OPT_DICT=yes ;;
29+
--with_bash) OPT_BASH=yes ;;
30+
--with_fe) OPT_FE=yes ;;
2931
esac
3032
done

tools/dep/jdtls

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/usr/bin/env sh
2+
3+
server="/root/lsp"
4+
5+
java \
6+
-Declipse.application=org.eclipse.jdt.ls.core.id1 \
7+
-Dosgi.bundles.defaultStartLevel=4 \
8+
-Declipse.product=org.eclipse.jdt.ls.core.product \
9+
-noverify \
10+
-Xms1G \
11+
-jar $server/eclipse.jdt.ls/plugins/org.eclipse.equinox.launcher_1.*.jar \
12+
-configuration $server/eclipse.jdt.ls/config_linux/ \
13+
"$@"

tools/dep/ubuntu_init.sh

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
apt-get install -y gawk curl zsh language-pack-zh-hans language-pack-zh-hans-base \
44
git unzip wget python-dev python3-pip python-pip lsof \
55
libtool-bin gettext sudo \
6-
cmake automake m4 autoconf libtool build-essential pkg-config lua5.2 wamerican \
6+
cmake automake m4 autoconf libtool build-essential pkg-config wamerican \
77
autojump nmap iproute2 net-tools sshfs
88

99
apt-get remove -y neovim exuberant-ctags
@@ -37,6 +37,33 @@ if [ "Y$OPT_BASH" == "Yyes" ];then
3737
npm i -g bash-language-server
3838
fi
3939
fi
40+
if [ "Y$OPT_PHP" == "Yyes" ];then
41+
apt-get install -y npm
42+
npm i -g intelephense
43+
fi
44+
if [ "Y$OPT_PYTHON" == "Yyes" ];then
45+
pip install python-language-server
46+
fi
47+
48+
if [ "Y$OPT_LUA" == "Yyes" ];then
49+
apt install lua5.3-dev luarocks lua5.3
50+
luarocks install --server=http://luarocks.org/dev lua-lsp
51+
fi
52+
if [ "Y$OPT_FE" == "Yyes" ];then
53+
apt-get install -y npm
54+
npm install -g typescript typescript-language-server
55+
npm install -g vscode-css-languageserver-bin
56+
fi
57+
if [ "Y$OPT_JAVA" == "Yyes" ];then
58+
if [ ! -d ~/lsp/eclipse.jdt.ls ];then
59+
mkdir -p ~/lsp/eclipse.jdt.ls && \
60+
cd ~/lsp/eclipse.jdt.ls && \
61+
curl -L https://download.eclipse.org/jdtls/milestones/0.35.0/jdt-language-server-0.35.0-201903142358.tar.gz -O && \
62+
tar xf jdt-language-server-0.35.0-201903142358.tar.gz && rm jdt-language-server*.tar.gz
63+
fi
64+
rm -rf /usr/local/bin/jdtls
65+
cp tools/dep/jdtls /usr/local/bin && chmod u+x /usr/local/bin/jdtls
66+
fi
4067

4168
# install ripgrep
4269
! which rg && \

tools/neovim/init.vim

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -77,27 +77,14 @@ map <leader>js :call json_format#parse("l")<cr>
7777
" deoplete
7878
let g:deoplete#enable_at_startup = 1
7979
let g:deoplete#ignore_sources = get(g:, 'deoplete#ignore_sources', {})
80-
let g:deoplete#ignore_sources.php = ['omni']
81-
"lua
82-
let g:lua_check_syntax = 0
83-
let g:lua_complete_omni = 1
84-
let g:lua_complete_dynamic = 0
85-
let g:lua_define_completion_mappings = 0
8680
call deoplete#custom#source('ultisnips', 'rank', 1000)
87-
autocmd FileType lua call deoplete#custom#var('omni', 'functions', {
88-
\ 'lua': 'xolox#lua#omnifunc',
89-
\ })
90-
autocmd FileType java setlocal omnifunc=javacomplete#Complete
9181
set hidden
9282
let g:LanguageClient_diagnosticsEnable = 0
9383
call deoplete#custom#option('sources', {
9484
\ 'sh': []})
9585
let g:LanguageClient_serverCommands = {
96-
\ 'sh': ['bash-language-server', 'start'],
97-
\ 'php': ['node', '/usr/local/lib/node_modules/intelephense/lib/intelephense.js', '--stdio'],
9886
\ }
9987

100-
10188
" <TAB>: completion.
10289
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
10390
@@ -117,14 +104,6 @@ map J <Plug>(expand_region_shrink)
117104
map <leader>n :Defx<CR>
118105
map <leader>m :TagbarOpenAutoClose<CR>
119106
120-
" vim-php-namespace
121-
function! IPhpInsertUse()
122-
call PhpInsertUse()
123-
call feedkeys('a', 'n')
124-
endfunction
125-
autocmd FileType php inoremap <Leader>u <Esc>:call IPhpInsertUse()<CR>
126-
autocmd FileType php noremap <Leader>u :call PhpInsertUse()<CR>
127-
128107
" ale-setting {{{
129108
let g:ale_set_highlights = 0
130109
"自定义error和warning图标
@@ -389,7 +368,6 @@ let s:bot = {
389368
\ 'init': [ 'term zsh' ]
390369
\ }
391370
\ }
392-
393371
let g:vwm#layouts = [s:bot]
394372
"https://github.com/Shougo/deoplete.nvim/issues/440
395373
let g:deoplete#auto_complete_delay = 150

tools/neovim/ubuntu_init.sh

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,26 @@ function leetcode_ins(){
3434
}
3535

3636
function python_ins(){
37-
! (grep -F 'deoplete-jedi' ~/.config/nvim/init.vim &>/dev/null ) && \
38-
sed -i "/plug#begin/aPlug 'zchee/deoplete-jedi'" ~/.config/nvim/init.vim
37+
! (grep -F 'pyls' ~/.config/nvim/init.vim &>/dev/null ) && \
38+
sed -i "/LanguageClient_serverCommands/a\ 'python': ['pyls']," ~/.config/nvim/init.vim
3939
}
4040
function java_ins(){
41-
! (grep -F 'vim-javacomplete2' ~/.config/nvim/init.vim &>/dev/null ) && \
42-
sed -i "/plug#begin/aPlug 'artur-shaik/vim-javacomplete2'" ~/.config/nvim/init.vim
41+
! (grep -F 'jdtls' ~/.config/nvim/init.vim &>/dev/null ) && \
42+
sed -i "/LanguageClient_serverCommands/a \ 'java': ['/usr/local/bin/jdtls', '-data', getcwd()]," ~/.config/nvim/init.vim
43+
}
44+
function lua_ins(){
45+
! (grep -F 'lua-lsp' ~/.config/nvim/init.vim &>/dev/null ) && \
46+
sed -i "/LanguageClient_serverCommands/a \ 'lua': ['lua-lsp']," ~/.config/nvim/init.vim
47+
}
48+
function fe_ins(){
49+
! (grep -F 'typescript-language-server' ~/.config/nvim/init.vim &>/dev/null ) && \
50+
sed -i "/LanguageClient_serverCommands/a \ 'css': ['css-languageserver', '--stdio']," ~/.config/nvim/init.vim && \
51+
sed -i "/LanguageClient_serverCommands/a \ 'less': ['css-languageserver', '--stdio']," ~/.config/nvim/init.vim && \
52+
sed -i "/LanguageClient_serverCommands/a \ 'sass': ['css-languageserver', '--stdio']," ~/.config/nvim/init.vim && \
53+
sed -i "/LanguageClient_serverCommands/a \ 'javascript': ['typescript-language-server', '--stdio']," ~/.config/nvim/init.vim && \
54+
sed -i "/LanguageClient_serverCommands/a \ 'javascript.jsx': ['typescript-language-server', '--stdio']," ~/.config/nvim/init.vim && \
55+
sed -i "/LanguageClient_serverCommands/a \ 'typescript': ['typescript-language-server', '--stdio']," ~/.config/nvim/init.vim && \
56+
sed -i "/LanguageClient_serverCommands/a \ 'typescript.tsx': ['typescript-language-server', '--stdio']," ~/.config/nvim/init.vim
4357
}
4458

4559
function go_ins(){
@@ -58,9 +72,8 @@ function go_ins(){
5872

5973
function php_ins(){
6074
! (grep -F 'arnaud-lb/vim-php-namespace' ~/.config/nvim/init.vim &>/dev/null ) && \
61-
sed -i "/plug#begin/aPlug 'lvht/phpcd.vim', { 'for': 'php', 'do': 'composer install' }" ~/.config/nvim/init.vim && \
62-
sed -i "/plug#begin/aPlug 'arnaud-lb/vim-php-namespace'" ~/.config/nvim/init.vim &&\
6375
sed -i "/plug#begin/aPlug 'stephpy/vim-php-cs-fixer'" ~/.config/nvim/init.vim && \
76+
sed -i "/LanguageClient_serverCommands/a\ 'php': ['node', '/usr/local/lib/node_modules/intelephense/lib/intelephense.js', '--stdio']," ~/.config/nvim/init.vim && \
6477
sed -i "/plug#begin/aPlug 'vim-vdebug/vdebug'" ~/.config/nvim/init.vim
6578
cat > /usr/local/bin/phpxd <<END
6679
#!/bin/zsh
@@ -154,6 +167,9 @@ fi
154167
if [ "Y$OPT_LEETCODE" == "Yyes" ];then
155168
leetcode_ins
156169
fi
170+
if [ "Y$OPT_FE" == "Yyes" ];then
171+
fe_ins
172+
fi
157173

158174
#language end
159175

0 commit comments

Comments
 (0)