telescope-terraform-doc.nvim is an extension for telescope.nvim that provides its users with ability to search and browse terraform providers docs.
Plug 'nvim-lua/plenary.nvim'
Plug 'nvim-telescope/telescope.nvim'
Plug 'ANGkeith/telescope-terraform-doc.nvim'use {
"nvim-telescope/telescope.nvim",
requires = {
{ "nvim-lua/plenary.nvim" },
{ "ANGkeith/telescope-terraform-doc.nvim" },
},
}Add the following to your init.vim:
require('telescope').load_extension('terraform_doc')Browse the official hashicorp providers:
:Telescope terraform_docBrowse resources from the latest hashicorp/aws provider:
:Telescope terraform_doc full_name=hashicorp/awsBrowse resources from the v3.74.0 hashicorp/aws provider:
:Telescope terraform_doc full_name=hashicorp/aws version=3.74.0Browse all terraform modules:
:Telescope terraform_doc modulesnnoremap <space>ott :Telescope terraform_doc<cr>
nnoremap <space>otm :Telescope terraform_doc modules<cr>
nnoremap <space>ota :Telescope terraform_doc full_name=hashicorp/aws<cr>
nnoremap <space>otg :Telescope terraform_doc full_name=hashicorp/google<cr>
nnoremap <space>otk :Telescope terraform_doc full_name=hashicorp/kubernetes<cr>| Keys | Description | Options |
|---|---|---|
url_open_handler |
The handler for opening url | function |
latest_provider_symbol |
The symbol for indicating that the current version is the latest | string (default: *) |
wincmd |
Command to open documentation in a split window | string (default: botright vnew) |
wrap |
Wrap lines in a documentation in a split window | string (default: nowrap) |
search_attach_mappings |
The attach_mapping handler to pass to the search picker |
function |
local function customOpen(url)
vim.fn.system('open -a Safari "' .. url .. '"')
end
require("telescope").setup({
extensions = {
terraform_doc = {
url_open_handler = customOpen,
latest_provider_symbol = " ",
wincmd = "botright vnew",
wrap = "nowrap",
}
}
})| key | Usage |
|---|---|
<cr> |
Open documentation with url_open_handler |
<c-d> |
Open documentation in a split window |
Due to how the search picker is written, attach_mapping cannot be used directly to override the mappings.
This is how you can customize the search picker mappings.
local telescope_actions = require("telescope.actions")
local terraform_doc_actions = require("telescope._extensions.terraform_doc.actions")
local terraform_doc_opts = require("telescope._extensions.terraform_doc.config").opts
local function search_attach_mappings()
telescope_actions.select_default:replace(terraform_doc_actions.doc_view(terraform_doc_opts()))
return true
end
require("telescope").setup({
extensions = {
terraform_doc = {
search_attach_mappings = search_attach_mappings,
}
}
})
require("telescope").load_extension("terraform_doc")