精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

VSCode 開發(fā) Go 程序也可以和 GoLand一樣強大

開發(fā) 后端
好的編程語言搭配好的開發(fā)工具,那必定是如虎添翼。Gopher 們應(yīng)該都知曉 GoLand,這是 IDEA 專門為 Go 語言開發(fā)的集成開發(fā)環(huán)境(IDE)。此前 IDEA 對 Go 的支持是通過插件的,后來開發(fā)獨立的 IDE,可見 IDEA 看到了 Go 的發(fā)展和前景。

好的編程語言搭配好的開發(fā)工具,那必定是如虎添翼。Gopher 們應(yīng)該都知曉 GoLand,這是 IDEA 專門為 Go 語言開發(fā)的集成開發(fā)環(huán)境(IDE)。此前 IDEA 對 Go 的支持是通過插件的,后來開發(fā)獨立的 IDE,可見 IDEA 看到了 Go 的發(fā)展和前景。

今天這篇文章,主要給大家介紹如何將 VSCode 打造成為一個強大的 Go 開發(fā)工具。

vscode-go 插件

打開 VSCode,切換到擴展搜索界面,輸入 go 搜索;或者打開一個 Go 源文件,VSCode 會建議你安裝 vscode-go 插件。

之所以叫 vscode-go,是因為在 GitHub 的項目名是這個,而在 VSCode 中,插件的名稱是 Go。該插件最初是微軟維護的,目前已經(jīng)交給 Go Team 維護。

安裝完后,該插件會提示你安裝它的一些依賴。如果沒有提示,可以點擊 Analysis Tools Missing。最后點擊 Install 安裝。

 

VSCode 開發(fā) Go 程序也可以和 GoLand一樣強大

在 Output 窗口會看到類似如下的輸出:

  1. Tools environment: GOPATH=/Users/xuxinhua/go 
  2. Installing 13 tools at /Users/xuxinhua/go/bin in module mode. 
  3.   gocode  gopkgs  go-outline 
  4.   go-symbols 
  5.   guru  gorename  gotests  dlv  gocode-gomod  godef  goimports  golint  goplsInstalling github.com/mdempsky/gocode (/Users/xuxinhua/go/bin/gocode) SUCCEEDED 
  6. Installing github.com/uudashr/gopkgs/v2/cmd/gopkgs (/Users/xuxinhua/go/bin/gopkgs) SUCCEEDED 
  7. Installing github.com/ramya-rao-a/go-outline (/Users/xuxinhua/go/bin/go-outline) SUCCEEDED 
  8. Installing github.com/acroca/go-symbols (/Users/xuxinhua/go/bin/go-symbols) SUCCEEDED 
  9. Installing golang.org/x/tools/cmd/guru (/Users/xuxinhua/go/bin/guru) SUCCEEDED 
  10. Installing golang.org/x/tools/cmd/gorename (/Users/xuxinhua/go/bin/gorename) SUCCEEDED 
  11. Installing github.com/cweill/gotests/... (/Users/xuxinhua/go/bin/gotests) SUCCEEDED 
  12. Installing github.com/go-delve/delve/cmd/dlv (/Users/xuxinhua/go/bin/dlv) SUCCEEDED 
  13. Installing github.com/stamblerre/gocode (/Users/xuxinhua/go/bin/gocode-gomod) SUCCEEDED 
  14. Installing github.com/rogpeppe/godef (/Users/xuxinhua/go/bin/godef) SUCCEEDED 
  15. Installing golang.org/x/tools/cmd/goimports (/Users/xuxinhua/go/bin/goimports) SUCCEEDED 
  16. Installing golang.org/x/lint/golint (/Users/xuxinhua/go/bin/golint) SUCCEEDED 
  17. Installing golang.org/x/tools/gopls (/Users/xuxinhua/go/bin/gopls) SUCCEEDED 

目前因為 gopls 還屬于 Beta 階段,默認情況下未啟用。因此你的輸出應(yīng)該沒有 gopls 的安裝。一旦啟用了 gopls,VSCode 會提示你安裝 gopls,確認安裝即可。

注意:因為以上工具有些需要科學上網(wǎng)才能下載,因此請務(wù)必做了如下的配置,啟用 GOPROXY:

  1. go env -w GOPROXY=https://goproxy.cn,direct 

同時建議 Go 版本 1.13+

