Need help with vim-dadbod-completion?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

kristijanhusak
245 Stars 4 Forks MIT License 102 Commits 1 Opened issues

Description

Database autocompletion powered by https://github.com/tpope/vim-dadbod

Services available

!
?

Need anything else?

Contributors list

# 32,495
Lua
meteor
PureScr...
Sublime...
80 commits
# 134,033
Neovim
Lua
languag...
coc
6 commits
# 86,566
Vue.js
Neovim
tcl
vim-col...
2 commits
# 111,628
Vim
Neovim
Common ...
denite
2 commits
# 200,005
Lua
Vim
Neovim
Python
1 commit

vim-dadbod-completion

Database auto completion powered by vim-dadbod. Supports: * coc.nvim * deoplete.nvim * completion-nvim * nvim-compe * nvim-cmp * Built in

omnifunc

coc-db

Install

Dependencies: * vim-dadbod

For coc.nvim

:CocInstall coc-db

For

deoplete
,
completion-nvim
,
nvim-compe
and
omnifunc
, install it with your favorite plugin manager.
function! PackagerInit() abort
  packadd vim-packager
  call packager#init()
  call packager#add('kristijanhusak/vim-packager', { 'type': 'opt' })
  call packager#add('tpope/vim-dadbod')
  call packager#add('kristijanhusak/vim-dadbod-completion')

call packager#add('Shougo/deoplete.nvim') "or call packager#add('haorenW1025/completion-nvim') "or call packager#add('hrsh7th/nvim-compe') endfunction

" For built in omnifunc autocmd FileType sql setlocal omnifunc=vim_dadbod_completion#omni

" hrsh7th/nvim-compe let g:compe.source.vim_dadbod_completion = v:true

" hrsh7th/nvim-cmp autocmd FileType sql,mysql,plsql lua require('cmp').setup.buffer({ sources = {{ name = 'vim-dadbod-completion' }} })

" For completion-nvim augroup completion autocmd! autocmd BufEnter * lua require'completion'.on_attach() autocmd FileType sql let g:completion_trigger_character = ['.', '"', '`', '['] augroup END

" Source is automatically added, you just need to include it in the chain complete list let g:completion_chain_complete_list = { \ 'sql': [ \ {'complete_items': ['vim-dadbod-completion']}, \ ], \ } " Make sure substring is part of this list. Other items are optional for this completion source let g:completion_matching_strategy_list = ['exact', 'substring'] " Useful if there's a lot of camel case items let g:completion_matching_ignore_case = 1

Features

  • Autocomplete table names, with automatic quoting where needed. Works for all schemes that vim-dadbod supports.
  • Autocomplete table columns, context aware. Also knows to read aliases (
    select * from mytable tbl where tbl.id = 1
    ). Currently works for
    PostgreSQL
    ,
    MySQL
    ,
    Oracle
    and
    SQLserver/MSSQL
    .
  • Out of the box integration with vim-dadbod-ui

How it works

  • If an sql buffer is created by vim-dadbod-ui, it reads all the configuration from there. It should work out of the box.
  • If
    vim-dadbod-ui
    is not used, vim-dadbod
    g:db
    or
    b:db
    is used. If you want, you can also add
    b:db_table
    to limit autocompletions to that table only.

Settings

Default mark for completion items is

[DB]
. To change it, add this to vimrc:
let g:vim_dadbod_completion_mark = 'MYMARK'

Todo

  • [ ] Integration for column autocompletion with more database types

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.