A neovim plugin for dbt. Still very much work-in-progress. Requires nvim-lua/plenary.nvim, telescope.nvim, nvim-notify and Neovim +5.0.
- jump to model file from
{{ ref() }}
- jump to model file from definition in yaml schema file
- select model file to jump to from Telescope fuzzy finder (
DBTGoToDefinition
) - insert model ref from fuzzy finder (
DBTInsertModelRef
) - jump to model properties in
.yml
file- use treesitter to parse model names and line numbers from
.yaml
file - crawl all .yml files looking for model name
- use treesitter to parse model names and line numbers from
- jump to source definition (in yaml).
- use treesitter to parse source table names and line numbers from
.yaml
file - crawl all .yml files looking for source table name
- update
DBTGoToDefinition
to jump to source.yml
if{{ source() }}
specified - look at https://github.com/cuducos/yaml.nvim
- use treesitter to parse source table names and line numbers from
- view model columns and definitions in floating window
- view source columns and definitions in floating window
- run model from model file
- run tests for model from model file
- make vim help for plugin
return require("packer").startup(
function()
use {
"cfmeyers/dbt.nvim",
requires = {
"nvim-lua/plenary.nvim",
"nvim-telescope/telescope.nvim",
"rcarriga/nvim-notify",
},
}
end
)
Jumps to the /models/nested/directories/your_model_name.sql
file where {{ ref(your_model_name) }}
is defined.
Suggested remap in nvim/after/ftplugin/sql
:
nnoremap <buffer> gd :DBTGoToDefinition<CR>
Open a the Telescope fuzzy file picker to select model file to jump to.
Select a model name from a fuzzy finder and insert it into a Jinja {{ ref('') }}
tag.
Suggested remap in nvim/after/ftplugin/sql
:
inoremap <buffer> rrr <C-O>:DBTInsertModelRef<CR>