2019/11/12

Recent entries from same category

  1. mruby-tflite を Coral Edge TPU 対応した。
  2. sudo の特権昇格バグはなぜ起こったのか
  3. mongoose ウェブサーバと TensorFlow Lite を使った Object Detection API サーバを書いた。
  4. C++ な WebServer 実装 crow と TensorFlow Lite を使って Object Detection の API サーバを書いた。
  5. MRuby の TensorFlow Lite バインディングを書いた。

先日、Gopls の v0.2.0 がリリースされました。

v0.2.0
https://github.com/golang/go/issues/33030#issuecomment-549629508

リリースノートに書かれていますが、このバージョンから completeUnimported に対応しています。fmt が import されていなくても fmt.Println が補完できる様になります。ただしデフォルトでは無効になっています。Visual Studio Code であれば以下を settings.json に含める事で使える様になります。

"gopls": {
    "completeUnimported": true
},
vscode

また vim-lsp をお使いであれば以下の様に設定する事で使える様になります。

if executable('gopls')
  augroup LspGo
    au!
    autocmd User lsp_setup call lsp#register_server({
        \ 'name''go-lang',
        \ 'cmd'{server_info->['gopls']},
        \ 'whitelist': ['go'],
        \ 'workspace_config'{'gopls'{
        \     'staticcheck': v:true,
        \     'completeUnimported': v:true,
        \     'caseSensitiveCompletion': v:true,
        \     'usePlaceholders': v:true,
        \     'completionDocumentation': v:true,
        \     'watchFileChanges': v:true,
        \     'hoverKind''SingleLine',
        \   }},
        \ })
    autocmd FileType go setlocal omnifunc=lsp#complete
    autocmd FileType go nmap <buffer> gd <plug>(lsp-definition)
    autocmd FileType go nmap <buffer> ,n <plug>(lsp-next-error)
    autocmd FileType go nmap <buffer> ,p <plug>(lsp-previous-error)
  augroup END
endif

僕はその他にも実験的なオプションを沢山有効にしています。詳しくは gopls の settings.md を参照下さい。

settings.md
https://github.com/golang/tools/blob/master/gopls/doc/settings.md

これらは Visual Studio Code の gopls セクションでも使えますし、同様に vim-lsp の workspace_config でも使えます。

Posted at by | Edit


blog comments powered by Disqus