Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Building An Editor Package For Go
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Joe Fitzgerald
July 24, 2014
Technology
1.2k
8
Share
Building An Editor Package For Go
A lightning talk for the Denver Gophers Meetup On 7/24/2014.
Joe Fitzgerald
July 24, 2014
Other Decks in Technology
See All in Technology
TROCCOで始めるクラウドコストを民主化するためのFinOps
tk3fftk
2
490
インフラが苦手でも大丈夫! 紙芝居 Kubernetes -WWGT 10周年編-
aoi1
1
310
テストコードのないプロジェクトにテストを根付かせる
tttol
1
240
string地獄を脱出する
sansantech
PRO
1
110
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development
yoshidashingo
1
270
Datadog 認定試験の概要と対策
uechishingo
0
210
Amazon Bedrock 経由の Claude Cowork を試してみよう・MCP にも繋いでみよう
sugimomoto
0
290
Fabric-cicd によるAzure DevOps デプロイ
ryomaru0825
0
170
Generative UI × A2UI で AI エージェントを作った話 AI-DLC も使ってみた!
kmiya84377
1
290
A Harness for Behaviour: how to get AI to generate code that does what we intend, or "TDD in the age of AI"
xpmatteo
1
520
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.7k
さきさん文庫の書籍ができるまで
sakiengineer
0
320
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
432
67k
Done Done
chrislema
186
16k
ラッコキーワード サービス紹介資料
rakko
1
3.5M
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
The Curse of the Amulet
leimatthew05
1
13k
Rails Girls Zürich Keynote
gr2m
96
14k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Optimizing for Happiness
mojombo
378
71k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Facilitating Awesome Meetings
lara
57
6.9k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
220
Transcript
BUILDING AN EDITOR PLUGIN PACKAGE FOR GO Joe Fitzgerald, DIRECTOR,
CLOUD FOUNDRY SERVICES @ PIVOTAL
MEET JOE ▸ I work @ (http://pivotal.io) ▸ I sell
and deliver professional services for ▸ You can find me at: ▸ : @joefitzgerald ▸ : @joefitzgerald ▸ :
[email protected]
AND... SINCE MARCH I'VE BEEN WORKING ON A GO PACKAGE
FOR ATOM
I KNOW WHAT YOU ARE THINKING...
YOU ARE CRAZY BECAUSE I : Vim, Emacs, Sublime, IntelliJ,
Eclipse, LiteIDE... Acme (?)
None
YOU'RE RIGHT I'M NOT HERE TO CHANGE YOUR MIND
SO WHY'D YOU DO IT?
IT WAS MARCH AND IT SOUNDED LIKE A GOOD IDEA
(?)
MEET ATOM ▸ Built By: ▸ Find It At: atom.io
▸ License: MIT – Yes, It's Open Source!
BUT... + = SLOW, RIGHT?
REACT THE DEFAULT EDITOR VIEW AS OF JULY 23, 2014
= Much Faster
I CREATED A PACKAGE IT'S CALLED: go-plus
RIGHT NOW IT SUPPORTS: ▸ Formatting source using gofmt ▸
Formatting and managing imports using goimports ▸ Code quality inspection using go vet ▸ Linting using golint ▸ Syntax checking using go build and go test ▸ Display of test coverage using go test -coverprofile
None
None
None
None
A TOUR OF VERSION 1:
None
I MADE SOME ROOKIE MISTAKES (BUT I'M NOT SO SURE
OTHERS HAVE REALIZED IT) (BECAUSE THESE SEEM LIKE COMMON EDITOR MISTAKES)
WHY SHOULD SOMEONE HAVE TO CONFIGURE THE PATH TO TOOLS?
LIKE gofmt
WOULDN'T IT BE BETTER TO USE... go env ?
$ go env GOARCH="amd64" GOBIN="" GOCHAR="6" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOOS="darwin"
GOPATH="/Users/jfitzgerald/go" GORACE="" GOROOT="/usr/local/Cellar/go/1.3/libexec" GOTOOLDIR="/usr/local/Cellar/go/1.3/libexec/pkg/tool/darwin_amd64" CC="clang" GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common" CXX="clang++" CGO_ENABLED="1"
GOBIN="" + GOEXE="" + GOPATH="/Users/jfitzgerald/go" + GOROOT="/usr/local/Cellar/go/1.3/libexec" + GOTOOLDIR="/usr/local/Cellar/go/1.3/libexec/pkg/tool/darwin_amd64" IS
EVERYTHING YOU NEED TO FIND GO TOOLS (PLUS $PATH / %Path%)
SO WE JUST NEED TO FIND go
WHERE IS GO, YOU ASK? 1. Start With $PATH /
%PATH% Segments, Then: 2. OSX: /usr/local/go/bin (Package Installer) 3. OSX: /usr/local/bin (Homebrew) 4. Windows: C:\Go\bin (Package Installer)
SO NOW WE CAN FIND: 1. go 2. godoc 3.
gofmt 4. vet 5. cover
BUT WHAT ABOUT: 1. goimports 2. golint 3. oracle 4.
And Other $GOPATH / %GOPATH% Bin Executables? They aren't in GOTOOLDIR or GOROOT...
THEY BE HERE, SOMEWHERE: 1. Start With $PATH / %PATH%
Segments, Then: 2. Look In $GOBIN / %GOBIN% 3. Look In $GOPATH / %GOPATH% Segments In The bin Directory
AND THEN IF YOU CAN'T FIND THEM, OFFER TO: go
get -u THE REQUIRED TOOLS! (THERE IS NO MAGIC, THIS CAN BE DISABLED)
THIS REVELATION LED TO go-plus V2 (PLUS A LOAD OF
OTHER INTERNAL AWESOMENESS) TO PREPARE FOR THE ADDITION OF:
AUTOCOMPLETE (POWERED BY gocode)
ORACLE (POWERED BY oracle) ;)
GO TO DEFINITION (POWERED BY godef)
GO TO DOCUMENTATION (POWERED BY godoc)
AND ctags SUPPORT (POWERED BY gotags)
ALSO THE PACKAGE IS WRITTEN IN COFFEESCRIPT (Yeah, I Made
A Few Mistakes As I Learned CoffeeScript) IS THIS AS IRONIC TO YOU AS IT IS TO ME?
AND ON THAT BOMBSHELL... Goodnight GOT ANY QUESTIONS? TWITTER: @JOEFITZGERALD