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 \
 | 
					RUN apt-get update \
 | 
				
			||||||
    && apt-get -y install --no-install-recommends apt-utils 2>&1
 | 
					    && 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
 | 
					# gocode-gomod
 | 
				
			||||||
RUN go get -x -d github.com/stamblerre/gocode 2>&1 \
 | 
					RUN go get -x -d github.com/stamblerre/gocode 2>&1 \
 | 
				
			||||||
    && go build -o gocode-gomod github.com/stamblerre/gocode \
 | 
					    && 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
 | 
					# Set the default shell to bash rather than sh
 | 
				
			||||||
ENV SHELL /bin/bash
 | 
					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"
 | 
							"seccomp=unconfined"
 | 
				
			||||||
	],
 | 
						],
 | 
				
			||||||
	"settings": {
 | 
						"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",
 | 
					            "type": "go",
 | 
				
			||||||
            "request": "launch",
 | 
					            "request": "launch",
 | 
				
			||||||
            "mode": "debug",
 | 
					            "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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										19
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								README.md
									
									
									
									
									
								
							@@ -39,6 +39,25 @@ Some things to try:
 | 
				
			|||||||
   - Press <kbd>F1</kbd> and run the **Remote-Containers: Forward Port from Container...** command.
 | 
					   - Press <kbd>F1</kbd> and run the **Remote-Containers: Forward Port from Container...** command.
 | 
				
			||||||
   - Select port 5000.
 | 
					   - Select port 5000.
 | 
				
			||||||
   - Click "Open Browser" in the notification that appears to access the web app on this new port.
 | 
					   - 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
 | 
					## Contributing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										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 (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
						"hello"
 | 
				
			||||||
	"io"
 | 
						"io"
 | 
				
			||||||
	"net/http"
 | 
						"net/http"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func hello(w http.ResponseWriter, r *http.Request) {
 | 
					func handle(w http.ResponseWriter, r *http.Request) {
 | 
				
			||||||
	io.WriteString(w, "Hello remote world!")
 | 
						io.WriteString(w, hello.Hello())
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func main() {
 | 
					func main() {
 | 
				
			||||||
	portNumber := "9000"
 | 
						portNumber := "9000"
 | 
				
			||||||
	http.HandleFunc("/", hello)
 | 
						http.HandleFunc("/", handle)
 | 
				
			||||||
	fmt.Println("Server listening on port ", portNumber)
 | 
						fmt.Println("Server listening on port ", portNumber)
 | 
				
			||||||
	http.ListenAndServe(":"+portNumber, nil)
 | 
						http.ListenAndServe(":"+portNumber, nil)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user