• Stars
    star
    610
  • Rank 73,497 (Top 2 %)
  • Language
    Vim Script
  • License
    MIT License
  • Created over 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

vim-dadbod-completion

Database auto completion powered by vim-dadbod. Supports:

coc-db

Install

Dependencies:

For coc.nvim

:CocInstall coc-db

For deoplete, completion-nvim, nvim-compe, ddc 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')
  "or
  call packager#add('vim-denops/denops.vim')
  call packager#add('Shougo/ddc.vim')
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

" Shougo/ddc.vim
call ddc#custom#patch_filetype(['sql', 'mysql', 'plsql'], 'sources', 'dadbod-completion')
call ddc#custom#patch_filetype(['sql', 'mysql', 'plsql'], 'sourceOptions', {
\ 'dadbod-completion': {
\   'mark': 'DB',
\   'isVolatile': v:true,
\ },
\ })

" 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, SQLite 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'

Commands

This plugin caches the database tables and columns to leverage maximum performance. If you want to clear the cache at any point just run:

:DBCompletionClearCache

Todo

  • Integration for column autocompletion with more database types

More Repositories

1

laravel-form-builder

Laravel Form builder for version 5+!
PHP
1,691
star
2

vim-dadbod-ui

Simple UI for https://github.com/tpope/vim-dadbod
Vim Script
1,436
star
3

vim-hybrid-material

Material color scheme for Vim based on w0ng/vim-hybrid color scheme
Vim Script
545
star
4

neovim-config

Neovim configuration
Shell
254
star
5

vim-carbon-now-sh

Open selected text in https://carbon.now.sh
Vim Script
247
star
6

vim-packager

Vim plugin manager that utilizes "jobs" and "pack" features.
Vim Script
245
star
7

vim-js-file-import

Import/require files in javascript and typescript with single button!
Vim Script
143
star
8

defx-icons

Filetype icons for https://github.com/Shougo/defx.nvim
Vim Script
131
star
9

defx-git

Git status implementation for https://github.com/Shougo/defx.nvim
Python
71
star
10

vim-dirvish-git

Git support for dirvish.vim
Vim Script
54
star
11

line-notes.nvim

Lua
33
star
12

tmux-simple-git-status

Add simple git status to your tmux statusline.
Shell
27
star
13

vim-simple-notifications

Vim Script
24
star
14

laravel4-form-builder

Laravel Form builder for version 4!
PHP
22
star
15

deoplete-phpactor

Phpactor integration for deoplete.nvim
Python
19
star
16

node_acl_sequelize

Sequelize implementation for node acl
JavaScript
17
star
17

vim-project-lint

Project level lint status right in your favorite file explorer
Vim Script
12
star
18

vimfiles

My Vim setup
Vim Script
8
star
19

completion-tags

Tags completion for completion-nvim
Lua
6
star
20

vim-create-pr

Open link to create PR directly from (neo)vim
Vim Script
4
star
21

cosmic_latte

☕ vim + emacs + textmate/sublime + atom + terminal (theme | colorscheme | color scheme) based on the color of the universe
Emacs Lisp
3
star