精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

后进极品白嫩翘臀在线视频| 青青操在线视频观看| 久久男人av资源站| 国产欧美va欧美不卡在线| 91老司机精品视频| 天天综合天天干| 久久裸体网站| 亚洲а∨天堂久久精品9966| 精品久久久久久久无码| 四虎亚洲精品| 国产视频亚洲色图| 国产精品免费一区二区三区在线观看| 国产免费www| 国内精品99| 中文字幕亚洲综合久久| 欧美一区二区免费在线观看| 日韩毛片免费看| 欧美日韩免费在线观看| 国产一区一区三区| 毛片在线免费| 福利视频网站一区二区三区| 国产精品一区电影| 国产免费av一区| 欧美日韩ab| 色哟哟入口国产精品| 中国一级特黄录像播放| 精品入口麻豆88视频| 在线日韩av片| 1024av视频| sm久久捆绑调教精品一区| 国产精品乱码人人做人人爱| 久久综合久久久| 日韩一区二区三区不卡| 国产在线视频不卡二| 国产精品成人一区二区三区吃奶| 国产无遮挡裸体免费视频| 亚洲精品97| 67194成人在线观看| 久久www视频| 国产黄在线观看| 高清不卡一区二区| 91精品免费视频| 午夜视频网站在线观看| 国产女优一区| 久久免费国产精品1| 亚洲天堂黄色片| 天天做综合网| 久久久成人的性感天堂| 久久一级免费视频| 久久国产成人精品| 中文字幕免费精品一区高清| 一区二区三区久久久久| 久久综合欧美| 国产一区二区黑人欧美xxxx| av网站免费在线看| 一级免费黄色录像| 欧美性生活一级片| 亚洲福利视频在线| 日韩无码精品一区二区| 国产精品美女在线观看直播| 亚洲国产精品va| 中文字幕日韩三级片| 老汉色老汉首页av亚洲| 日韩精品日韩在线观看| 日韩中文字幕电影| 欧美日中文字幕| 色老头一区二区三区| 国精品无码一区二区三区| 国产精品v日韩精品v欧美精品网站| 欧美激情精品久久久久久变态| 精品视频一区二区在线观看| av成人毛片| 热99在线视频| 一本色道久久综合熟妇| 国产精品18久久久久久久久| 精品久久蜜桃| 成年人在线看| 亚洲乱码国产乱码精品精可以看| 国产无限制自拍| 成人日韩精品| 欧美一二三四在线| 右手影院亚洲欧美| 91蜜臀精品国产自偷在线| 欧美超级免费视 在线| 日本一级黄色大片| 日韩成人精品在线观看| 98国产高清一区| 男人的天堂在线视频| 亚洲色图欧美激情| aa在线观看视频| 亚洲高清国产拍精品26u| 精品av综合导航| 日韩av片在线免费观看| 精品成人免费| 国产精品自拍偷拍| 日本xxxx人| 亚洲欧洲三级电影| 每日在线更新av| 不卡精品视频| 亚洲欧美日韩另类| 欧美被狂躁喷白浆精品| 日韩精品国产精品| 国产欧美日韩综合一区在线观看| 成年午夜在线| 欧美视频13p| 黄页网站在线看| 欧洲福利电影| 1769国内精品视频在线播放| 国产女人高潮毛片| 国产欧美日韩激情| 精品久久久久久久久久中文字幕| 国产欧美日韩电影| 亚洲毛片在线看| 国产精品19乱码一区二区三区| 久久99久久精品| 欧美日韩高清免费| 国产精品25p| 欧美一区二区三区系列电影| 一区二区三区久久久久| 国产欧美精品| 成人片在线免费看| 国产婷婷视频在线| 欧美亚洲国产一区二区三区va | 精品国产伦理网| 欧美一级片在线视频| 日欧美一区二区| 久久国产一区| 136福利第一导航国产在线| 6080日韩午夜伦伦午夜伦| 男人的天堂av网| 久久国产免费| 精品九九九九| 国产精品高颜值在线观看| 日韩女优视频免费观看| 欧美日韩成人免费观看| 国产中文字幕一区| 中文字幕一区二区三区四区五区六区 | 国产欧美自拍一区| 欧美丰满老妇厨房牲生活| 国产免费视频一区二区三区| 一区二区中文字幕在线| 中文字幕在线观看日| 99久久精品费精品国产风间由美 | 国产精品网站免费| 精品国产一区二区三区不卡蜜臂| 高清欧美性猛交xxxx黑人猛交| 亚洲av无码一区二区三区dv | 国产精品久久久久久久久久久久久久久久久 | 亚洲成人你懂的| 国产女人18毛片水真多18| 亚洲青色在线| 久久综合入口| 99热播精品免费| www.亚洲人.com| 999av视频| 一区二区三区精品久久久| 乳色吐息在线观看| 亚洲精品麻豆| 免费观看成人在线| 欧美xxxx做受欧美护士| 北条麻妃一区二区三区中文字幕| 国产精品无码免费播放 | 四虎4hu永久免费入口| 亚洲国产欧美在线观看| 久久久久久久久久av| 天堂成人在线观看| 欧洲精品一区二区三区在线观看| www成人啪啪18软件| 国产美女在线观看一区| av在线com| 久久av免费| 国产视频观看一区| 欧美xxxx黑人又粗又长| 亚洲精品xxx| 中文字幕人妻丝袜乱一区三区| 亚洲色图另类专区| 成人在线电影网站| 日韩精品电影在线观看| 天天操天天干天天玩| 欧美绝顶高潮抽搐喷水合集| 国产成一区二区| 五月婷婷视频在线观看| 亚洲图片欧美午夜| 99精品视频在线播放免费| 性感美女久久精品| 性爱在线免费视频| 成人高清在线视频| 欧美精品性生活| 在线精品一区二区| 亚洲乱码一区二区三区三上悠亚| 日韩一级淫片| 国产精品入口免费视频一| 免费在线观看av电影| 亚洲网在线观看| 欧美一级特黄aaaaaa| 欧美三级蜜桃2在线观看| 久操视频免费在线观看| 中文字幕成人在线观看| 99re久久精品国产| 国产剧情一区二区三区| 成人黄色一区二区| 在线欧美不卡| 手机在线视频你懂的| 国产精品一区高清| 97netav| 99久久综合国产精品二区| 91极品视频在线| 在线h片观看| 日韩在线视频播放| 男女视频在线观看免费| 亚洲成av人乱码色午夜| 国产精品视频第一页| 欧洲一区在线观看| 久久精品国产成人av| 亚洲自拍偷拍欧美| 紧身裙女教师波多野结衣| 国产亚洲精品bt天堂精选| av网页在线观看| 成人免费av资源| 在线观看网站黄| 韩国理伦片一区二区三区在线播放| 99热成人精品热久久66| 在线视频免费在线观看一区二区| 91看片淫黄大片91| 一个色综合网| 三年中国中文在线观看免费播放| 欧美艳星介绍134位艳星| 免费看成人av| 亚洲电影男人天堂| 久久99久久精品国产| 成人自拍在线| 懂色av一区二区三区在线播放| 国产不卡精品在线| 91久热免费在线视频| 91麻豆精品一二三区在线| 91精品久久久久久久久久久久久久| 日本综合久久| 国产精品美女视频网站| 91天天综合| 国产精品视频播放| 成人交换视频| 国产日本欧美一区二区三区| 国产91在线精品| 国产精品视频自拍| 国产精品原创视频| 91九色国产视频| 久久爱www.| 成人午夜电影在线播放| 成人av地址| 久久一区二区三区av| 一本色道久久综合亚洲精品酒店 | 日韩香蕉视频| 欧美精品一区免费| 久久午夜精品一区二区| www.日本xxxx| 久久国产精品99久久久久久老狼| 自拍偷拍一区二区三区四区| 国内久久精品视频| 麻豆精品国产传媒| 99r国产精品| 国产精品亚洲无码| 国产精品美女一区二区在线观看| 欧美性生给视频| 一区二区三区免费观看| www.av麻豆| 欧美制服丝袜第一页| 国产精品无码免费播放| 精品sm捆绑视频| 国产中文字幕在线视频| 久久久999精品| 国产精品论坛| 国产精品视频专区| youjizz欧美| 欧美精品欧美精品| 亚洲精品91| 5月婷婷6月丁香| 久久国产精品72免费观看| 日批免费观看视频| 久久精品视频网| 国产67194| 色综合激情久久| 国产免费黄色录像| 精品视频久久久久久| 精品国产白色丝袜高跟鞋| 97碰碰碰免费色视频| 国产精品久久久久久久久免费高清 | 成人av在线一区二区三区| 成人在线一级片| 一区二区三区在线观看动漫| 国产一级淫片a视频免费观看| 欧美三级视频在线观看| 天堂av2024| 久久久精品中文字幕| 二区三区不卡| 成人欧美一区二区三区视频xxx| 成人羞羞网站入口| 日韩五码在线观看| 国产一区二区看久久| 波多野结衣av在线观看| 亚洲国产综合在线| 国产精品久久欧美久久一区| 亚洲精品日韩丝袜精品| 中文字幕在线三区| 国产精品青草久久久久福利99| 大陆精大陆国产国语精品| 在线看视频不卡| 日韩国产欧美在线视频| 无码任你躁久久久久久老妇| 亚洲色欲色欲www| 日韩欧美国产另类| 国产偷亚洲偷欧美偷精品| 成人三级小说| 91久久精品日日躁夜夜躁国产| 久久91成人| 日本国产在线播放| 成人激情午夜影院| 成人在线观看小视频| 欧美日免费三级在线| 国产精品毛片一区二区三区四区| 国内成人精品一区| 一区三区自拍| 色爽爽爽爽爽爽爽爽| 另类调教123区| 日韩免费成人av| 一本大道久久a久久精品综合| 五月天福利视频| 午夜精品www| 国产精品丝袜在线播放| 国产一区二区三区在线免费| 国产真实乱偷精品视频免| 日本黄色免费片| 在线播放/欧美激情| 暖暖日本在线观看| 国产日韩视频在线观看| 成人直播大秀| 中文字幕66页| 日韩理论片网站| 99国产精品99| 久久99久久99精品免观看粉嫩| 国产精品日本一区二区不卡视频 | 三级欧美在线一区| 醉酒壮男gay强迫野外xx| 激情成人在线视频| 亚洲人成色777777精品音频| 性欧美在线看片a免费观看 | 亚洲最大免费| 经典三级在线一区| 18岁成人毛片| 精品欧美一区二区三区精品久久 | 午夜激情一区二区三区| 少妇人妻偷人精品一区二区| 97在线观看视频国产| 一区二区导航| 午夜免费一区二区| 国产精品热久久久久夜色精品三区| 精品国产青草久久久久96| 日韩中文字幕在线观看| av国产精品| 国产va亚洲va在线va| 91视频xxxx| 超碰在线97观看| 久久亚洲精品国产亚洲老地址| 玖玖精品一区| 免费黄色福利视频| 欧美高清在线一区| 国产精品久久久午夜夜伦鲁鲁| 久久久午夜视频| 自拍自偷一区二区三区| 手机看片一级片| 亚洲精品成人少妇| 天堂在线一二区| 国产精品香蕉av| 伊人成人在线| 人人妻人人澡人人爽| 制服.丝袜.亚洲.另类.中文 | 国产日韩在线视频| 黄色成人av网站| 精品人妻无码一区二区三区| 欧美乱妇15p| 97蜜桃久久| 伊人精品久久久久7777| 粉嫩嫩av羞羞动漫久久久| 亚洲GV成人无码久久精品| 色妞久久福利网| 老司机凹凸av亚洲导航| 九色porny自拍| 午夜精品一区二区三区电影天堂| av网站在线免费播放| 国产精品青青草| 久久精品国产精品亚洲红杏| 久久精品亚洲无码| 丝袜美腿精品国产二区| 久久国产精品免费精品3p| www.涩涩涩| 欧美日韩激情视频8区| 精品欧美色视频网站在线观看| 欧美成人免费在线| 国产福利一区二区三区视频在线| 日韩黄色片网站| 97人人模人人爽人人喊中文字|