Fork me on GitHub

2010/07/29

Recent entries from same category

  1. GoでGoogle翻訳出来るライブラリ書いた。 Hatena
  2. Go本が出るらしい。 Hatena
  3. GoでJSDeferred書いてみた。 Hatena
  4. Go本出てるよ。 Hatena
  5. Goのコードを一切書かずにGoの実行モジュールを作る。 Hatena

Goは型宣言無しに値が代入出来てしまうので、カーソル上の変数から型推測する必要がある補完は難しいんじゃないかなーと思ってたら、なんと作った人がいました。
すげー。

nsf's gocode at master - GitHub

Autocompletion/refactoring daemon for Go language.Work in progress..Currently available things: - .a...

http://github.com/nsf/gocode
仕組みはvimスクリプト内でデーモン起こしてコードとキーワードと共にサーバ側でコンパイルし、解析して返すというもの。通信にはRPCが使われている。
補完はomniなので<c-x><c-o>で開始。ちゃんと
  • インスタンスメソッド一覧
  • 構造体のメンバ
  • パッケージ内の定数や型、関数
gocode1

もろもろ補完してくれる。私が無理かもねと思ってた以下の様なコードでもしっかり補完してくれている。すばらしい。

gocode2

Go書く人はいれるべし。ちなみにこのgocode、出力形式としてemacsもサポートしている(未確認)ので、ぜひ試して欲しい。

追記
さすがにこういうコードは難しいみたい。なんかPANICって補完されてます。

package main

type Foo struct {
    Boo func();
    Baz string;
}

func foo() *Foo {
    return &Foo {}
}

func main() {
    foo().PANIC
}

Posted at 01:13 in ソフトウェア::lang::go | Edit
Tagged as: golang
Bookmarks: add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip

blog comments powered by Disqus