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