還有一個小提示:自從有了 Module,GOPATH 漸漸淡出視野。然而,目前 go get 安裝 binary 會安裝到默認的 GOPATH (即 $HOME/go),為了讓上面那些工具方便使用,建議將$HOME/go/bin 加入 PATH 環(huán)境變量中。(你可以通過 VSCode 的配置:go.toolsGopath 修改工具的安裝位置)。

此外,可以通過 Command Palette 命令窗口,搜索 Go: Install/Update Tools 來更新或安裝上面的工具。

這些工具的作用

上面安裝了一堆的工具,正是因為類似的工具,讓 VSCode 這樣的文本編輯器可以更好地開發(fā) Go 語言項目。

gocode 和 gocode-gomod

在早期,gocode 對于使用 Sublime Text 之類開發(fā) Go 語言項目的小伙伴來說,功不可沒。最早的項目是 https://github.com/nsf/gocode,之后不維護,mdempsky fork 了一份,繼續(xù)維護 https://github.com/mdempsky/gocode。然而,Go 1.11 開始,由于 Module 的出現(xiàn),gocode 不再好使,因為它只支持 GOPATH 項目,于是又出現(xiàn)了另一個 fork:https://github.com/stamblerre/gocode,這就是 gocode-gomod。

然而,隨著 gopls 的出現(xiàn),以上三個項目都建議直接使用過 Go Language Server,即 gopls。因此對于 gocode,你可以忽略。

gopkgs

這是 go list all 命令的替代者,用于列出可用的 Go 包,速度比 go list all 更快。

go-outline

將 Go 源碼中的聲明提取為 JSON 的工具。

go-symbols

用于從 go 源代碼樹中提取包符號的 JSON 表示。

guru

為編輯器提供 Go 代碼導航功能的工具。Go 官方提供。用戶手冊見:http://golang.org/s/using-guru。由于有了 gopls,這個不需要了。

gorename

從名稱就知道是干嘛的。

gotests

從源代碼自動生成 Go 測試樣板文件。

delve

不用介紹吧,這是專為 Go 的調(diào)試器。

godef

查找源碼中的符號(symbols)信息。

goimports

自動導入缺失或移除多余的 import。同時還兼帶有 gofmt 的功能。

golint

官方的 Go 源碼 linter。實際中大家更喜歡 golangci-lint,它更快,支持并行,而且可以使用緩存,支持 yaml 配置等。VSCode 的配置中支持修改 Linter Tool,默認使用的 golint。當你修改為其他的,而系統(tǒng)沒有安裝對應(yīng)的工具時,VSCode 會提示你安裝。另外,從 revive 的項目中看到,使用它的也不少。

 

VSCode 開發(fā) Go 程序也可以和 GoLand一樣強大

小結(jié)

隨著你修改 VSCode 的配置,可能還會安裝其他的工具,這里不一一介紹。你遇到了,看一下它的 GitHub 首頁,就大概知道它的用途了。你也可以在這里查看到 vscode-go 插件使用的所有工具列表:https://github.com/golang/vscode-go/blob/master/docs/tools.md,將依賴的工具大概分成了 4 大類:工具鏈、文檔類、格式化類和診斷類。

另外值得一提的是,當你使用 gopls 時,大部分的工具是不需要的。

配置 vscode-go 插件

vscode-go 插件幾乎是開箱即用的。但由于目前 gopls 默認未啟用,需要做一些簡單的配置。先針對 go 和 go.mod 進行如下配置:(與是否啟用 gopls 無關(guān))

  1. "[go]": { 
  2.     "editor.formatOnSave"true
  3.     "editor.codeActionsOnSave": { 
  4.         "source.organizeImports"true
  5.     },    // Optional: Disable snippets, as they conflict with completion ranking. 
  6.     "editor.snippetSuggestions""none"
  7. },"[go.mod]": { 
  8.     "editor.formatOnSave"true
  9.     "editor.codeActionsOnSave": { 
  10.         "source.organizeImports"true
  11.     },}, 

其他配置的核心圍繞著 gopls 進行,官方建議,如果你使用了 Module,你應(yīng)該啟用 gopls。不過啟用 gopls 之前你需要確保:

  • 你的 Go 版本 >= 1.12;
  • 你的項目使用了 Module;

如果你還在使用低版本或使用 GOPATH,建議你該升級了。Module 是未來,使用 VSCode,gopls 也是未來。

