Skip to content

Commit

Permalink
terraform-lsをdirenv経由で実行できるようにする
Browse files Browse the repository at this point in the history
terraform providers schema -jsonがバックエンド認証を要求するが
rootモジュールごとにAWSアカウントが異なり読み込む環境変数が違う。
hashicorp/terraform-ls#128

terraformコマンドの実行パスは-tf-execでカスタマイズできるので、
以下のようなラッパーコマンドを用意しておき、direnv経由で実行する。
```
DIRENV_LOG_FORMAT="" direnv exec . terraform "$@"
```

現時点ではシングルバイナリである必要があり、
bash -c でワンライナーでは書けないようだ。
また、$HOMEや~も解釈してくれないのでフルパスで指定する必要がある。
  • Loading branch information
minamijoyo committed Jul 2, 2020
1 parent 7b9dd1d commit 3bfb1fa
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions vim/plugins/vim-lsp.vim
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
let g:lsp_diagnostics_enabled = 1
let g:lsp_diagnostics_echo_cursor = 1
let g:lsp_virtual_text_enabled = 0
" let g:lsp_log_verbose = 1
" let g:lsp_log_file = expand('/tmp/vim-lsp.log')
let g:lsp_log_file = ''
let g:lsp_log_verbose = 1
let g:lsp_log_file = expand('/tmp/vim-lsp.log')
" let g:lsp_log_file = ''
nnoremap <silent> <C-]> :LspDefinition<CR>
" juliosueiras/terraform-lspではなくhashicorp/terraform-lsを使う
if executable('terraform-ls')
au User lsp_setup call lsp#register_server({
\ 'name': 'terraform-ls',
\ 'cmd': {server_info->['terraform-ls', 'serve']},
\ 'cmd': {server_info->['terraform-ls', 'serve', '-tf-exec=/usr/local/bin/direnv-terraform']},
\ 'whitelist': ['terraform'],
\ })
endif

0 comments on commit 3bfb1fa

Please sign in to comment.