From 9f1657a09502c90eb4f95e46bcc11e662399a4be Mon Sep 17 00:00:00 2001 From: DevOnLin Date: Sat, 7 Mar 2020 09:46:26 +0800 Subject: [PATCH 1/4] addGo --- images/go/go-extension.png | 3 +++ images/go/hover.png | 3 +++ images/go/signaturehelp.png | 3 +++ images/go/testcommands.png | 3 +++ 4 files changed, 12 insertions(+) create mode 100644 images/go/go-extension.png create mode 100644 images/go/hover.png create mode 100644 images/go/signaturehelp.png create mode 100644 images/go/testcommands.png diff --git a/images/go/go-extension.png b/images/go/go-extension.png new file mode 100644 index 0000000..6790354 --- /dev/null +++ b/images/go/go-extension.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a31b75185afd3775fc80e881d4e99cdfdfd32c5ea977eb2addf9263ed5e08fca +size 37120 diff --git a/images/go/hover.png b/images/go/hover.png new file mode 100644 index 0000000..1e02e1a --- /dev/null +++ b/images/go/hover.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac8428baf3fd85cdb81f9eb9ca15089b32b0b2821320d36f6bfc8466df2e56d8 +size 12324 diff --git a/images/go/signaturehelp.png b/images/go/signaturehelp.png new file mode 100644 index 0000000..fb70ff8 --- /dev/null +++ b/images/go/signaturehelp.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8cb7bbf7c9f308a1670b4a2f99dc308e23c4dc396eea32943a27d8eff241ef93 +size 10604 diff --git a/images/go/testcommands.png b/images/go/testcommands.png new file mode 100644 index 0000000..157b340 --- /dev/null +++ b/images/go/testcommands.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:822c2e9ce76c42e3e33b88db88e7a12c78bb21c5352211b9fac9bfabd01940ff +size 16178 From 0f94483fef83210b590c0c1ea89ac932ceb7cacf Mon Sep 17 00:00:00 2001 From: DevOnLin Date: Sat, 7 Mar 2020 10:00:30 +0800 Subject: [PATCH 2/4] addGoDoc --- "md/\350\257\255\350\250\200/go.md" | 133 ++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 "md/\350\257\255\350\250\200/go.md" diff --git "a/md/\350\257\255\350\250\200/go.md" "b/md/\350\257\255\350\250\200/go.md" new file mode 100644 index 0000000..5c60fbc --- /dev/null +++ "b/md/\350\257\255\350\250\200/go.md" @@ -0,0 +1,133 @@ +--- +Order: 12 +Area: languages +TOCTitle: Go +ContentId: 6f06908a-6694-4fad-ac1e-fc6d9c5747ca +PageTitle: Go with Visual Studio Code +DateApproved: 2/5/2020 +MetaDescription: Learn about Visual Studio Code editor features (code completion, debugging, snippets, linting) for Go. +--- +# 在Visual Studio Code中使用Go Go in Visual Studio Code + +Using the Go extension for Visual Studio Code, you get language features like IntelliSense, code navigation, symbol search, bracket matching, snippets, and many more that will help you in [Golang](https://golang.org/) development. + +使用Visual Studio Code上的Go扩展,你可以得到[Golang](https://golang.org/)语言特性支持,例如智能提示,代码导航,符号查找,括号匹配,代码片段等。 + +![go extension banner](images/go/go-extension.png) + +You can install the Go extension from the VS Code [Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-vscode.Go). + +你可以从VS Code [Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-vscode.Go)安装Go扩展。 + +## 智能提示 IntelliSense + +### 自动补全 Auto completions + +As you type in a Go file, you can see IntelliSense providing you with suggested completions. This even works for members in current, imported, and not yet imported packages. Just type any package name followed by `.`, and you will get suggestions for the corresponding package members. + +当你编写go文件时,你可以看见带有建议补全的智能提示。这甚至适用于当前,已导入和尚未导入的程序包中的成员。 只需键入任何软件包名称,然后输入`.`,您将获得有关相应软件包成员的建议。 + +By setting `go.autocompleteUnimportedPackages` to `true` in your [settings](/docs/getstarted/settings.md), you can also get suggestion for packages that you could import. Select one of these suggestions and an import to the selected package will be added to your file. + +在你的 [settings](/docs/getstarted/settings.md)中设置`go.autocompleteUnimportedPackages` 为 `true`,你将只得到已导入包的建议 + +>**Tip**: Use `kb(editor.action.triggerSuggest)` to trigger the suggestions manually. + +>**Tip**: 用 `kb(editor.action.triggerSuggest)` 来手动触发建议. + + +### Hover Information + +Hovering on any variable, function, or struct will give you information on that item such as documentation, signature, etc. + +![Information on hover](images/go/hover.png) + +By default, the extension uses `godef` and `godoc` to get this information. You can choose to use `gogetdoc` instead by changing the setting `go.docsTool` in your User or Workspace Settings. + +### Signature help + +When you open the `(` while calling a function, a pop-up provides signature help for the function. As you keep typing the parameters, the hint (underline) moves to the next parameter. + +![Signature Help](images/go/signaturehelp.png) + +>**Tip**: Use `kb(editor.action.triggerParameterHints)` to manually trigger the signature help when the cursor is inside the `()` in the function call. + +The extension's signature help also uses `godef` and `godoc`. You can choose to use `gogetdoc` instead by changing the setting `go.docsTool` in your User or Workspace Settings. + +## Code navigation + +Code navigation features are available in the context menu in the editor. + +- **Go To Definition** `kb(editor.action.revealDefinition)` - Go to the source code of the type definition. +- **Peek Definition** `kb(editor.action.peekDefinition)` - Bring up a Peek window with the type definition. +- **Go to References** `kb(editor.action.goToReferences)` - Show all references for the type. + +You can navigate via symbol search using the **Go to Symbol** commands from the **Command Palette** (`kb(workbench.action.showCommands)`). + +- Go to Symbol in File - `kb(workbench.action.gotoSymbol)` +- Go to Symbol in Workspace - `kb(workbench.action.showAllSymbols)` + +You can also navigate back and forth between a Go file and its test implementation using the **Go: Toggle Test File** command. + +## Build, lint, and vet + +On save, the Go extension can run `go build`, `go vet`, and your choice of linting tool (`golint` or `gometalinter`) on the package of the current file. You can control these features via the settings below: + +- `go.buildOnSave` +- `go.buildFlags` +- `go.vetOnSave` +- `go.vetFlags` +- `go.lintOnSave` +- `go.lintFlags` +- `go.lintTool` +- `go.testOnSave` + +The errors and warnings from running any/all of the above will be shown red/green squiggly lines in the editor. These diagnostics also show up in the **Problems** panel (**View** > **Problems**). + +## Formatting + +You can format your Go file using `kb(editor.action.formatDocument)` or by running the **Format Document** command from the **Command Palette** or the context menu in the editor. + +By default, formatting is run when you save your Go file. You can disable this behavior by setting `editor.formatOnSave` to `false` for the [Go] language. You can change this using your json setting files + +```json +"[go]": { + "editor.formatOnSave": false + } +``` + +You can choose among three formatting tools: `gofmt`, `goreturns`, and `goimports` by changing the setting `go.formatTool`. + +## Test + +There are many test-related commands that you can explore by typing "Go: test" in the **Command Palette**. + +![Test Commands](images/go/testcommands.png) + +The first three above can be used to generate test skeletons for the functions in the current package, file or at cursor using `gotests`. The last few can be used to run tests in the current package, file or at cursor using `go test`. There is also a command for getting test coverage. + +## Import packages + +Run the command **Go: Add Import** to get a list of packages that can be imported to your Go file. Choose one and it will get added in the import block of your Go file. + +## Rename symbols + +You can rename symbols using `kb(editor.action.rename)` or by running the **Rename Symbol** command in the context menu in the editor. + +## Debugging + +The Go extension lets you debug Go code as well. You will need to install the [Delve](https://github.com/derekparker/delve) debugger manually as a prerequisite. Read [Debugging Go code using VS Code](https://github.com/Microsoft/vscode-go/wiki/Debugging-Go-code-using-VS-Code) for setup steps, information on remote debugging and a troubleshooting guide. + +## Next steps + +This has been a brief overview showing the Go extension features within VS Code. For more information, see the details provided in the Go extension [README](https://marketplace.visualstudio.com/items?itemName=ms-vscode.Go). + +To stay up-to-date on the latest features/bug fixes for the Go extension, see the [CHANGELOG](https://github.com/Microsoft/vscode-go/blob/master/CHANGELOG.md). + +If you have any issues or feature requests, feel free to log them in the Go extension [repo](https://github.com/Microsoft/vscode-go/issues). + +If you'd like to learn more about VS Code, try these topics: + +* [Basic Editing](/docs/editor/codebasics.md) - A quick introduction to the basics of the VS Code editor. +* [Install an Extension](/docs/editor/extension-gallery.md) - Learn about other extensions are available in the [Marketplace](https://marketplace.visualstudio.com/vscode). +* [Code Navigation](/docs/editor/editingevolved.md) - Move quickly through your source code. From 1df116a0b83acf349e346824cf9b472cf7409356 Mon Sep 17 00:00:00 2001 From: DevOnLin Date: Sat, 7 Mar 2020 11:38:05 +0800 Subject: [PATCH 3/4] addGo --- images/go/go-extension.png | 3 -- images/go/hover.png | 3 -- images/go/signaturehelp.png | 3 -- images/go/testcommands.png | 3 -- "md/\350\257\255\350\250\200/go.md" | 29 +++++++++++++----- .../images/go/go-extension.png" | Bin 0 -> 37120 bytes .../images/go/hover.png" | Bin 0 -> 12324 bytes .../images/go/signaturehelp.png" | Bin 0 -> 10604 bytes .../images/go/testcommands.png" | Bin 0 -> 16178 bytes 9 files changed, 21 insertions(+), 20 deletions(-) delete mode 100644 images/go/go-extension.png delete mode 100644 images/go/hover.png delete mode 100644 images/go/signaturehelp.png delete mode 100644 images/go/testcommands.png create mode 100755 "md/\350\257\255\350\250\200/images/go/go-extension.png" create mode 100755 "md/\350\257\255\350\250\200/images/go/hover.png" create mode 100755 "md/\350\257\255\350\250\200/images/go/signaturehelp.png" create mode 100755 "md/\350\257\255\350\250\200/images/go/testcommands.png" diff --git a/images/go/go-extension.png b/images/go/go-extension.png deleted file mode 100644 index 6790354..0000000 --- a/images/go/go-extension.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a31b75185afd3775fc80e881d4e99cdfdfd32c5ea977eb2addf9263ed5e08fca -size 37120 diff --git a/images/go/hover.png b/images/go/hover.png deleted file mode 100644 index 1e02e1a..0000000 --- a/images/go/hover.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ac8428baf3fd85cdb81f9eb9ca15089b32b0b2821320d36f6bfc8466df2e56d8 -size 12324 diff --git a/images/go/signaturehelp.png b/images/go/signaturehelp.png deleted file mode 100644 index fb70ff8..0000000 --- a/images/go/signaturehelp.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8cb7bbf7c9f308a1670b4a2f99dc308e23c4dc396eea32943a27d8eff241ef93 -size 10604 diff --git a/images/go/testcommands.png b/images/go/testcommands.png deleted file mode 100644 index 157b340..0000000 --- a/images/go/testcommands.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:822c2e9ce76c42e3e33b88db88e7a12c78bb21c5352211b9fac9bfabd01940ff -size 16178 diff --git "a/md/\350\257\255\350\250\200/go.md" "b/md/\350\257\255\350\250\200/go.md" index 5c60fbc..dab9cb2 100644 --- "a/md/\350\257\255\350\250\200/go.md" +++ "b/md/\350\257\255\350\250\200/go.md" @@ -36,32 +36,45 @@ By setting `go.autocompleteUnimportedPackages` to `true` in your [settings](/doc >**Tip**: 用 `kb(editor.action.triggerSuggest)` 来手动触发建议. -### Hover Information +### 悬浮信息 Hover Information -Hovering on any variable, function, or struct will give you information on that item such as documentation, signature, etc. +Hovering on any variable, function, or struct will give you information on that item such as documentation, signature, etc. + +在任何变量,函数或者结构体上悬浮,可以提供对应的信息,例如注释,参数等等。 ![Information on hover](images/go/hover.png) -By default, the extension uses `godef` and `godoc` to get this information. You can choose to use `gogetdoc` instead by changing the setting `go.docsTool` in your User or Workspace Settings. +By default, the extension uses `godef` and `godoc` to get this information. You can choose to use `gogetdoc` instead by changing the setting `go.docsTool` in your User or Workspace Settings. + +默认情况,扩展使用`godef` 和 `godoc`获取这些信息。你可以选择使用`gogetdoc`代替。设置方法:改变用户设置或工作空间设置中的`go.docsTool`。 ### Signature help -When you open the `(` while calling a function, a pop-up provides signature help for the function. As you keep typing the parameters, the hint (underline) moves to the next parameter. +When you open the `(` while calling a function, a pop-up provides signature help for the function. As you keep typing the parameters, the hint (underline) moves to the next parameter. + +当你调用函数时,打出`(`,一个弹窗为函数提供参数帮助。当你输入一些参数,提示(下划线)移动到下一个参数。 ![Signature Help](images/go/signaturehelp.png) ->**Tip**: Use `kb(editor.action.triggerParameterHints)` to manually trigger the signature help when the cursor is inside the `()` in the function call. +>**Tip**: Use `kb(editor.action.triggerParameterHints)` to manually trigger the signature help when the cursor is inside the `()` in the function call. + +>**Tip**: 当光标在函数调用的`()`之内,用 `kb(editor.action.triggerParameterHints)` 去手动触发参数帮助。 -The extension's signature help also uses `godef` and `godoc`. You can choose to use `gogetdoc` instead by changing the setting `go.docsTool` in your User or Workspace Settings. +The extension's signature help also uses `godef` and `godoc`. You can choose to use `gogetdoc` instead by changing the setting `go.docsTool` in your User or Workspace Settings. -## Code navigation +扩展的参数帮助也使用 `godef` 和 `godoc`。你可以选择使用`gogetdoc`代替。设置方法:改变用户设置或工作空间设置中的`go.docsTool`。 -Code navigation features are available in the context menu in the editor. +## 代码导航 Code navigation + +Code navigation features are available in the context menu in the editor. + +代码导航特性适用于编辑器中的文本菜单。 - **Go To Definition** `kb(editor.action.revealDefinition)` - Go to the source code of the type definition. - **Peek Definition** `kb(editor.action.peekDefinition)` - Bring up a Peek window with the type definition. - **Go to References** `kb(editor.action.goToReferences)` - Show all references for the type. + You can navigate via symbol search using the **Go to Symbol** commands from the **Command Palette** (`kb(workbench.action.showCommands)`). - Go to Symbol in File - `kb(workbench.action.gotoSymbol)` diff --git "a/md/\350\257\255\350\250\200/images/go/go-extension.png" "b/md/\350\257\255\350\250\200/images/go/go-extension.png" new file mode 100755 index 0000000000000000000000000000000000000000..72b5db7cc82c09545f979bf7f6f3bfdffce35f0b GIT binary patch literal 37120 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
    (zHj6v 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 literal 0 HcmV?d00001 diff --git "a/md/\350\257\255\350\250\200/images/go/hover.png" "b/md/\350\257\255\350\250\200/images/go/hover.png" new file mode 100755 index 0000000000000000000000000000000000000000..850522a347fea302927d837453dbaaf088ce81a8 GIT binary patch literal 12324 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 C-B&39 literal 0 HcmV?d00001 diff --git "a/md/\350\257\255\350\250\200/images/go/signaturehelp.png" "b/md/\350\257\255\350\250\200/images/go/signaturehelp.png" new file mode 100755 index 0000000000000000000000000000000000000000..1f9007ed5adc1b9b6663e68b65e37ef6fc065ab7 GIT binary patch literal 10604 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 CBR%*4 literal 0 HcmV?d00001 diff --git "a/md/\350\257\255\350\250\200/images/go/testcommands.png" "b/md/\350\257\255\350\250\200/images/go/testcommands.png" new file mode 100755 index 0000000000000000000000000000000000000000..3bf9f7932ac7dddac4696a8ee5e30abf7ee99dcd GIT binary patch literal 16178 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 J(d+kq{|D__A2$F1 literal 0 HcmV?d00001 From a379e3a1a8c766a05467bb829935a2eb102ddc34 Mon Sep 17 00:00:00 2001 From: DevOnLin Date: Sat, 7 Mar 2020 17:11:56 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E7=BF=BB=E8=AF=91Go=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E6=89=A9=E5=B1=95=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- "md/\350\257\255\350\250\200/go.md" | 101 ++++++++++++---------------- 2 files changed, 46 insertions(+), 59 deletions(-) diff --git a/README.md b/README.md index e2874cd..b1c2600 100644 --- a/README.md +++ b/README.md @@ -96,6 +96,8 @@ Visual Studio Code 是微软推出的跨平台编辑器。它采用经典的VS * ~~[TypeScript](https://code.visualstudio.com/docs/languages/typescript)~~ * ~~[CSS, Sass and Less](https://code.visualstudio.com/docs/languages/css)~~ * ~~[Dockerfile](https://code.visualstudio.com/docs/languages/dockerfile)~~ + * ~~[Go](https://code.visualstudio.com/docs/languages/go)~~ + * RUNTIMES * ~~[Node.js](https://code.visualstudio.com/docs/runtimes/nodejs)~~ @@ -157,7 +159,7 @@ Visual Studio Code 是微软推出的跨平台编辑器。它采用经典的VS - [ichengde](https://github.com/ichengde) - [bee0060](https://github.com/bee0060) - [nanci](https://github.com/guonanci) - +- [reedthink](https://github.com/reedthink) (Fork 之后自行添加到最后) diff --git "a/md/\350\257\255\350\250\200/go.md" "b/md/\350\257\255\350\250\200/go.md" index dab9cb2..27599d2 100644 --- "a/md/\350\257\255\350\250\200/go.md" +++ "b/md/\350\257\255\350\250\200/go.md" @@ -7,84 +7,66 @@ PageTitle: Go with Visual Studio Code DateApproved: 2/5/2020 MetaDescription: Learn about Visual Studio Code editor features (code completion, debugging, snippets, linting) for Go. --- -# 在Visual Studio Code中使用Go Go in Visual Studio Code - -Using the Go extension for Visual Studio Code, you get language features like IntelliSense, code navigation, symbol search, bracket matching, snippets, and many more that will help you in [Golang](https://golang.org/) development. - +# 在Visual Studio Code中使用Go 使用Visual Studio Code上的Go扩展,你可以得到[Golang](https://golang.org/)语言特性支持,例如智能提示,代码导航,符号查找,括号匹配,代码片段等。 ![go extension banner](images/go/go-extension.png) -You can install the Go extension from the VS Code [Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-vscode.Go). - 你可以从VS Code [Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-vscode.Go)安装Go扩展。 -## 智能提示 IntelliSense +## 智能提示 -### 自动补全 Auto completions - -As you type in a Go file, you can see IntelliSense providing you with suggested completions. This even works for members in current, imported, and not yet imported packages. Just type any package name followed by `.`, and you will get suggestions for the corresponding package members. +### 自动补全 当你编写go文件时,你可以看见带有建议补全的智能提示。这甚至适用于当前,已导入和尚未导入的程序包中的成员。 只需键入任何软件包名称,然后输入`.`,您将获得有关相应软件包成员的建议。 -By setting `go.autocompleteUnimportedPackages` to `true` in your [settings](/docs/getstarted/settings.md), you can also get suggestion for packages that you could import. Select one of these suggestions and an import to the selected package will be added to your file. - 在你的 [settings](/docs/getstarted/settings.md)中设置`go.autocompleteUnimportedPackages` 为 `true`,你将只得到已导入包的建议 ->**Tip**: Use `kb(editor.action.triggerSuggest)` to trigger the suggestions manually. - >**Tip**: 用 `kb(editor.action.triggerSuggest)` 来手动触发建议. -### 悬浮信息 Hover Information - -Hovering on any variable, function, or struct will give you information on that item such as documentation, signature, etc. +### 悬浮信息 -在任何变量,函数或者结构体上悬浮,可以提供对应的信息,例如注释,参数等等。 +在任何变量,函数或者结构体上悬浮鼠标指针,可以提供对应的信息,例如注释,参数等等。 ![Information on hover](images/go/hover.png) + -By default, the extension uses `godef` and `godoc` to get this information. You can choose to use `gogetdoc` instead by changing the setting `go.docsTool` in your User or Workspace Settings. - -默认情况,扩展使用`godef` 和 `godoc`获取这些信息。你可以选择使用`gogetdoc`代替。设置方法:改变用户设置或工作空间设置中的`go.docsTool`。 - -### Signature help +默认情况,扩展使用 `godef` 和 `godoc` 获取这些信息。你可以选择使用 `gogetdoc` 代替。设置方法:改变用户设置或工作空间设置中的 `go.docsTool` 。 -When you open the `(` while calling a function, a pop-up provides signature help for the function. As you keep typing the parameters, the hint (underline) moves to the next parameter. +### 参数帮助 当你调用函数时,打出`(`,一个弹窗为函数提供参数帮助。当你输入一些参数,提示(下划线)移动到下一个参数。 ![Signature Help](images/go/signaturehelp.png) ->**Tip**: Use `kb(editor.action.triggerParameterHints)` to manually trigger the signature help when the cursor is inside the `()` in the function call. - >**Tip**: 当光标在函数调用的`()`之内,用 `kb(editor.action.triggerParameterHints)` 去手动触发参数帮助。 -The extension's signature help also uses `godef` and `godoc`. You can choose to use `gogetdoc` instead by changing the setting `go.docsTool` in your User or Workspace Settings. - 扩展的参数帮助也使用 `godef` 和 `godoc`。你可以选择使用`gogetdoc`代替。设置方法:改变用户设置或工作空间设置中的`go.docsTool`。 -## 代码导航 Code navigation - -Code navigation features are available in the context menu in the editor. - +## 代码导航 代码导航特性适用于编辑器中的文本菜单。 -- **Go To Definition** `kb(editor.action.revealDefinition)` - Go to the source code of the type definition. -- **Peek Definition** `kb(editor.action.peekDefinition)` - Bring up a Peek window with the type definition. -- **Go to References** `kb(editor.action.goToReferences)` - Show all references for the type. +- **转到定义** `kb(editor.action.revealDefinition)` - 转到函数定义的源代码 +- **peek定义** `kb(editor.action.peekDefinition)` - 打开一个带有类型定义的Peek窗口 +- **转到参考** `kb(editor.action.goToReferences)` - 为这个类型显示所有参考 -You can navigate via symbol search using the **Go to Symbol** commands from the **Command Palette** (`kb(workbench.action.showCommands)`). +使用 **Command Palette** (`kb(workbench.action.showCommands)`)中的 **Go to Symbol**命令, 你可以通过符号搜索进行导航。 - Go to Symbol in File - `kb(workbench.action.gotoSymbol)` -- Go to Symbol in Workspace - `kb(workbench.action.showAllSymbols)` +- Go to Symbol in Workspace - `kb(workbench.action.showAllSymbols)` + +- 转到文件中的符号 - `kb(workbench.action.gotoSymbol)` +- 转到工作区的符号 - `kb(workbench.action.showAllSymbols)` You can also navigate back and forth between a Go file and its test implementation using the **Go: Toggle Test File** command. -## Build, lint, and vet +你还可以在Go文件之间来回导航。它使用 **Go: Toggle Test File** 命令测试执行。 + +## 构建,提示和检查 Build, lint, and vet -On save, the Go extension can run `go build`, `go vet`, and your choice of linting tool (`golint` or `gometalinter`) on the package of the current file. You can control these features via the settings below: +保存时,Go扩展可以在当前文件的包上运行`go build`, `go vet` 和你选择的检查工具(`golint` or `gometalinter`)。通过下面的设置,你可以控制这些特性: - `go.buildOnSave` - `go.buildFlags` @@ -95,13 +77,15 @@ On save, the Go extension can run `go build`, `go vet`, and your choice of linti - `go.lintTool` - `go.testOnSave` -The errors and warnings from running any/all of the above will be shown red/green squiggly lines in the editor. These diagnostics also show up in the **Problems** panel (**View** > **Problems**). -## Formatting +运行上述任何操作所产生的错误和警告将在编辑器中以红色或绿色波浪线显示。这些诊断也在 **问题** 面板中显示(**视图** > **问题**) + +## 格式化 + -You can format your Go file using `kb(editor.action.formatDocument)` or by running the **Format Document** command from the **Command Palette** or the context menu in the editor. +你可以用`kb(editor.action.formatDocument)`或者运行**命令面板**(或编辑器中的文本菜单)中的 **格式化文档t** 命令来格式化Go文件。 -By default, formatting is run when you save your Go file. You can disable this behavior by setting `editor.formatOnSave` to `false` for the [Go] language. You can change this using your json setting files +默认情况下,当你保存Go文件时,会自动格式化代码。你可以设置`editor.formatOnSave` 为 `false` 来禁用自动格式化。也可以通过修改json设置文件去修改 ```json "[go]": { @@ -109,37 +93,38 @@ By default, formatting is run when you save your Go file. You can disable this b } ``` -You can choose among three formatting tools: `gofmt`, `goreturns`, and `goimports` by changing the setting `go.formatTool`. +你可以选择三个格式化工具:`gofmt`, `goreturns`, `goimports` 。设置 `go.formatTool` 进行修改。 -## Test +## 测试 -There are many test-related commands that you can explore by typing "Go: test" in the **Command Palette**. +在 **命令面板** 中输入"Go:test",,你可以看到很多测试相关的命令。 ![Test Commands](images/go/testcommands.png) -The first three above can be used to generate test skeletons for the functions in the current package, file or at cursor using `gotests`. The last few can be used to run tests in the current package, file or at cursor using `go test`. There is also a command for getting test coverage. +最上边三个可以使用 `gotests` 为当前包、文件、光标所在处中的函数生成测试框架。 +最后几个可以使用“go test”在当前包、文件或光标所在处运行测试。还有一个获取测试覆盖率的命令。 -## Import packages +## 导入包 -Run the command **Go: Add Import** to get a list of packages that can be imported to your Go file. Choose one and it will get added in the import block of your Go file. +执行 **Go: Add Import** 命令,得到你可导入到你的Go文件的包的列表。选择一个,它会被添加到你的Go文件的导入块。 -## Rename symbols +## 重命名符号 -You can rename symbols using `kb(editor.action.rename)` or by running the **Rename Symbol** command in the context menu in the editor. +用 `kb(editor.action.rename)` 或者运行编辑器文本菜单的**Rename Symbol** 命令可以重命名符号。 -## Debugging +## 调试 -The Go extension lets you debug Go code as well. You will need to install the [Delve](https://github.com/derekparker/delve) debugger manually as a prerequisite. Read [Debugging Go code using VS Code](https://github.com/Microsoft/vscode-go/wiki/Debugging-Go-code-using-VS-Code) for setup steps, information on remote debugging and a troubleshooting guide. +Go扩展可以让你调试Go代码。你需要先手动安装 [Delve](https://github.com/derekparker/delve) 调试器。通过访问 [Debugging Go code using VS Code](https://github.com/Microsoft/vscode-go/wiki/Debugging-Go-code-using-VS-Code) ,获取设置步骤,远程调试的信息和故障排除指导。 -## Next steps +## 下一步 -This has been a brief overview showing the Go extension features within VS Code. For more information, see the details provided in the Go extension [README](https://marketplace.visualstudio.com/items?itemName=ms-vscode.Go). +这是一个简短的概述,展示了VSCode中的Go扩展特性。要获取更多信息,看Go扩展[README](https://marketplace.visualstudio.com/items?itemName=ms-vscode.Go)提供的详细介绍。 -To stay up-to-date on the latest features/bug fixes for the Go extension, see the [CHANGELOG](https://github.com/Microsoft/vscode-go/blob/master/CHANGELOG.md). +要获取最新的Go扩展特性或漏洞修复,看[CHANGELOG](https://github.com/Microsoft/vscode-go/blob/master/CHANGELOG.md)。 -If you have any issues or feature requests, feel free to log them in the Go extension [repo](https://github.com/Microsoft/vscode-go/issues). +如果你有任何疑问或者请求开发一个新特性,可以到Go扩展[repo](https://github.com/Microsoft/vscode-go/issues)提出。 -If you'd like to learn more about VS Code, try these topics: +如果你想要了解更多VS Code的信息,试试去下边的话题: * [Basic Editing](/docs/editor/codebasics.md) - A quick introduction to the basics of the VS Code editor. * [Install an Extension](/docs/editor/extension-gallery.md) - Learn about other extensions are available in the [Marketplace](https://marketplace.visualstudio.com/vscode).