Thread overview
Language server
Apr 26, 2022
Alain De Vos
Apr 27, 2022
Bastiaan Veelo
Apr 28, 2022
Alain De Vos
May 13, 2022
Alain De Vos
May 18, 2022
Alain De Vos
May 18, 2022
Tejas
April 26, 2022

In a perfect world there would be someone uploading a youtube video how to implement
neovim with a dlang language-server.
With function-completions-help where hints are given about the functions and libraries.
If anyone could do this , this would be nice to have.

April 27, 2022

On Tuesday, 26 April 2022 at 18:15:57 UTC, Alain De Vos wrote:

>

In a perfect world there would be someone uploading a youtube video how to implement
neovim with a dlang language-server.
With function-completions-help where hints are given about the functions and libraries.
If anyone could do this , this would be nice to have.

I'm not a vim user, but there is this: https://wiki.dlang.org/D_in_Vim

If that is what you needed to get what you want, maybe make a YouTube video about it ;-)

-- Bastiaan.

April 28, 2022

I have not tested yet but i found two interesting links,

https://github.com/Pure-D/serve-d/blob/master/editor-vim.md

https://github.com/neoclide/coc.nvim

May 13, 2022

I have now a language server running for dlang and ocaml on the neovim editor.
I'll post here the config init.vim for someone who might be interested.

call plug#begin()
Plug 'https://github.com/vim-airline/vim-airline.git'
Plug 'https://github.com/preservim/nerdtree.git'
Plug 'https://github.com/lifepillar/pgsql.vim.git'
Plug 'https://github.com/rafi/awesome-vim-colorschemes'
" The default plugin directory will be as follows:
"   - Vim (Linux/macOS): '~/.vim/plugged'
"   - Vim (Windows): '~/vimfiles/plugged'
"   - Neovim (Linux/macOS/Windows): stdpath('data') . '/plugged'
" You can specify a custom plugin directory by passing it as the argument
"   - e.g. `call plug#begin('~/.vim/plugged')`
"   - Avoid using standard Vim directory names like 'plugin'
" Make sure you use single quotes
" Shorthand notation; fetches https://github.com/junegunn/vim-easy-align
Plug 'junegunn/vim-easy-align'
" Any valid git URL is allowed
Plug 'https://github.com/junegunn/vim-github-dashboard.git'
" Multiple Plug commands can be written in a single line using | separators
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
" On-demand loading
Plug 'scrooloose/nerdtree', { 'on':  'NERDTreeToggle' }
Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
" Using a non-default branch
Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }
" Using a tagged release; wildcard allowed (requires git 1.9.2 or above)
Plug 'fatih/vim-go', { 'tag': '*' }
" Plugin options
Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }
" Plugin outside ~/.vim/plugged with post-update hook
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
" Unmanaged plugin (manually installed and updated)
" Plug '~/my-prototype-plugin'
" Use release branch (recommend)
Plug 'neoclide/coc.nvim', {'branch': 'release'}
" Initialize plugin system
Plug 'ncm2/ncm2'
Plug 'ncm2/ncm2-d', { 'for': 'd' }
Plug 'roxma/nvim-yarp'
Plug 'majutsushi/tagbar'
Plug 'Rasukarusan/nvim-select-multi-line'
Plug 'akinsho/toggleterm.nvim'
Plug 'tpope/vim-commentary'
Plug 'autozimu/LanguageClient-neovim', {
    \ 'branch': 'next',
    \ 'do': 'bash install.sh',
    \ }
Plug 'dense-analysis/ale'
call plug#end()

set number
set autoindent
set tabstop=4
set shiftwidth=4
set smarttab
set softtabstop=4
set mouse=a
set encoding=UTF-8
set rtp^="/usr/home/x/.opam/4.13.1+options/share/ocp-indent/vim"
set hidden

" enable ncm2 for all buffers and set completeopt
autocmd BufEnter * call ncm2#enable_for_buffer()
set completeopt=noinsert,menuone
" Start NERDTree and put the cursor back in the other window.
autocmd VimEnter * NERDTree | wincmd p
" Exit Vim if NERDTree is the only window remaining in the only tab.
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif

nmap <F8> :TagbarToggle<CR>
nnoremap <C-t> :NERDTreeToggle<CR>
nnoremap <C-l> :call CocActionAsync('jumpDefinition')<CR>
nnoremap <F5> :call LanguageClient_contextMenu()<CR>
nnoremap <silent> K :call LanguageClient#textDocument_hover()<CR>
nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
nnoremap <silent> <F2> :call LanguageClient#textDocument_rename()<CR>
nnoremap <Space>v :call sml#mode_on()<CR>
" By applying the mappings this way you can pass a count to your
" mapping to open a specific window.
" For example: 2<C-t> will open terminal 2
nnoremap <silent><c-t> <Cmd>exe v:count1 . "ToggleTerm"<CR>
inoremap <silent><c-t> <Esc><Cmd>exe v:count1 . "ToggleTerm"<CR>

let g:opamshare = substitute(system('opam var share'),'\n$','','''')
     execute "set rtp+=" . g:opamshare . "/merlin/vim"
let g:sql_type_default = 'pgsql'
let g:NERDTreeDirArrowExpandable="+"
let g:NERDTreeDirArrowCollapsible="~"
let g:LanguageClient_serverCommands = {'ocaml': ['ocamllsp']}
let g:sml#echo_yank_str = 1
" set
let g:toggleterm_terminal_mapping = '<C-t>'
let g:ale_sign_error                  = '✘'
let g:ale_sign_warning                = '⚠'
highlight ALEErrorSign ctermbg        =NONE ctermfg=red
highlight ALEWarningSign ctermbg      =NONE ctermfg=yellow
let g:ale_linters_explicit            = 1
let g:ale_lint_on_text_changed        = 'never'
let g:ale_lint_on_enter               = 0
let g:ale_lint_on_save                = 1
let g:ale_fix_on_save                 = 1
let g:ale_linters = {
\   'ocaml':      ['merlin'],
\}
let g:ale_fixers = {
\   'ocaml':      ['ocamlformat'],
\   '*':          ['remove_trailing_lines', 'trim_whitespace'],
\}
:colorscheme jellybeans
"gc: comment

let g:LanguageClient_serverCommands = {
 \   'ocaml':           ['ocamllsp'],
 \}

May 18, 2022

I tried neovim editor & serve-d and failed.
I tried kate editor & serve-d and failed.

https://github.com/Pure-D/serve-d

Anyone has a clue ?

May 18, 2022

On Wednesday, 18 May 2022 at 01:04:16 UTC, Alain De Vos wrote:

>

I tried neovim editor & serve-d and failed.
I tried kate editor & serve-d and failed.

https://github.com/Pure-D/serve-d

Anyone has a clue ?

I'm using lunarvim. It provides you the ability to intall LSPs and treesitter parsers natively.

Did you use dub init to create a project before trying to use serve-d? That could be why it doesn't work for you, maybe