Merge pull request #3 from alitari/master
Fix rename and enable additional tools
This commit is contained in:
@@ -10,24 +10,6 @@ ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN apt-get update \
|
||||
&& apt-get -y install --no-install-recommends apt-utils 2>&1
|
||||
|
||||
RUN go get -u -v \
|
||||
github.com/mdempsky/gocode \
|
||||
github.com/uudashr/gopkgs/cmd/gopkgs \
|
||||
github.com/ramya-rao-a/go-outline \
|
||||
github.com/acroca/go-symbols \
|
||||
golang.org/x/tools/cmd/guru \
|
||||
golang.org/x/tools/cmd/gorename \
|
||||
github.com/rogpeppe/godef \
|
||||
github.com/zmb3/gogetdoc \
|
||||
github.com/sqs/goreturns \
|
||||
golang.org/x/tools/cmd/goimports \
|
||||
golang.org/x/lint/golint \
|
||||
github.com/alecthomas/gometalinter \
|
||||
honnef.co/go/tools/... \
|
||||
github.com/golangci/golangci-lint/cmd/golangci-lint \
|
||||
github.com/mgechev/revive \
|
||||
github.com/derekparker/delve/cmd/dlv 2>&1
|
||||
|
||||
# gocode-gomod
|
||||
RUN go get -x -d github.com/stamblerre/gocode 2>&1 \
|
||||
&& go build -o gocode-gomod github.com/stamblerre/gocode \
|
||||
@@ -44,3 +26,29 @@ ENV DEBIAN_FRONTEND=dialog
|
||||
|
||||
# Set the default shell to bash rather than sh
|
||||
ENV SHELL /bin/bash
|
||||
|
||||
# go tools
|
||||
RUN go get -u -v \
|
||||
github.com/mdempsky/gocode \
|
||||
github.com/uudashr/gopkgs/cmd/gopkgs \
|
||||
github.com/ramya-rao-a/go-outline \
|
||||
github.com/acroca/go-symbols \
|
||||
github.com/godoctor/godoctor \
|
||||
golang.org/x/tools/cmd/guru \
|
||||
golang.org/x/tools/cmd/gorename \
|
||||
github.com/rogpeppe/godef \
|
||||
github.com/zmb3/gogetdoc \
|
||||
github.com/haya14busa/goplay/cmd/goplay \
|
||||
github.com/sqs/goreturns \
|
||||
github.com/josharian/impl \
|
||||
github.com/davidrjenni/reftools/cmd/fillstruct \
|
||||
github.com/fatih/gomodifytags \
|
||||
github.com/cweill/gotests/... \
|
||||
golang.org/x/tools/cmd/goimports \
|
||||
golang.org/x/lint/golint \
|
||||
golang.org/x/tools/cmd/gopls \
|
||||
github.com/alecthomas/gometalinter \
|
||||
honnef.co/go/tools/... \
|
||||
github.com/golangci/golangci-lint/cmd/golangci-lint \
|
||||
github.com/mgechev/revive \
|
||||
github.com/derekparker/delve/cmd/dlv 2>&1
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
"seccomp=unconfined"
|
||||
],
|
||||
"settings": {
|
||||
"go.gopath": "/go"
|
||||
"go.gopath": "/go",
|
||||
"go.inferGopath": true,
|
||||
"go.useLanguageServer": true
|
||||
}
|
||||
}
|
||||
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@@ -6,7 +6,7 @@
|
||||
"type": "go",
|
||||
"request": "launch",
|
||||
"mode": "debug",
|
||||
"program": "${workspaceFolder}/server.go"
|
||||
"program": "${workspaceFolder}/src/main/server.go"
|
||||
}
|
||||
]
|
||||
}
|
||||
4
.vscode/settings.json
vendored
Normal file
4
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"go.useLanguageServer": true,
|
||||
"go.inferGopath": true
|
||||
}
|
||||
21
README.md
21
README.md
@@ -39,7 +39,26 @@ Some things to try:
|
||||
- Press <kbd>F1</kbd> and run the **Remote-Containers: Forward Port from Container...** command.
|
||||
- Select port 5000.
|
||||
- Click "Open Browser" in the notification that appears to access the web app on this new port.
|
||||
|
||||
3. **Refactoring - rename:**
|
||||
- Open `hello.go`, select method name `Hello` press <kbd>F1</kbd> and run the **Rename Symbol** command.
|
||||
3. **Refactoring - extract:**
|
||||
- Open `hello.go` and select string, press <kbd>F1</kbd> and run the **Go: Extract to variable** command.
|
||||
- Open `hello.go` and select line with return statement, press <kbd>F1</kbd> and run the **Go: Extract to function** command.
|
||||
3. **Generate tests:**
|
||||
- Open `hello.go` and press <kbd>F1</kbd> and run the **Go: Generate Unit Tests For File** command.
|
||||
- Implement a test case: Open file `hello_test.go` and edit the line with the `TODO` comment: `{"hello without name", "Hello, "},`
|
||||
- You can toggle between implementation file and test file with press <kbd>F1</kbd> and run the **Go: Toggle Test File**
|
||||
- Tests can also run as benchmarks: Open file `hello_test.go`, press <kbd>F1</kbd> and run the **Go: Benchmark File**
|
||||
4. **Stub generation:** ( [details](https://github.com/josharian/impl))
|
||||
- define a struct `type mock struct {}`, enter a new line , press <kbd>F1</kbd> and run the **Go: Generate interface stubs** command.
|
||||
- edit command `m *mock http.ResponseWriter`
|
||||
4. **Fill structs:** ( [details](https://github.com/davidrjenni/reftools/tree/master/cmd/fillstruct))
|
||||
- Open `hello.go` and select `user{}` of variable asignment, press <kbd>F1</kbd> and run the **Go: Fill struct** command.
|
||||
4. **Add json tags to structs:** ( [details](https://github.com/fatih/gomodifytags))
|
||||
- Open `hello.go` and go with cursor in to a struct, press <kbd>F1</kbd> and run the **Go: Add Tags To Struct Fields** command.
|
||||
|
||||
|
||||
|
||||
## Contributing
|
||||
|
||||
This project welcomes contributions and suggestions. Most contributions require you to agree to a
|
||||
|
||||
24
src/hello/hello.go
Normal file
24
src/hello/hello.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package hello
|
||||
|
||||
import ()
|
||||
|
||||
// User user type
|
||||
type User struct {
|
||||
ID int64
|
||||
Name string
|
||||
Addr *Address
|
||||
}
|
||||
|
||||
// Address address type
|
||||
type Address struct {
|
||||
City string
|
||||
ZIP int
|
||||
LatLng [2]float64
|
||||
}
|
||||
|
||||
var alex = User{}
|
||||
|
||||
// Hello writes a welcome string
|
||||
func Hello() string {
|
||||
return "Hello, " + alex.Name
|
||||
}
|
||||
@@ -7,17 +7,18 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"hello"
|
||||
"io"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func hello(w http.ResponseWriter, r *http.Request) {
|
||||
io.WriteString(w, "Hello remote world!")
|
||||
func handle(w http.ResponseWriter, r *http.Request) {
|
||||
io.WriteString(w, hello.Hello())
|
||||
}
|
||||
|
||||
func main() {
|
||||
portNumber := "9000"
|
||||
http.HandleFunc("/", hello)
|
||||
http.HandleFunc("/", handle)
|
||||
fmt.Println("Server listening on port ", portNumber)
|
||||
http.ListenAndServe(":"+portNumber, nil)
|
||||
}
|
||||
Reference in New Issue
Block a user