打開 VSCode 的配置,找到 Extensions 中的 Go,發(fā)現(xiàn)配置項不少。大部分都是針對上面那一堆工具的配置。可見這個擴展的功能最初是通過使用上面一系列的命令行工具實現(xiàn)的。這引入了復雜性,因為每個特性都是由不同的工具提供的。在上篇介紹 LSP 的文章中提到,Language Server 使所有編輯器支持所有編程語言,而不需要這些個性化的工具。它們還提供了速度改進,因為它們可以緩存和重用結(jié)果。

  • 如果你就是不想使用 gopls,這里列出了該插件支持的所有配置 https://github.com/golang/vscode-go/blob/master/docs/settings.md#detailed-list,在眾多配置中,如果某個配置有這樣的語句:Not applicable when using the language server ,表示 gopls 模式下該配置無效。

因此,我們不糾結(jié)之前的那些,只關(guān)注 gopls 相關(guān)的配置。(可以通過打開 Command Palette,搜索 Open Settings,直接打開配置文件)

啟用 gopls

打開 VSCode 配置界面,定位到 Extensions -> Go 中,找到 Use Language Server,勾選上。

 

VSCode 開發(fā) Go 程序也可以和 GoLand一樣強大

對應(yīng)的配置是:"Go.useLanguageServer": true。如果你本地沒有安裝 gopls,會提示安裝。如果沒有提示,可以運行 Go: Install/Update Tools 命令并選擇 gopls 進行安裝。當 gopls 有更新時,VSCode 會自動更新。

配置 gopls

針對 gopls 有三項配置:

  • go.languageServerExperimentalFeatures:允許你禁用某些功能,一些實驗性的特性;支持 diagnostics 和 documentLink,分別表示禁用診斷警告和禁用文檔鏈接;一般不需要配置;
  • go.languageServerFlags:允許將 flags 傳遞給 gopls 進程;這個需要先了解下 gopls 命令的 flags;
  • gopls:目前 VSCode 不認,但起作用;

關(guān)于第 3 個配置 gopls,支持的配置列表參考:https://github.com/golang/tools/blob/master/gopls/doc/settings.md,比如:

  1. "gopls": { 
  2.   "usePlaceholders"true
  3.   "completeUnimported"true 

關(guān)于第 2 個配置,在后面專門介紹。一般我們只需要設(shè)置如下配置即可,vscode-go 的配置就算完成。

  1. "go.useLanguageServer"true
  2. "[go]": { 
  3.     "editor.formatOnSave"true
  4.     "editor.codeActionsOnSave": { 
  5.         "source.organizeImports"true
  6.     },    // Optional: Disable snippets, as they conflict with completion ranking.    "editor.snippetSuggestions""none"
  7. },"[go.mod]": { 
  8.     "editor.formatOnSave"true
  9.     "editor.codeActionsOnSave": { 
  10.         "source.organizeImports"true
  11.     },},"go.trace.server""verbose"
  12. "gopls": { 
  13.     // Add parameter placeholders when completing a function
  14.    "usePlaceholders"false
  15.    // If true, enable additional analyses with staticcheck. 
  16.    // Warning: This will significantly increase memory usage.   "staticcheck"false
  17. },"go.languageServerFlags": [ 
  18.     "-remote=auto""-logfile=auto""-debug=:0""-rpc.trace"

再談 gopls

gopls 涉及到的內(nèi)容很多,這里主要聊聊和 VSCode 編輯器相關(guān)的部分。

當在 VSCode 中啟用 Use Language Server 時,它會啟動一個 gopls 進程,即它就是 LSP 的實現(xiàn),VSCode 通過 vscode-go 和 gopls 通訊。

看看 gopls 命令提供了哪些功能:

  1. $ gopls -h 
  2. The Go Language source tools.Usage: gopls [flags] <command> [command-flags] [command-args]gopls is a Go language server. It is typically used with an editor to provide 
  3. language features. When no command is specified, gopls will default to the 'serve' 
  4. command. The language features can also be accessed via the gopls command-line interface.Available commands are:main:  serve : run a server for Go code using the Language Server Protocol 
  5.   version : print the gopls version information 
  6.   bug : report a bug in gopls 
  7. features:  check : show diagnostic results for the specified file 
  8.   definition : show declaration of selected identifier 
  9.   folding_ranges : display selected file's folding ranges 
  10.   format : format the code according to the go standard 
  11.   highlight : display selected identifier's highlights 
  12.   implementation : display selected identifier's implementation 
  13.   imports : updates import statements 
  14.   inspect : inspect server state (daemon mode only
  15.   links : list links in a file 
  16.   prepare_rename : test validity of a rename operation at location 
  17.   references : display selected identifier's references 
  18.   rename : rename selected identifier  signature : display selected identifier's signature 
  19.   fix : apply suggested fixes 
  20.   symbols : display selected file's symbols 
  21.   workspace_symbol : search symbols in workspace 
  22. gopls flags are:  -debug string     serve debug information on the supplied address 
  23.   -listen string     address on which to listen for remote connections. If prefixed by 'unix;', the subsequent address is assumed to be a unix domain socket. Otherwise, TCP is used. 
  24.   -listen.timeout duration     when used with -listen, shut down the server when there are no connected clients for this duration 
  25.   -logfile string     filename to log to. if value is "auto"then logging to a default output file is enabled 
  26.   -mode string     no effect 
  27.   -ocagent string     the address of the ocagent (e.g. http://localhost:55678), or off (default "off"
  28.   -port int     port on which to run gopls for debugging purposes 
  29.   -profile.cpu string     write CPU profile to this file 
  30.   -profile.mem string     write memory profile to this file 
  31.   -profile.trace string     write trace log to this file 
  32.   -remote string     forward all commands to a remote lsp specified by this flag. With no special prefix, this is assumed to be a TCP address. If prefixed by 'unix;', the subsequent address is assumed to be a unix domain socket. If 'auto'or prefixed by 'auto;', the remote address is automatically resolved based on the executing environment. 
  33.   -remote.debug string     when used with -remote=auto, the -debug value used to start the daemon 
  34.   -remote.listen.timeout duration     when used with -remote=auto, the -listen.timeout value used to start the daemon (default 1m0s) 
  35.   -remote.logfile string     when used with -remote=auto, the -logfile value used to start the daemon 
  36.   -rpc.trace     print the full rpc trace in lsp inspector format 
  37.   -v verbose output  -vv     very verbose output 

相關(guān)的子命令和 flags 不少。

默認情況下,每次啟動一個 VSCode 窗口,gopls 進程就會多一個。因為 gopls 需要維護大量的緩存,方便對編輯的源代碼進行分析。因此,這種工作模式會導致 gopls 占用太多資源。

為了解決此類問題,gopls 支持一種新的模式,即啟動一個單一的、持久的、共享的 gopls “守護進程” 負責管理所有 gopls 會話。在這種模式下,編輯器的每一個窗口依然會啟動一個新的 gopls,不過這個 gopls 只是充當轉(zhuǎn)發(fā)器,負責將 LSP 轉(zhuǎn)發(fā)到那個共享的 gopls 實例,并記錄相關(guān)指標、日志和 rpc 跟蹤,因此這個 gopls 占用資源很少。

要使用共享 gopls 實例,必須有一個守護進程。你可以手動啟動,不過更方便的是讓 gopls 轉(zhuǎn)發(fā)器進程根據(jù)需要啟動共享守護進程。具體來說是使用 -remote=true 這個 flag:

  1. gopls -remote=auto -logfile=auto -debug=:0 -remote.debug=:0 -rpc.trace 

對于 VSCode 來說就是上文看到的如下配置:

  1. "go.languageServerFlags": [ 
  2.     "-remote=auto""-logfile=auto""-debug=:0""-rpc.trace"

這將導致該進程在需要時自動啟動 gopls 守護進程,連接到它并轉(zhuǎn)發(fā) LSP。

注意,在沒有連接客戶端的情況下,共享 gopls 進程將在一分鐘后自動關(guān)閉。

關(guān)于共享 gopls 更多的內(nèi)容,可以查看 https://github.com/golang/tools/blob/master/gopls/doc/daemon.md 文檔。

另外上面配置中還有一個未提到:

  1. "go.trace.server""verbose"

這用于在 Output 中輸出客戶端和 gopls Server 的通訊,方便調(diào)試,根據(jù)需要開啟。

此外,你應(yīng)該想到了,gopls 還支持遠程開發(fā)。(上篇文章有人問,如果沒有網(wǎng)絡(luò)怎么辦。gopls 默認是在本地啟動服務(wù)的,所以不需要有網(wǎng)絡(luò),但這個遠程開發(fā)就需要有網(wǎng)絡(luò)了)對遠程開發(fā)感興趣的,可以查看文檔:https://github.com/golang/tools/blob/master/gopls/doc/vscode.md#vscode-remote-development-with-gopls。

體驗下強大的 VSCode

到這里,一個強大的 Go 語言開發(fā)環(huán)境就搞定了。來體驗一下吧。

以 studygolang 源碼為例,下載源碼:

  1. $ git clone https://github.com/studygolang/studygolang 

打開 VSCode,選擇 File -> Open… 打開 studygolang 文件夾。打開 main.go 文件,分別嘗試如下功能:

  • Code completion:輸入 fmt.Println 試試,看是否能正確提示;
  • Hover:光標懸停在某個 symbol 上,看是否能正確出現(xiàn)文檔提示;
  • Jump to definition:按住 Command(MacOS)或 CTRL(Linux 或 Windows) 點擊某個 symbol,能否正確跳轉(zhuǎn)到定義;
  • Find references:在某個 symbol 上按 Shift + F12,能否正確顯示引用處;
  • 。。。

不出意外,以上功能都應(yīng)該正常。

另外就是調(diào)試,在玩轉(zhuǎn) VSCode 系列教程第一篇已經(jīng)簡單介紹了調(diào)試功能,這里不重復。

聊聊 Lint

Lint 是一個很有用的工具,各語言都會有。Go 語言也不例外,官方有一個工具 golint。然而,大家更喜歡第三方的 lint 工具,因為無論在性能、功能還是可定制性方面都更強大。VSCode 目前默認使用 golint,但還支持另外三種 lint 工具:

  • golangci-lint
  • revive
  • staticcheck

這三個工具都不錯,其中 staticcheck 還受到了 Google 和 Go 的贊助,因此有人建議廢棄官方的 golint,同時將 staticcheck 設(shè)為默認,當然也有建議 revive 的,相關(guān) issue[1]。不過已經(jīng)確認的是 golint 會凍結(jié)、廢棄:issue 38968[2]。

這三個工具,每一個都涉及到不少內(nèi)容。不過基本都是開箱即用,另外可以根據(jù)自己的需要進行定制。我目前沒有切換,還是用的 golint,原因有 2:

  • golint 目前基本夠用,沒有過多折騰這塊;
  • golint 的輸出在 VSCode 的 PROBLEMS 窗口,而其他三個都在 OUTPUT 窗口。不喜歡;

期待哪天它們?nèi)齻€中的某個轉(zhuǎn)正吧。

和 GoLand 還有差距?

之前文章有人提到,VSCode 是否可以做到和 GoLand 類似的,將第三方依賴在 Explorer 顯示。好比 GoLand 的 External Libraries。

研究了一下,可以這么實現(xiàn)。

  • 打開 VSCode,將某個項目加入,例如上面 studygolang;
  • File -> Save Workspace As… 保存 Workspace,比如命名為 studygolang;
  • 在 Explorer 中單擊右鍵,選擇 Add Folder to Workspace…,找到 module 第三方庫的路徑,一般是 $HOME/go/pkg/mod;
  • 打開 studygolang.code-workspace,folders 改為:
  1. "folders": [ 
  2.   {    "name""studygolang"
  3.     "path""." 
  4.   },  {    "name""External Libraries"
  5.     "path""../../../go/pkg/mod" 
  6.   }] 

注意兩個 name 的值。保存后,Explorer 變成這樣:

 

VSCode 開發(fā) Go 程序也可以和 GoLand一樣強大

當瀏覽代碼導航到依賴的庫時,左邊 Explorer 也會定位到相應(yīng)的目錄。整體和 GoLand 還是類似的。

最后建議一個 Go 項目一個 VSCode 窗口,這樣不會亂。

總結(jié)

講了這么多,VSCode 打造為 Go 的開發(fā)環(huán)境,你還滿意嗎?看看我的 VSCode 界面:

 

VSCode 開發(fā) Go 程序也可以和 GoLand一樣強大

注:左邊 Explorer 漂亮的文件和文件夾圖標使用的是 vscode-icons 插件。

關(guān)于 VSCode 進行 Go 開發(fā),如果你有其他疑問,歡迎留言交流。

責任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2020-11-12 08:30:38

Java微服務(wù)Go

2011-03-14 16:51:24

2009-03-07 18:53:46

Chrome瀏覽器訂制

2011-10-27 09:42:19

ASP.NET

2020-06-23 08:10:30

Spring容器權(quán)限

2017-01-09 10:47:52

微信小程序

2023-02-15 08:17:20

VSCodeTypeScrip

2020-02-28 15:49:26

2021-04-12 10:20:20

Java微服務(wù)Go

2021-08-12 06:08:15

CSS 技巧組件狀態(tài)

2009-02-04 15:43:45

敏捷開發(fā)PHPFleaPHP

2015-02-05 13:27:02

移動開發(fā)模塊SDK

2025-05-26 04:00:00

AI編程開發(fā)

2021-12-23 15:11:46

Web 3.0元宇宙Metaverse

2021-12-22 07:31:18

RedisNoSQL數(shù)據(jù)庫

2020-01-09 17:03:29

人工智能技術(shù)算法

2021-08-27 06:41:34

Docker ContainerdRun&Exec

2015-08-14 13:45:32

程序員

2015-08-13 10:38:25

程序員工程師

2021-12-21 15:28:30

廣義形狀GSE自動駕駛
點贊
收藏

51CTO技術(shù)棧公眾號

在线精品亚洲一区二区| 国产99久久精品一区二区 夜夜躁日日躁| 色综合色综合色综合色综合| 国产原创在线观看| 成人综合在线视频| 国产精品高潮呻吟久久av无限 | 国产欧美一区二区精品久久久| 欧美日韩一级片网站| 国产综合中文字幕| 欧美日韩欧美| 91视频www| 91夜夜未满十八勿入爽爽影院| 日韩 欧美 精品| 欧美xxxxx视频| 亚洲精品视频免费| 国产又黄又嫩又滑又白| 粉嫩一区二区三区| 亚洲国产成人tv| 亚洲欧美日韩不卡| 精华区一区二区三区| 国产电影精品久久禁18| 国产精品久久久久高潮| 日本在线小视频| 午夜精品久久99蜜桃的功能介绍| 亚洲午夜色婷婷在线| 中文字幕乱码在线| 精品一区二区三区中文字幕| 色8久久精品久久久久久蜜| 天天做天天躁天天躁| 色的视频在线免费看| 91免费观看在线| 成人做爰66片免费看网站| 一本色道久久综合亚洲| 久久久久久久波多野高潮日日| 久久久久国产精品免费网站| 国精品人伦一区二区三区蜜桃| 亚洲人成网亚洲欧洲无码| 日韩欧美国产午夜精品| 亚洲第一天堂久久| 国产精品xxx| 91久久精品一区二区二区| 欧美在线观看成人| 日韩视频亚洲视频| 林心如三级全黄裸体| 国产日韩欧美一区二区三区| 亚洲国产成人在线播放| 亚洲午夜久久久久久久久| 国产va免费精品观看精品| 欧美疯狂性受xxxxx喷水图片| 久久婷婷国产91天堂综合精品| 在线中文字幕播放| 疯狂做受xxxx高潮欧美日本| 自慰无码一区二区三区| 日韩激情电影免费看| 午夜一区二区三区视频| 亚洲人成无码网站久久99热国产| 久久五月精品中文字幕| 亚洲中国最大av网站| 国产美女作爱全过程免费视频| 最新国产在线拍揄自揄视频| 亚洲精品少妇30p| 毛片在线视频观看| av中文字幕电影在线看| 午夜久久电影网| 日本成年人网址| 美脚恋feet久草欧美| 在线观看精品一区| 国产美女18xxxx免费视频| 91亚洲精品在看在线观看高清| 欧美一三区三区四区免费在线看| 秋霞午夜鲁丝一区二区 | 蜜桃狠狠色伊人亚洲综合网站| 天天插天天干天天操| 99久久精品免费看国产免费软件| 久久99国产精品99久久| 九色视频在线观看免费播放| 亚洲国产精华液网站w| 一区二区三区在线视频111| 黄a在线观看| 午夜影院久久久| 欧美精品无码一区二区三区| 日韩欧美一区二区三区在线观看 | 成人欧美一区二区三区小说| 欧美一级黄色录像片| 欧美寡妇性猛交xxx免费| 都市激情亚洲色图| www.日本一区| 成人午夜大片| 欲色天天网综合久久| 欧美第一页在线观看| 日韩视频一区二区三区在线播放免费观看| 国产精品444| 国产免费一区二区三区免费视频| 不卡在线观看av| 亚洲视频导航| 麻豆免费在线| 69久久99精品久久久久婷婷| 黑丝av在线播放| 国产精品成人一区二区不卡| 欧美高清视频免费观看| 欧美男人天堂网| 高清不卡一二三区| 色播亚洲婷婷| 2020国产在线| 911精品产国品一二三产区| 国产精品一区二区无码对白| 日韩av专区| 91精品国产免费久久久久久 | 国产成人高清在线| 欧洲一区二区在线观看| 欧美78videosex性欧美| 在线观看亚洲一区| 亚洲av成人精品一区二区三区| 日韩电影免费网址| 68精品国产免费久久久久久婷婷 | 国产成人精品一区二| 欧美一区二区三区在线播放 | 亚洲午夜久久久久久久久久久 | 福利一区在线观看| 亚洲精品一区二| 中文字幕这里只有精品| 精品美女一区二区| 男女全黄做爰文章| 久久国产精品99国产| 国产伦精品一区二区三| √天堂8在线网| 欧美巨大另类极品videosbest | 国产精品久久久乱弄| 国产成人高潮免费观看精品| 日日躁夜夜躁白天躁晚上躁91| 亚洲欧美一区二区久久| 激情黄色小视频| 欧美日韩性在线观看| 2023亚洲男人天堂| 秋霞网一区二区| 亚洲一区二区三区四区在线观看| 6080国产精品| 综合激情视频| 亚洲a成v人在线观看| 久久国产精品一区| 欧美日韩国产一二三| 懂色av蜜臀av粉嫩av永久| 免费高清成人在线| 日本在线视频一区| 日韩在线免费| 综合国产在线观看| 岳乳丰满一区二区三区| 国产精品久久久久久久久快鸭| 九色91popny| 成人av国产| 成人国产在线视频| 国产原厂视频在线观看| 91精品国产一区二区| 国产一区二区精彩视频| 国产美女在线观看一区| 国内自拍中文字幕| 国产精品久久久久av蜜臀| 久久男人av资源网站| 粉嫩av一区二区夜夜嗨| 亚洲成人777| 亚洲综合网在线观看| 久久久噜噜噜久久狠狠50岁| 色大师av一区二区三区| 欧美日韩视频免费看| 伦理中文字幕亚洲| 亚洲精品国偷拍自产在线观看蜜桃| 亚洲精品五月天| 日日夜夜精品视频免费观看| 国产中文一区| 久久精品丝袜高跟鞋| 亚洲成av在线| 久久精品亚洲一区| 免费av一级片| 欧洲视频一区二区| 91高清免费观看| av欧美精品.com| 黄色永久免费网站| 欧美三区不卡| 免费看污久久久| 日韩成人精品一区二区三区| 久久久久久有精品国产| 欧美女优在线观看| 欧美日韩国产大片| 国产无遮挡又黄又爽在线观看| 久久综合色婷婷| 亚洲制服在线观看| 国产欧美欧美| 欧美日韩一级在线| 日韩大尺度在线观看| 国产日产亚洲精品| 福利网站在线观看| 中国人与牲禽动交精品| 性生活免费网站| 91国模大尺度私拍在线视频| 国产高潮国产高潮久久久91| 久久色在线观看| 爱情岛论坛亚洲自拍| 久热精品视频| 久草免费福利在线| 久久国产亚洲精品| 久久国产精品久久精品国产| 美国十次综合久久| 国产精品国语对白| 国产拍在线视频| 成人97在线观看视频| 成人性生交大片免费看午夜| 亚洲成人精品在线| 97精品久久人人爽人人爽| 色综合久久综合中文综合网| 久久亚洲国产成人精品性色| 国产精品蜜臀在线观看| 北岛玲一区二区| 国产一区二区影院| 九九热免费精品视频| 国产欧美91| 日b视频免费观看| 99久久婷婷这里只有精品| 免费精品视频一区二区三区| 97精品久久| 亚洲影影院av| 欧美男女视频| 国产精品自产拍在线观看| 欧美日韩国产v| 456国产精品| 天堂av资源在线观看| 精品国产一区二区三区久久狼黑人 | 国产91综合网| www午夜视频| 日本特黄久久久高潮| 日本三级免费网站| 日韩天堂av| 亚洲理论电影在线观看| 欧美精品麻豆| 黄色一级片国产| 在线中文字幕亚洲| 自拍偷拍视频在线| 久久久久国产精品| 在线免费一区| 天天射成人网| 日本三级福利片| 在线电影一区二区| 艳母动漫在线观看| 欧美成人综合| 久久综合亚洲精品| 精品二区视频| 国产黄色片免费在线观看| 国产一区二区三区四区三区四| 91成人在线视频观看| 欧美在线免费一级片| 中文字幕欧美日韩一区二区三区| 97精品国产| 六月婷婷激情网| 一区二区三区四区日韩| 91嫩草国产丨精品入口麻豆| 欧美精品观看| 国产精品12345| 先锋a资源在线看亚洲| 日韩中文字幕免费在线| 日日夜夜一区二区| 中日韩av在线播放| 国产精品综合一区二区三区| 岛国精品一区二区三区| 成人美女在线视频| 亚洲精品理论片| 国产嫩草影院久久久久| 国内毛片毛片毛片毛片毛片| 亚洲精品日日夜夜| 日韩三级一区二区三区| 日韩欧美高清视频| 中文字幕日韩三级| 欧美一级欧美三级| 婷婷亚洲一区二区三区| 国产亚洲精品美女久久久| 免费观看成人高潮| 久久久午夜视频| 欧美成人黑人| 成人乱人伦精品视频在线观看| 亚洲午夜精品| 日韩电影天堂视频一区二区| 91精品一区二区三区综合| 人体内射精一区二区三区| 久久综合亚州| 四虎国产精品免费| 久久综合色之久久综合| 日韩一区二区不卡视频| 五月天婷婷综合| 国产又粗又黄又爽| 亚洲国产天堂久久国产91| 国产1区2区3区在线| 欧美大奶子在线| 在线看的毛片| 亚洲精品日产aⅴ| 自拍亚洲一区| 红桃一区二区三区| 三级影片在线观看欧美日韩一区二区| 日本77777| 91麻豆高清视频| 欧美成人黄色网| 欧美在线你懂得| 日韩有码第一页| 欧美精品在线第一页| 国产精品专区免费| 国产精品久久精品国产| 久久在线电影| 精品视频一区二区在线| 国产乱码字幕精品高清av | 一区二区三区四区在线观看国产日韩| 日批视频在线免费看| 国产电影一区在线| 最新日韩免费视频| 色综合久久99| 男人天堂av网| 色综合91久久精品中文字幕| 色999韩欧美国产综合俺来也| 欧美亚洲一级二级| 亚洲国产91| 九九热精品国产| 国产三级欧美三级| 黄色一级片免费在线观看| 欧美成人激情免费网| 欧美性猛交xxx乱大交3蜜桃| 日本久久久久久久久| 偷拍自拍亚洲色图| 国产freexxxx性播放麻豆 | 成人xxxxx色| 综合久久精品| 久久久九九九热| 一色屋精品亚洲香蕉网站| 中文字幕日本视频| 亚洲欧洲在线播放| 蜜桃视频动漫在线播放| 久久riav| 母乳一区在线观看| 精品黑人一区二区三区观看时间| 亚洲高清在线视频| 亚洲精品无amm毛片| 欧美大荫蒂xxx| 日本在线成人| 国产又粗又猛又爽又黄的网站| 国产一区二区三区久久悠悠色av| 国产精品夜夜夜爽阿娇| 欧美人妖巨大在线| 日韩在线资源| 91精品综合视频| 最新精品国产| 久久av一区二区三| 亚洲国产日韩精品| 后进极品白嫩翘臀在线视频| 97精品一区二区三区| 欧美大胆视频| 国产av无码专区亚洲精品| 久久久久久久久一| 国产真人无遮挡作爱免费视频| 亚洲一区第一页| 日本欧美在线| 欧美人与动牲交xxxxbbbb| 高清国产一区二区三区| 日本一级黄色大片| 亚洲系列中文字幕| 午夜精品久久久久久毛片| 日本免费在线视频观看| 国产精品亚洲成人| 日本在线免费观看| 国产网站欧美日韩免费精品在线观看| 日韩成人高清| 黄色一级视频播放| 99久久精品国产观看| 姑娘第5集在线观看免费好剧| 久久精品电影网| 亚洲日本va中文字幕| 97国产精东麻豆人妻电影| 久久精品免视看| aaaa一级片| 国产91成人video| 日韩大片在线播放| 中文字幕天堂av| 欧美亚洲国产一卡| 在线你懂的视频| 免费不卡亚洲欧美| 国精品**一区二区三区在线蜜桃| 精品一区二区三区人妻| 亚洲天天在线日亚洲洲精| 久久久精品区| 国产精品第12页| 亚洲人成网站在线| 日韩一二三四| 亚洲一区二区三区xxx视频| 宅男噜噜噜66国产日韩在线观看| 欧美人与禽zoz0善交| 精品粉嫩超白一线天av| 欧美精品高清| 国产成人永久免费视频| 国产亚洲精品久| 丰满熟女一区二区三区| 国产精品国语对白| 999亚洲国产精| 日韩激情小视频| 亚洲午夜精品久久久久久久久久久久 | 人人妻人人藻人人爽欧美一区| 欧美一级专区免费大片|