亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

LSP協(xié)議詳解:從原理到VS Code與Neovim配置,統(tǒng)一代碼補全體驗

LSP協(xié)議詳解:從原理到VS Code與Neovim配置,統(tǒng)一代碼補全體驗 電腦里同時裝著 VS Code、PyCharm、IDEA 和 Sublime 的開發(fā)者不在少數(shù)每換一門語言就要重新裝一套插件、重新學一遍快捷鍵、重新忍受一種“半殘廢”的代碼智能。更麻煩的是同一門語言在不同編輯器里的補全和報錯風格還不一樣換編輯器等于換了個手感。直到我真正搞明白 LSPLanguage Server Protocol語言服務器協(xié)議之后這些問題才算被從根上解決。LSP 簡單說就是給編輯器裝上一個標準插座語言智能補全、跳轉、診斷、重構全部由獨立的語言服務器提供編輯器只負責顯示。這么一來你用 Neovim 寫的 TypeScript 和用 VS Code 寫的 TypeScript拿到的補全體驗幾乎一致甚至還能跨語言統(tǒng)一快捷鍵。這篇東西會從 LSP 的核心原理講起逐步拆到常用語言服務器的選型、VS Code 和 Neovim 下的實際配置、以及那些不踩一次坑根本發(fā)現(xiàn)不了的問題適合所有想把手頭開發(fā)環(huán)境再折騰順一點的開發(fā)者參考無論你是寫前端、寫后端、搞嵌入式還是剛入門。1. 為什么我勸每個開發(fā)都該搞懂 LSP1.1 一句話解釋 LSP 到底是什么LSP 并不是某個具體的插件也不是某個 editor 獨有的功能它是一套通信協(xié)議。語言服務器跑在獨立進程里編輯器通過標準 JSON-RPC 消息和你對話你問我“光標底下這個符號是什么”我回給你“懸停信息和文檔”等。LSP 把“編輯器 UI”和“語言分析引擎”徹底拆開讓兩者只通過協(xié)議交流。這個設計和瀏覽器與 Web 服務器之間的關系很像——瀏覽器負責渲染服務器負責邏輯中間走 HTTP 標準大家各管一攤。首次接觸這個概念的時候我犯過一個錯誤以為 LSP 是某款編輯器的功能插件。實際上VS Code 只是最早普及 LSP 的客戶端之一Neovim 內(nèi)置了 LSP 客戶端Emacs 里有 lsp-mode甚至 Vim 8 也能通過插件接入。LSP 更像一個行業(yè)的公共標準幾乎所有現(xiàn)代編輯器都在靠它吃飯。1.2 沒有 LSP 的日子語言工具鏈的戰(zhàn)國時代時間撥回十年前那時我給項目寫代碼最頭疼的是語言工具的割裂感。用 Vim 寫 Python 要配 jedi-vim、Python 補全和跳轉只支持一部分語法換到 VS Code 又要裝 Pylance而 Pylance 的反饋機制和 Vim 里完全不同。更別說寫 C/C 的時候Vim 里的 YouCompleteMe 和 VS Code 里的 C/C 插件各自維護一套索引邏輯經(jīng)常這個能跳轉那個不能還很吃內(nèi)存。這種混亂不僅是使用體驗的問題還是重復造輪子的典型表現(xiàn)。每個編輯器廠商都得為每種語言單獨實現(xiàn)“語義高亮、補全、診斷、跳轉定義”100 種語言對應 100 份工作量。生態(tài)碎片化的結果就是小語言沒人權、新語言沒插件。LSP 出現(xiàn)后語言開發(fā)者只需要把全部精力實現(xiàn)到一個語言服務器里所有支持 LSP 的編輯器都能無縫獲得完整支持。這是整個開發(fā)工具鏈走向標準化、社區(qū)化的關鍵一步。1.3 LSP 能替你省下什么LSP 幫開發(fā)者覆蓋的常見功能我列一張清單你感受一下自動補全textDocument/completion包括方法名、變量名、關鍵字、導入片段。懸停信息textDocument/hover鼠標放到變量上立刻看到類型、文檔和示例。跳轉定義、查找引用textDocument/definition, references跨文件定位符號。診斷textDocument/publishDiagnostics代碼錯誤、警告實時推送到編輯器的“問題面板”。代碼操作textDocument/codeAction自動修復、提取函數(shù)、生成實現(xiàn)等。重命名textDocument/rename對整個項目的符號做重命名。文檔內(nèi)符號textDocument/documentSymbol面包屑導航和結構大綱。格式化textDocument/formatting調(diào)用語言服務器做統(tǒng)一格式化。最關鍵的是這些能力由協(xié)議層統(tǒng)一提供意味著你在 VS Code 里配置好的一套習慣在 Neovim 里也能以差不多的方式實現(xiàn)。規(guī)劃一條項目的 LSP 配置思路基本就是“選編輯器客戶端 選語言服務器 設置統(tǒng)一的快捷鍵和格式化策略”全語言的編碼體驗都能被拉平。2. LSP 配置前的底層認知2.1 先分清客戶端和服務器配置 LSP 最容易被搞暈的一點是把編輯器插件和語言服務器混為一談。編輯器里裝的“Python 擴展”往往只干兩件事一是 LSP 客戶端的封裝二是提供一些非 LSP 的編輯器增強比如調(diào)試器集成、測試發(fā)現(xiàn)。真正做代碼分析的是后臺額外啟動的那個語言服務器進程比如 pyright、gopls、rust-analyzer。搞清楚這一點之后排查異常時你才知道看誰。如果補全不出來先別急著換編輯器插件去確認語言服務器進程有沒有跑起來、日志里有沒有報錯、配置路徑對不對。我??吹接腥税?VS Code 的 Python 擴展卸載裝回裝去結果問題其實出在 pyright 版本不兼容和虛擬環(huán)境路徑配置上。2.2 怎么選編輯器客戶端市面上的 LSP 客戶端已經(jīng)非常成熟按折騰成本和功能強度我給你排個梯度編輯器LSP 支持情況適合人群VS Code內(nèi)置 LSP 客戶端擴展最豐富開箱即用絕大多數(shù)開發(fā)者起步成本最低Neovim內(nèi)置原生 LSP配置靈活啟動快熟悉 Vim/Neovim 操作愿意花時間折騰Emacs lsp-mode支持完善但需配對 eglot 或 lsp-mode深度 Emacs 用戶Vim vim-lsp / coc.nvim可用但配置和現(xiàn)代性略遜于 NeovimVim 老用戶JetBrains IDE不依賴 LSP使用自家寫好的語言引擎習慣 JetBrains 全家桶者我個人是 VS Code 和 Neovim 雙修寫前端和 Python 用 VS Code 圖快深入服務端代碼時切 Neovim 保持專注。這兩者的 LSP 配置我都放在后文你可以直接抄作業(yè)。2.3 運行時依賴語言服務器語言服務器本身也是需要運行環(huán)境的。Python 系的 pyright 是 node 寫的python-lsp-server 是純 PythonJava 的 jdtls 需要 JDKC/C 的 clangd 依賴 llvm 工具鏈Go 的 gopls 是 Go 官方構建的二進制。這意味著你電腦上最好預裝 Node.js、Python3、JDK 等基礎運行時或者能夠通過各語言包管理工具安裝對應二進制。很多新人在配置完 LSP 后提示依然不出現(xiàn)打開語言服務器的啟動日志一看十有八九是“node 命令找不到”或“java 版本過低”。3. 各語言語言服務器選型與配置要點3.1 TypeScript / JavaScripttypescript-language-server 是首選TS/JS 的 LSP 實質是 TypeScript 官方的 tsserver編輯器客戶端一般通過 typescript-language-server 包來包裝調(diào)用。VS Code 里直接內(nèi)置了 TypeScript 支持底層就是 tsserver你只要配置好 tsconfig.json 就能拿到全項目類型感知。Neovim 里則建議安裝 typescript-language-server命令是 npm install -g typescript-language-server。配置時注意設置 format 和 autofix通常還需要配合 prettier 和 eslint。我的建議是在語言服務器的 settings 里掛載 prettier.formatEnable 選項同時把 save 時的格式化動作交給 prettier 而不是 tsserver因為 tsserver 的格式化風格比較僵硬和團隊 ESLint/Prettier 規(guī)則沖突時會產(chǎn)生大量 diff。3.2 Pythonpyright 是效率擔當python-lsp-server 是情懷Python 的 LSP 選擇一直有爭論。pyright 由 Microsoft 維護類型推斷嚴格補全和診斷速度極快但它是 Node 實現(xiàn)且不支持“會話級”的整庫索引盡管有高內(nèi)存模式python-lsp-serverpylsp是從 jedi 和 pyls 生態(tài)演進過來的純 Python 實現(xiàn)插件豐富能和 jupyter、mypy 深度集成但速度上確實比 pyright 慢不少尤其在大型 monorepo 里。我給大多數(shù)人的建議是直接用 pyright并配合一個 Python 插件VS Code 的 Pylance 本質就是 pyright 的擴展封裝。在 Neovim 里用 mason 裝 pyright 后再單獨裝 python-lsp-server 處理一些特殊需求比如 rope 重構、autopep8 格式化。注意在項目根目錄添加 pyproject.toml 或 python.analysis.autoSearchPaths 配置否則 pyright 經(jīng)常會因為找不到虛擬環(huán)境而報出一堆“導入未解析”的假陽性錯。3.3 Gogopls 是官方的默認答案Go 官方已經(jīng)明確 gopls 是 Go 語言支持的標準 LSP沒有之一。如果你的 Go 版本比較新1.18gopls 的功能已經(jīng)非常完整包括 go mod 跳轉、接口實現(xiàn)查找、test 生成和 vet 集成。在 VS Code 里安裝 Go 擴展后它默認啟用 goplsNeovim 中通過 Mason 安裝 gopls 即可。gopls 有一個需要重點調(diào)整的參數(shù)是 “workspace” 配置。在老版本的 Go 項目里多模塊工作區(qū)必須配置 gopls.workspace.gomod 或 useGoplsMod否則跳轉只會停留在當前模塊里。新版 Go 已經(jīng)支持 workspace 模式建議使用 go.work 來管理多模塊項目再設置 gopls 的環(huán)境變量“GOWORKauto”會省去很多麻煩。3.4 Rustrust-analyzer 單獨拿出來說rust-analyzer 幾乎統(tǒng)治了 Rust 開發(fā)體驗。它和 LSP 的契合度是所有語言里最深的支持完整的語義級補全、自動插入 use、類型推理查看、內(nèi)聯(lián)顯示等高級特性。在 VS Code 里裝 rust-analyzer 擴展它會在后臺自動下載預編譯好的二進制Neovim 里同樣用 Mason 裝 rust-analyzer。rust-analyzer 的內(nèi)存占用偏高尤其是大工程中。我建議在 config 里調(diào)低 “rust-analyzer.cargo.buildScripts.enable” 來關掉 proc-macro 預編譯如果沒有用宏頻繁開發(fā)并在 “rust-analyzer.checkOnSave” 中指定 clippy保證保存時直接跑 Clippy 而不是 cargo check。這樣能省下不少 CPU 時間在筆記本電腦上尤其明顯。3.5 Javaeclipse.jdt.lsjdtls是最成熟但最重的選擇Java 的 LSP 由 Eclipse 基金會主導java 語言的服務器官方版本是 jdtls。它最大的優(yōu)點是和 Eclipse 生態(tài)深度綁定對 Maven、Gradle 項目都能自動導入且擁有超強的重構能力。但 jdtls 啟動時第一個坑就是需要 jdk 版本匹配你不能用 JRE 跑它必須用 JDK 11而且編輯器里的 javac 版本要和項目構建使用的 JDK 版本盡量一致。配置 jdtls 需要注意內(nèi)存它默認會吃 1GB 左右內(nèi)存啟動還很慢。好在現(xiàn)在 VS Code 有 Java 擴展全家桶Neovim 可以借助 nvim-jdtls 插件并為它單獨設置 JAVA_HOME 和 JDK 參數(shù)。如果只是寫小量的 Java 代碼我更愿意直接上 IntelliJ IDEA畢竟 JetBrains 自己的 Java 語言引擎比 jdtls 順滑太多LSP 最受益的是像 Neovim 這類輕量編輯器。3.6 C/C 與嵌入式場景clangd 的 compile_commands.json 是關鍵C/C 領域的 LSP 事實標準是 clangd它基于 clang/LLVM能給出非常扎實的代碼分析。clangd 的難點不在配置本身而在于它需要知道你的編譯參數(shù)否則它只能靠猜測去解析 include 和宏定義。大型項目一般會在構建時生成 compile_commands.json把每個文件的編譯命令導出成一張表clangd 讀取這張表才能做到“所見即所得”的智能提示。嵌入式項目比如 STM32、FPGA 相關工具鏈常見的情況是使用 CMake 或 Makefile。如果你走 CMake設置 CMAKE_EXPORT_COMPILE_COMMANDSON 就能在 build 目錄生成 compile_commands.json然后把它放到源文件根目錄或通過 clangd 的 compile_commands_dir 配置指定路徑。對于非 CMake 老項目我見過很多人干脆自己寫腳本掃描 Makefile 里的編譯命令生成這個文件雖然麻煩了點但一勞永逸。在配置 Neovim 時記得在 clangd 的 init_options 里加上 “--background-index” 參數(shù)讓它在后臺建索引不卡界面。這也是呼應到嵌入式 FPGA 這類場景里代碼提示往往比 IDE 自帶的更跟手。3.7 其他常見語言一張表快速對照我把長期維護且生態(tài)較好的語言服務器整理成一張表照著裝基本不會踩坑語言推薦語言服務器安裝/配置入口備注Lualua-language-server通過 Mason / npm非?;钴S支持注解推斷Bashbash-language-servernpm需要 shellcheck 配合診斷Markdownmarksman通過 Mason / 官方支持 wiki 鏈接、目錄跳轉Rubysolargraphgem install solargraph老項目建議啟用 YARD 解析PHPintelephenseVS Code 擴展免費版夠用付費版支持更多Kotlinkotlin-language-server社區(qū)維護仍有不少階段性問題JSON/YAMLvscode-json-languageservice / yaml-language-serverVS Code 內(nèi)置/單獨服務器配置 schema 非常關鍵很多新興語言或小眾語言現(xiàn)在也都在積極擁抱 LSP比如 Z 語言、Gleam 這類。只要項目活躍你通常都能在 GitHub 找到對應的語言服務器然后接到編輯器里。4. VS Code 和 Neovim 的 LSP 實操配置4.1 VS Code 里最穩(wěn)的一套配置VS Code 的 LSP 配置其實是擴展安裝為主但有幾個核心 settings.json 項值得手動調(diào)整。我自己的配置里一定會包含這些保存格式化editor.formatOnSave: true但通過“語言的編輯器默認格式化程序”來指定哪個擴展做格式化。自動補全觸發(fā)editor.suggest.snippetsPrependQuickSuggestions 設為 true這樣函數(shù)簽名提示和代碼片段能同時出現(xiàn)。LSP 日志調(diào)試“typescript.tsserver.log”: “verbose”或者終端里可以查看擴展輸出。禁用某些擴展自帶的 LSP 以減少沖突比如如果同時裝了多個 Python 擴展可以在擴展細分里禁掉多余的一兩個。擴展安裝方面我的建議是Python 裝 PylanceJavaScript/TypeScript 直接用內(nèi)置支持Go 裝官方 Go 插件Rust 裝 rust-analyzerC/C 裝 clangd 插件注意不要和 MS C/C 插件同時加載兩者會搶語言服務器導致診斷反復刷新。這些擴展的默認配置大體可用真正需要的微調(diào)是關閉不需要的語言服務器例如你不在項目里用 Markdown就把 marksman 的自動下載關掉省內(nèi)存。4.2 Neovim 原生 LSP 配置從 0 到 1 的 lspconfig 實例Neovim 的 LSP 配置需要寫 Lua 文件我給出一個最小可用配置骨架。前置條件是你已經(jīng)安裝了 Mason 插件管理器和 nvim-lspconfig。以下是 init.lua 里的核心片段-- 安裝語言服務器在 Neovim 里執(zhí)行 :MasonInstall pyright gopls rust-analyzer clangd lua_ls marksman local lspconfig require(lspconfig) local on_attach function(client, bufnr) local opts { noremap true, silent true } vim.keymap.set(n, gd, vim.lsp.buf.definition, opts) vim.keymap.set(n, K, vim.lsp.buf.hover, opts) vim.keymap.set(n, F2, vim.lsp.buf.rename, opts) vim.keymap.set(n, gr, vim.lsp.buf.references, opts) vim.keymap.set(n, leadera, vim.lsp.buf.code_action, opts) vim.keymap.set(n, leaderf, function() vim.diagnostic.open_float(nil, { focusable false }) end, opts) end local servers { pyright, gopls, go, rust_analyzer, clangd, lua_ls, marksman } for _, lsp in ipairs(servers) do lspconfig[lsp].setup({ on_attach on_attach }) end這段代碼只做了兩件事給每種語言服務器設置統(tǒng)一的 on_attach 回調(diào)再映射幾個常用鍵位。剛開始學會這串你的 Neovim 立刻能獲得補全、跳轉和診斷能力。進階一點可以單獨對每個服務器添加 setting 字段比如 clangd 的 cmd 參數(shù)和 rust-analyzer 的 checkOnSave 參數(shù)。需要特別注意Mason 安裝的語言服務器二進制可能不在 PATH 里但 nvim-lspconfig 已經(jīng)處理了絕大多數(shù)自動發(fā)現(xiàn)路徑所以一般不會出問題。如果自定義安裝路徑則需要手動設置 cmd { “絕對路徑” }。4.3 那些讓編碼體驗大幅提升的 LSP 增強設置除了基礎的補全和跳轉LSP 配置里最容易忽略的其實是“inlay hints”內(nèi)聯(lián)提示。在 Neovim 中啟用 inlay hints 后函數(shù)參數(shù)名、變量類型和返回類型會以淡色文字顯示在代碼里極大降低讀代碼的認知負擔。VS Code 的對應功能叫 Editor Inlay Hints。對 Rust、C、TypeScript 效果極佳Python 也可以開啟但有些喧鬧。另一個重點是“code action”的鍵位映射。LSP 會提供幾十種代碼操作比如快速修復、生成 getter/setter、添加 import、預覽重構。如果只把快捷鍵設在 a 上日常使用率其實不高。我建議把最常用的修復單獨綁定Neovim 里可以映射 x 為 vim.lsp.buf.code_action({ filter function(action) return action.title:find(“Fix”) end })這樣只執(zhí)行“快速修復”類的操作非常順手。VS Code 里默認 Ctrl. 就夠了。格式化是另一塊大頭。LSP 自帶格式化接口但多數(shù)語言我仍然建議把格式化交給 Prettier、gofmt、rustfmt 這類獨立工具因為它們的風格標準更穩(wěn)定。LSP 配置里可以做“按保存優(yōu)先級”的處理VS Code 中配置editor.formatOnSave: true, [typescript]: { editor.defaultFormatter: esbenp.prettier-vscode }保證格式化只走 prettier不觸發(fā)語言服務器。Neovim 里則可以用 conform.nvim 插件接管格式化再讓 LSP 只負責語義智能兩條線各管各的沖突就消失了。4.4 調(diào)試 LSP出問題時先看這五個地方配置過程中最常見的是“代碼不提示”這時候盲目重裝擴展是最低效的做法。我一般在任何 LSP 異常時先按順序查這幾樣語言服務器進程是否存活ps -ef | grep 對應的服務器名沒有就查啟動路徑。編輯器 LSP 狀態(tài)面板VS Code 里查看“輸出”中的“Language Server”日志Neovim 里執(zhí)行 :LspInfo 查看當前 buffer 連接的服務器和根路徑。啟動日志里的錯誤重點看有沒有“version mismatch”、“Cannot find module”、“failed to find”等關鍵詞。配置文件是否被識別有些服務器要求項目根目錄存在特定文件比如 go.mod、pom.xml、Cargo.toml 等找不到根項目結構會拒絕啟動。環(huán)境變量和 PATH尤其是 Neovim 的 GUI 版本如 Neovide或者 VS Code 的集成終端和你 shell 里的環(huán)境變量可能不一致。語言服務器找不到命令時大概率是這個問題。有一次我遇到 clangd 一直報“No compile_commands.json found”排查了半天發(fā)現(xiàn)是 ws 根目錄指定錯了編輯器認為根目錄是/.config/nvim導致它找不到項目里的 JSON。把 lspconfig 設置里的 root_dir 改回項目目錄后一切正常。5. 常見問題與避坑實錄5.1 刷了某個 LSP 擴展后其他 App 閃退此 LSP 非彼 LSP熱詞里能看到“刷了lsp之后好多app閃退”這里要說明一下那個 LSP 是 Android 框架層面的 “LSPosed” 相關簡寫和我們這里討論的 Language Server Protocol 完全不是一回事。如果你是在移動設備刷功能框架之后出現(xiàn)閃退那是模塊兼容問題和編輯器里的 LSP 無關。但有一點是相通的任何語言服務器如果和編輯器版本、運行時版本不匹配也會出現(xiàn)“閃退”現(xiàn)象——表現(xiàn)形式就是語言服務器進程頻繁重啟。這種問題在 jdtls、rust-analyzer 上尤其常見解決辦法永遠是先核對版本匹配而不是反復卸載重裝。5.2 依賴下載慢或安裝失敗怎么辦語言服務器通常需要從 npm、GitHub Releases 或各語言倉庫下載這在國內(nèi)網(wǎng)絡環(huán)境下經(jīng)常遇到超時。我建議的做法是能走包管理器的走包管理器比如 Debian/Ubuntu 上用 apt 安裝 clangd或用 Homebrew 安裝 gopls、rust-analyzernpm 包可以配置 registry 鏡像源比如設置 npm registry 為國內(nèi)鏡像。Mason 也支持對 GitHub 下載做代理或自定義鏡像源你可以臨時指定環(huán)境變量 HTTPS_PROXY注意只能用于正規(guī)開源鏡像服務不要涉及任何違規(guī)手段。如果實在下載不了可以在能訪問的機器上手動下載二進制再通過 cmd 配置指向本地路徑這招對 Neovim 尤其好用。5.3 提示不精確問題出在索引沒有建立完整LSP 的智能依賴項目索引。尤其是大型語言C、Java、Rust首次打開項目時需要時間做全項目索引。如果剛打開就立刻跳轉很可能會跳不到。這不是配置壞了只需耐心等待后臺索引完成。建議在 Neovim 里開啟 lspconfig 的 handlers 來顯示進度像 rust-analyzer 會自動發(fā) window/workDoneProgressclangd 也有標示。VS Code 里則在右下角狀態(tài)欄能看到“正在索引”之類的提示。索引慢的場景下可以限制工作目錄范圍。比如 pyright 的 “python.analysis.exclude” 配置可以把 build 目錄、venv 目錄排除clangd 增加 “--header-parse-size1024” 限制解析頭部大文件。這些參數(shù)都能顯著降低內(nèi)存和磁盤占用。5.4 多語言服務器打架怎么辦最典型的是 Python 同時啟用了 pyright 和 pylsp或者 C/C 同時加載了 clangd 和 MS 官方插件。LSP 原則是每種語言應該只啟用一個服務器否則你會發(fā)現(xiàn)重復的診斷、補全和更嚴重的 CPU 飆升。處理方法VS Code 里可以禁用另一款擴展也可以在工作區(qū)設置里只留一份。Neovim 里同樣只自動啟動你 show 的服務器不要在一個文件類型上掛多個。如果你非要同時用比如 Python 的 pyright 做類型推斷同時用 pylsp 的 rope 重構需要配置 LSP 的 enable 開關但這會加重維護成本非必要不碰。5.5 內(nèi)存和 CPU 占用過高三招解決不少語言服務器都是常駐進程內(nèi)存高到讓人抓狂。我總結三個解決辦法對不常寫的大語言Java、C服務器只在特定緩沖區(qū)觸發(fā)啟動用 Neovim 的 lazy lsp 插件或 VS Code 僅在該語言文件激活。關閉不必要的索引范圍通過配置文件排除 build 目錄、node_modules、.git 等。調(diào)整服務器的檢查時機比如 rust-analyzer 的 checkOnSave 改為 “checkOnSave.Enable: false” 或改成維護模式clangd 把 “--function-arg-size-limit256” 調(diào)小可以避免分析大量模板元編程代碼時卡死。這些技巧說起來簡單但真能減少 30%-50% 的內(nèi)存占用尤其是那些開著多個語言服務器的開發(fā)者會深有體會。6. 進階把 LSP 用到“全語言”的維度6.1 用 workspace 支持跨多語言的工程結構LSP 協(xié)議里有個 workspaceFolders 的概念允許一個編輯器窗口打開多個根目錄并為每個目錄配置獨立的語言服務器。這一點對 monorepo 或微服務倉庫意義重大。比如你一個倉庫里同時有 go 服務、python 腳本和前端頁面每個語言服務器只需要關注自己對應的目錄文件跳轉互不干擾。VS Code 里直接使用“添加文件夾到工作區(qū)”即可Neovim 里可以通過 lspconfig 的 root_dir 和 workspace 檢測邏輯來適配。如果你的項目根目錄深度不好識別也可以手動在根目錄創(chuàng)建 .git 或 .editorconfig 來標記根位置很多語言服務器用它來推斷工作區(qū)根。6.2 把格式化和 LSP 一起編排成一套工作流開發(fā)效率的核心不是單一功能強而是多個工具串成閉環(huán)。我的習慣是寫代碼時用 LSP 提供跳轉和診斷保存時用格式化工具統(tǒng)一風格提交前用 pre-commit 鉤子跑一遍靜態(tài)檢查。LSP 的格式化接口可以暴露給格式化工具但更多時候讓獨立工具主導。比如在 Neovim 里我配置了 conform.nvim 接管 format-on-save但它會調(diào)用 prettierd、gofmt、black。這些工具和 LSP 可以共存它們各自輸出標準文本LSP 只提供語義數(shù)據(jù)。千萬不要讓兩個東西同時格式化同一份文件會造成無限循環(huán)。VS Code 里勾選“Format on Save”時要指定唯一格式化工具。6.3 LSP 的性能分析看懂協(xié)議層日志如果你對 LSP 協(xié)議本身感興趣可以打開語言服務器的 trace 日志。VS Code 里設置 “typescript.tsserver.trace”: “verbose” 后所有協(xié)議消息都會記錄在 output 面板。Neovim 里可以用 :LspLog 查看也可以設置 vim.lsp.set_log_level(“debug”)。日志里你會看到大量 json-rpc 調(diào)用比如 textDocument/completion、textDocument/definition 等。這個過程能幫你定位“為什么補全慢”——是服務器響應慢還是客戶端渲染慢。實際操作時我不建議開 debug 日志常駐磁盤會迅速被塞滿。只在排查問題的時候開個幾分鐘問題解決了馬上關掉。6.4 自己動手寫一個簡單的語言服務器理解更透徹如果你真想徹底掌握 LSP強烈建議花個周末寫一個玩具語言服務器。LSP 協(xié)議是純 JSON-RPC你不需要任何框架用 Node.js 或 Python 都能實現(xiàn)一個只有補全和定義的簡易服務器。協(xié)議初始化時會交換 capabilities 列表你只要響應 initialize 請求然后處理 textDocument/didOpen、textDocument/completion 即可。我用 Python 寫過 200 來行的示例步驟說穿了三句話從 stdin 讀行、解析 JSON、構造響應寫回 stdout。第一次能看到自己寫的補全出現(xiàn)在編輯器里時之前所有配置上的玄學感知都消失了。后面對配置參數(shù)、對日志分析心態(tài)會完全不一樣。7. 最終建議與個人體會折騰 LSP 這幾年我最深的一個體感是別一口氣追求所有語言的完美配置。先固定你最常寫的兩三種語言把語言服務器、格式化、診斷配順再慢慢擴展到其他語言。一上來就想同時配好 Python、Java、C、Rust、Go 的人基本都會在某個服務器的兼容性坑里耗盡熱情。我自己的環(huán)境到現(xiàn)在都保留著幾條鐵律每個語言只選一個服務器格式化交給獨立工具所有快捷鍵統(tǒng)一日志只在排障時開。這套原則用到現(xiàn)在無論換到哪臺機器、哪個編輯器配好 LSP 的時間都不會超過十分鐘。工具鏈標準化帶來的安心感可能比某一次炫技式的配置更讓人上癮。如果你剛開始接觸 LSP也別被協(xié)議文檔勸退從 VS Code 的擴展商店和 Neovim 的 Mason 開始裝上就能跑跑起來再慢慢調(diào)。等你真正體會到“換編輯器不換手感”之后你就知道這套生態(tài)為什么值得所有開發(fā)者關注了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚欧洲一区二区视频| 亚洲成人性爱网站在线播放| 女人被添高潮免费视频| 亚洲色天堂九9| www.久久| 男女啪啪网站免费视频| 欧美夜夜骑视频| 国产精品久久久久中文字幕| 天天操福利视频综合网站| 蜜乳AV一区| 亚州日韩97| 丰满人妻av一区二区三区 | 久久思思热| 俞拍久久国应视频| 国产一区二区精品在线视频| 激情五月婷婷| 日韩A优精品在线观看| 男女性扦B| 久久无码电影| 天天插网| 中文字幕1区2区| 91红杏| 欧美日韩精品一区二区三区高清| 亚洲欧美不卡线| 超碰97在线中文| 99性爱视频| 无码精品一区二区三区潘金莲| 国产精品天干天干综合网麻豆| 亚洲国产精品9999在线观看| 99无码狠狠久久| daxiangjiao你懂的| 日韩精品.久久精品.AV女优.天美传媒| 麻豆国产视频精品观看| 97爱免费插| 懂色AV蜜臀无码精品APP| 日本孕妇一区二区视频操逼免费看 | 精品久久久久久无码| 性色A∨91| 伊人加勒比| 东北熟女91| 亚洲交换| 激情小说亚洲| av天堂精品久久| 激情抓乳插进去啪啪啪日韩 | 九九自拍伦理| 大香交| #NAME?| 亚洲中亚日激情视频| 极品AV网站在线观看| 岛国999| 国产精品动态一区二区三区四四| 老鸭窝在线视频播放| 欧美,日韩,中文,另类| 欧美日本国产日韩激情视频| 温婉少妇玩3p| 大香樵伊人网| 欧美少妇内射| 96超碰网| 99re热有精品视频国产| www.久久| 国产乱人妻精品入口| 久久↗↗| 一线黄色免费性爱片| AV电影在线播放| 亚洲 欧美 小说| 大香蕉日韩欧美| 91青青草| 婷婷丁香五月激情啪啪| 日本无码1| 搡老熟女老女人老熟妇免费视频| 蜜桃色色网站视频三区| 天天碰久久入| 青娱乐国产盛宴视频| 99这里有精品| 久久久久99999| 人妻系列无码专区中文有码| 久九干| 国产一区在线播放| 艹我哪美一区无码| 青青青草原| 91人妻精华帖| 天天摸天天碰天天添青青| 国产深喉| 五月天激情小说| 久久久国产成人一区二区三区在线| 精品女人999| 欧美亚洲特P| 亚欧成人中文字幕一区| 国产熟码AV| 日韩精品人妻一| 不卡一区视频| 人人爱人人操人人性| 国产精品视频在线播放 | 精品射1999| 欧美综合网A| 超碰人人在线| 亚洲AV无码秘 蜜桃臀国精产品| 色色色色综合网| 乱码熟妇人妻久久久| 亚洲熟女av日韩熟女| 国产成人自拍视频在线| 东北女人性交| 熟女高潮合集-永久久久-成人AV| 日本久久999| 任你艹| 欧美性爱五月天| 玖玖婷婷五月天| 亚洲五月丁香花狠狠干一区二区三区 | 超碰导航97| 人人操人人狠狠操| 奇米四色影视777久久久| 国产女同视频在线播放| 亚洲春色欧美激情自拍| 亚洲精品性爱片| 人人操人人插人www| 国产精品情侣啪啪| 熟妇一区,二区,三区。| 97碰碰日本乱偷人妻中文的| 亚洲情色1区| 国产福利电影| 激情久久久| 中文字幕日韩专区精品系列| 在线 亚洲 网爆 自拍| 免费人人搞97| 摸奶性爱视频网站在线免费播放| 麻豆 亚洲 97| 青青国产精品在线| 99性爱视频| 欧美一级黄片视频在线| 亚洲欧美综合| 色爱亚洲| 日韩钢筋无码高清啾啾啾| 日韩美女操b| 欧美综合自拍| 视频国产欧美在线播放| 欧美97av| 2020中文字幕在线| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 黄色高清无码无码破解免费暗网| 欧美的性爱网站免费| 91处女在线观看| 精品国产乱码久久久久久蜜臀| 日欧毛片久久| 学生妹天天看| 欧美韩日精品99综合| 欧洲精品网| 亚洲精品蜜桃久久久久久久| 性生活无遮挡纯毛片在线看| 色婷婷婷五月天激情四射| 伊人影院中文字幕| 操b网站亚洲无码| 欧美三级免费伊人| 校园春色亚洲无码| 欧美91网| 青青草华人在线欧美在线| 午夜精品久久久久久久99热影院| 欧美日韩资源在线| 中文日韩欧美熟| 久久九九精品一区二区 | 97资源站日韩| 在线观看不卡一区二区三区| 欧美一区二区观看在线| 欧美性巨大╳╳╳╳╳高跟鞋| 日本欧美一区二区三区免费| 91粉嫩萝控精品福利网站_精品影音先锋国| 人妻中文字幕精品无码| 美女黄色一级A视频| 日韩免费看黄片| 操逼逼中文字幕| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 亚洲妇色| 中国少妇XXXX做受| 日韩二级| 国产亚洲精品玖玖玖在线观看| 中文字幕第95页| 国产高清在线观看欧美| 丰满人妻一区二区三区四区| 五月丁香成人网| 国语对白露脸XXXXXX| 欧美亚洲涩涩| 又大又白奶子| 岛国AB视频| 天天干夜夜鈤| 天天综合AV| 久操网视频| 四虎精品永久在线观看| 久久综合久色欧美综合狠狠| 婷婷情色综合网| 日韩黄色成人性爱| 三级日韩一区二区三区| 黄色交缠性感爆操91国产精品免费一区二区三区| 床上啊啊啊一区二区三区| 国产日韩无码一区二区三区久久区| 免费亚洲国产精品久久一区| 中文字幕精品一区二区精品| 太久视频| 91亚洲欧美| 少妇高潮一区二区三区在线| 曰本91情色| 欧美操逼一二三区| 女人爽到高潮潮喷18禁网站| 欧美强奸乱| 亚洲中文字幕在线视频一区二区 | 人人操,人人液| 69人妻精品丰满熟女区| 五月丁香六月| 67914亚洲精品| 日本国产欧美高清在线| 99久久精品国产高潮| 被窝影院午夜看片无码| 日日爱99| 亚洲性网| 日日骚中文字幕| 伊人991| 熟女精品一区二区三区| 99久久综合网| 超碰免费在线| 夜夜爽33333| 日本三级中国三级99人妇网站| 最新国产亚洲精品精品国产亚洲综合| 精品国产91av一区二区三区 | 能在线播放的国产三级| 中文字幕成人理论在线| a天堂视频| 久久精品毛片免费不卡| 国内毛片国产专区二| 久久直播国产| 成人性爱美曰韩| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 国产精品久久久久久久久久梁医生| 色爱天堂| 欧美狠狠干| 蜜桃狠狠色伊人亚洲综合网站| 亚洲av资源| 亚洲天堂人人妻| 夜夜操av亚洲一区二区| 天天摸天天舔天天操| 色娱乐色呦呦夜夜夜夜av| 极品久久久久久久久久久久久久| 人妻天天爽| 97视频新免费| 夜草网站| 欧美成人黄网色网站| 91强奸乱轮| 干婷婷综合网| 天堂av2019| 久久熟妇五十路一区| 欧美天天谢综合网| 91美女色视频亚洲| 久久黄人人爽视频| 黄色免费网| 精品无码不卡视频| 巨爆乳肉感一区二区三区竹菊影视 | 中国一级操逼视频| 婷婷亚洲五月***久久| 久久婷婷热| 91久久国产综合久久| 欧美熟女妇同| 久草精品在线| 88xx成人精品视频| 日韩人妻一区二区| 99久久精品国产高潮| 俺去也婷婷| 九九久久精品| 无码精品久久| 在线国产一区二区av| 婷色五月天| 国产中文福利| 亚洲综合97| 中文字幕亚洲永久精品| 国产精品老熟女一区二区| 宗合情欲网| 亚洲图片视频小说| 成人性爱av| 碰碰在线视频| 嫩草91| 亚洲欧洲无码bt精品合集| 国产动漫操逼视频| 熟妇人妻一区二区三在线| 大香久久| 亚洲色婷婷| 欧美 牲| 夜夜骑夜夜操| blacked精品一区国产| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 欧美成人精品A片免费一区99| 欧美亚洲丝袜美女电影| 蜜臀Av一区二区三区| 一级性爱视频免费观看 | 亚洲麻豆18发?| 夜夜爽夜夜爽| 99色| 中文三一区| 久久精品国产亚洲AV嘿嘿| 伊人五月天青青草婷婷| 精品国产一区探花在线观看| 91一区二区| 日韩97精| 中文久久爆乳| 日韩电影免费网站麻豆视频| 日韩av性爱在线播放| 天堂精品在线| 亚洲一区二区AV| 国产成人自拍视频在线| 果冻传媒一区二区三区| 亚洲午夜福利在线影院| 久久久久元码视频| 天天射天天操天天干天天吃2018| 欧美在线官网| 2017av无码免费无线播| 黑人中出21连凳花野真衣| 东京热天堂网| 性爱乱伦一区| 人妻91少妇| 久久露脸国产老熟女| 大香蕉日亚洲日本亚大| 久久亚洲av成人无码国产| 男人的天堂日韩| 欧美强奸一区二区诱惑| 欧美后入式| 丁香六月啪| 伊色久人大在线| 久久久无码国精品无码三区三区| 日韩精品-原创伙伴| 婷婷五月天激情四射| 黄色工厂这里只有精品| 亚洲色图久久成人| 日本孕妇一区二区视频操逼免费看 | 五月天丁香欧洲日韩| 99在线精品视频| 欧美大码在线视频| 国产成人无码啪| 亚洲麻豆18发?| 玖玖婷婷五月天| 中文有码9| 精品久久久亚洲AV成人网站| 日韩亚洲97| 色5月婷婷| 久久久精品网站| 亚洲欧美一区二区不卡视频播放| 亚洲欧美日韩精品久| 欲色综合| 中文字幕在在线观看网站| 中文字幕精品免费一区二区| 午夜九九| 强上我不卡卡| 亚洲精品第一| 日韩免费a级毛片无码a∨| 九九九九九九成人| 九九色影院| 日语五十路和六十路亚洲国产精品| 黑人天8A∨高清网站| 国产精品自在线发布| 91大香蕉伊人| 青青草精品| 亚洲五月婷婷| 18禁精品网站在线看| 日日骚av| 国产妇女精品视频青青草| 欧美精品日韩一区二区| 成人97人人超碰人人| 热G综合热G中文| 亚洲第一二区另类图| 五月丁香激情综合网| 无码高清操逼网址| 欧美激情视频一区二区| 亚洲亚洲亚洲天堂天堂| 天美传媒国产原创中文字幕亚洲欧美另类| 日韩精品在线观看网站| 国产日韩欧美操逼视频| 国产精品扒开腿做爽爽爽视频| 欧美韩国你懂得在线| 口爆综合网| 国产亚洲精品玖玖玖在线观看| 蜜臀99久久国产| 亚洲欧美日韩电影网站一区 | 一区不卡在线观看av| 日韩大香蕉AV影片| 欧美淫乱视频| 嗯嗯啊好大| 欧洲Au麻豆| 中文字幕一区av| 日本色色的视频| 午夜一级免费毛片| 老熟妇一区二区三区…| 国产亚洲精品激情| 91伊人久| 国产成人 综合亚洲 天堂| 伊色综合天堂色97| 97天天爽| 九九毛片这里只有精品| 91碰碰碰| 欧美日韩高潮喷水91| 免费看一级a性色生活片久久无| 吖在线不卡一区二区国产剧情| 天天久久久久久| 久久精品综合| 色九九久九九| 600国产精品视频| 嗯嗯不要 视频| 日韩专区久久久| 国产精品乱码久久久久久| 久久日本熟妇熟色高清| 热天堂一区二区| 婷婷三区| 午夜精品久久久久| 欧美综合色图网| 91性网| 国产精品夜夜夜| 亚洲天堂一二| 91熟女丨91老女人| 插插综合网天天影视网| 校园春色 欧美| 97免费在线视频| 在线视频免费观看午夜| 欧美v日韩v亚洲v最新在线| 亚洲天天操| 精品人妻一区二区三区四区石在线| 超碰97亚洲| 日本孕妇一区二区视频操逼免费看| 国产久久天堂资源| 亚洲啪啪视频免费| 国产92麻豆天美精品色欲5| 99热这里都是精品| 人人操,人人液| 精品无码一区二区三区| 国产1769在线| 欧美黑人猛交春色影视大全| 97 视频在线| 亚洲清纯唯美| 美女黄站| 男人的天堂2019| 韩国三级一线观看久| 成人国产视频在线观看| 黄色小视频日本txt| 中日高清无码操逼视频| 手机不卡视频不卡在线一二三区 | 欧美资源| 国产欧美一级在线观看| 97婷婷色| 欧美精品 - 91爱爱| 天天干夜夜操一区二区| 美女啊啊啊啊啊啊| 成人性爱av.com| www.超碰| 综合久久99亚洲人妻中文在线| 综合久久99亚洲人妻中文在线| 91白虎| 亚洲色图尤物视频| 久草精品热视| 亚洲欧美国产精品久久久久久久| 中国人高清www色视频免费| 日韩精品国产一区二区| 亚洲有码 视频一区| 精品人妻伦一区二区三区久久| 久久国产乱子伦精品免费女,网站| 成人乱人伦一区二区| 夜夜肏2021| 日韩成人小视频| 人妻无码一区二区三区久久99| 欧美日韩国产成人高清| 乱日视频| 婷婷超| 天天操女人| 亚洲激情视频| 亚洲男人天堂Av| 久久女女| 亚洲精品啪视频| 夜夜国产一区| 国产黄色视频久久| 天天射影院| 久久九九热| 国产欧美岛国精品一区| 亚洲综合九| 婷婷av在线中文字幕| 蜜桃色色网站视频三区| 欧美大的香蕉有线电视视频| 色婷婷香蕉| 北京美女一区二区| 91欧美亚洲| 久久草草欧美精品| 久久女女| 极品极品色影院| 久久中文字幕女同性恋一区| 亚洲第一无码播放立川理惠| 欧洲亚洲人人爽爽视频| 约操熟妇| 九九九九精品在线| 2024人人操人人摸| 五月天日日操夜夜操| 黄色一级视| 亚洲色棕合| 看一级黄色视频| 伊人色综合网| 久久久四区| 97网址www| 国产丝袜欧美在线视频| 人妻 制服 日韩 中文 在线| 巨爆乳一区二区爆乳区| 一区二区视频你懂的| 国产午夜无码片在线观看影视| 亚洲91射| 91国产丝袜足交精品视频| 啪啪视频亚洲第一| 91观看 国产白丝| 99热精品青草在线| 91精品啪在线观看国产城中村| 日本在线15p| 四月丁香婷婷| 黄色视频特级毛片| 操逼操2| 亚洲色图 综合| 九九九九九九九精品视频| 影音先锋日本乱伦| 一级免费精品| 搞中出视频在线观看| 午夜精品视频777| 天天爽夜夜爽夜夜爽精| 校园春色第一页| 亚洲蜜臀懂色| 人妻熟女午夜精品在线| 性影在线视频| 粉嫩av平台| 亚洲第一男人天堂| 国产亚洲色婷婷99精品91| 99这里有精品视频| 久久久久久国产精品免费网站| 91精品91久久久久77777俄罗斯老妇姓x| 东北女人的毛片| 欧美亚洲丝袜人妻制服中文99| 熟女中出视频| 日韩97超碰中文字幕| 亚洲乱码国产乱码精网站| 欧美精品69性爱| 久久老熟女| 91国精产品| 久久一区,青青青青草视频在线播放| 立川理惠加勒比无码| 大屁股人妻女教师撅着屁股| 熟女熟妇一区二区三四区 | 成人小说视频在线精品欧美| 激情五月天中文字幕色| 美女诱惑久久| 91亚洲影视| 国产三级中文字幕粉嫩| 天综合网欧美| 亚洲一区亚洲天堂| 60秒免费小视频| 亚洲欧美天堂在线| 爆乳免费黄网站| 国语人妻精彩刺激| 少妇超碰在线| 久操综合在线| 91老司机在线视频免费观看 | 9118禁| 国产一线二线三线av| 天天干夜夜操一区二区| 国产成人啪一区二区| 色天堂在线观看| 婷婷另类小说| 97在线青| 伊人嫩草| 黑人性暴力毛片| 国产精品大屁股999| 蜜臀久久99'精品久久久| 九九九精品一区二区无码| 欧美色性爱| 综合 欧美 亚洲 日本| 一牛影视成人片免费| 很黄很色的视频在线观看| 在线观看无码三级少妇| 天天狂操夜夜狂日| 国产成人啪一区二区| 在线免费试看60秒| 亚州欧美在线| 波多野结衣AV无码一区| 欧美中文字幕日韩在线| 免费αⅴ在线观看| 东京热男人的天堂网| 高跟伊人julia ann| 欧美另类天堂| 污污汅18禁网站在线永久免费观看 | 人妻性爱一区二区| 亚洲美女自拍偷拍视频| 精品国产污一区二区三区| 男人的天堂三级| 操操操五月天婷婷丁香影院| 久久婷婷精品| 欧美一区二区三区成人性生活| 久久精品一区二区| 国产精品久久久久久 百度| 国产suv精品一区二区四区999| 国产成人精品必看| 亚洲影视综合网| 久久久天堂| 国产精品自在自拍视频| 超碰98综合网| 欧美亚洲另类在线蜜桃| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 亚洲日韩精品在线播放| 亚洲综合图片在线| 91爆操视频| 久久人妻一区二区三区高清| 一区二区三区视频国产免费| 中国亚洲呦女专区| 桃花色综合影院| 人人艹亚洲| 翔田千里爆乳巨臀无码| 九九九国产| 综合熟妇一区二区三区| 色婷婷视频| 亚洲中文字幕久久人妻| 国产欧美日韩在线不卡第一页| 久久熟妇五十路一区| 久久久久久少妇| 国产免费操逼| 又粗又长又大国产不卡| 女人高潮抽搐喷水视频网站| 欧美,日韩综合久久| 国产成年女人免费视频播放a| 91bbb| 97久久网| 人人操人人干xxx| 中文AV制服乱伦| 在线观看一级α片刺激高潮视频| 欧美色999| 欧美精品精品一区二区| 亚洲国产成人精品999| 八戒无码国产午夜福利| 亚洲视频,小说| 99婷婷| 中文字幕一区二区三区人妻少妇在线| 全国男人天堂网| 99国产精品久久久在线播放| 99re国产精品视频| 亚洲 欧美 另类 综合 偷拍| 天天视频黄网站| 国产黄片在线免费观看| 尤物av网站免费在线播放| 日韩在线观看AV| 欧美精品1区2区3区| 欧美一区二区| 超碰夫妻97| 天天做天天爱天天爽AV| 后入 亚洲 美女 射| 欧美日韩国产在线| 青青国产精品在线| 亚洲另类久操网| 红桃视频高潮| 在线视频97| 日韩精品大香蕉伊人在线| 亚洲日韩美女中文字幕乱| 天天看特黄的免费网站| 国产精品呦一区二区三区| 97超碰护士| 久操免费观看| 久久婷婷伊人| 亚洲精品丝袜-不卡成人免费……| 国产亚洲色婷婷久久99精品91葵花宝典| 思思热在线视频免费| 操逼操逼操| av网站免费看| 黄色人人| 操逼操网| 婷婷中文字幕| 99999精品成人| 日韩精品人妻中文字幕久久久| 国产av热热色| 密臀成人视频久久久| 精品人妻av区天天看片| 成人av福利在线观看| 95自拍视频在线观看| 国产一级作爱毛片| 屌色在线97视频| 亚洲自拍另类丝袜综合| 亚洲校园激情| 自拍内地三级在线观看| 亚洲美女自拍偷拍视频| 国产女上位好爽在线| 伦理日韩国产久久| 熟女丰满人妻一区| 欧美玖玖爱免费玖玖| 少妇色| 天天干天天狼在线视频| 精品久久久久瑟瑟| 精品97久久| 一区二区三区激情在线观看| 精彩国产视频播放1区2区| 限制级中的三级片中的黑粗大屌屌日人妻熟女| 夜夜躁狠狠躁日日躁av| 日韩AC| 加勒比综合a∨| 亚洲啪AⅤ永久无码| 男人兔费天堂| 午夜噜噜噜| 美国一区二区免费视频| 麻豆精品三区视频| 人人妻碰人人免费| 三级片大波波| 人人操人人色人人摸| 欧美久久九九| 思思久热在线精品66| av优播| 中文字幕三四区| 天天干2区3区| 欧美爆操91| 乱伦一二三区| av东京热男人的天堂| 国产精品无码久久久久2028| 国产中文福利| 大香网站| 色色97爱| 亚洲精品一二三四区| 91香蕉国产尤物视频| 中文一区二区婷婷视频| 久久国产免费激情视频| 成人熟女区| 亚洲经典啪啪| 2024年最新色情网站在线观看| 亚洲图片欧美91N| 东京热视频网| 久肏视频字幕| 亚熟在线| 免费一级欧美片片线观看| 亚洲一二三四区| 精人妻无码一区二区三区伊人直播| 久久久免费一级黄片| juliaann丝袜| 99爱爱| 另类图片五月| 亚洲精品中文字幕一区在线视频| 91精品综合久久久久久五月丁香| 亚洲综合另类| 亚洲女优有码无码高清| 九九热超碰97亚洲最新香蕉 | 亚洲成a人在线观看久| 亚洲Av诱惑| 美女丝袜激情小说| 麻豆久久久久久久久丝袜 | 啊啊啊啊啊啊啊国| 国产成人久久久精品免费AV| 国产无码精品高清| 99热在线播放| 亚洲天堂资源网| 久久久天美| 亚欧无码线免费观看视频| 蜜乳AV色欲AVAV无码| www.91理论| 很黄很色的视频在线观看| 亚洲欧美高清无码| 97香蕉碰碰人妻国产欧美| 美女91在线观看| 日韩三四五区| 免费夜夜爱黄色视频毛片| 国产精品自在自拍视频| 欧美亚洲一级在线观看| 我要去看2个日本美女.com曹逼| 加勒比久久av| 欧美在线综合| 伊人久日| 深夜操逼网| 91白虎| 亚州综合AⅤ| 99最新日韩偷拍视频| 大香蕉免费3| 久久久久久性爱片| 在线色导航| 亚洲天堂热| 美女让帅哥通她小鸡鸡| 黄片视频观看| 骚逼高潮久久精品| 欧美综合网在线| 伊人久日| 岛国激情视频在线观看| 亚洲激情视频| 精品人妻av在线播放| 操碰97| 日本精品性生活久久久| 日韩熟女操逼| 欧美综合天天| 精品一区二区三区蜜桃臀赵总 | 日韩干B| 国产呦精品一区二区三区下载| 久久精品人妻一区二区| 高潮的A片激情扒开一区| 97超碰色屌| 青娱乐亚洲自拍| 毛片麻豆91糖心精品毛情片| 国产精品蜜乳AV| 人妻熟女一区二区在线视频| 色色婷婷丁香| 天天综合97| 97自拍一区| 大香蕉一线视频| 亚洲色婷婷综合久久久久中文| 日韩三级视频一区二区三区| 午夜视频久久久久一区| av在线一区二区三区| 人妻天天爽夜夜爽2| 麻豆久久久一区二区| 麻豆亚洲AV成人无码久久精品| daxiangjiao你懂的| 久久亚洲欧美中文字幕国语| 97人人爱人人做人人乐| 国产精品分类在线观看| 久久999久| 一级毛片电影免费看| 久久久草成人网站久久久草成人久久久草久久久 | 噜噜噜狠狠色综合| 欧美性爱第一页久久| 熟女久久| 天堂在线一区二区| 爱爱动态120秒| 亚洲一区二区三区AV无码| 黄片免费日韩| 97鸡把在线视频| 操死我了嗯嗯嗯| 骚乳在线| 91国产精品在线看| 亚欧高清在线| 天欧美在线| 亚一综合久久久久久久久久| 欧美另类色| 啪啪啪综合| 激情文学网伊人| 78久久| 九九九九九九成人| 久久男人精品| 狠狠操狠狠燥| 天天综合影院91| 小视频玖玖| 人人爽夜夜玩视频| aaa一级黄片| 97亚洲精品| 一区二区 电影 亚洲| 粉嫩av久久一区二区三区| 天堂伊人久久| 美國A片| 国产视频第二页| 人人爽夜夜操| 每日更新AV| 百度百度日本操逼| 粉嫩小泬久久久一区二区| 亚洲砖码砖专无区2023| 日韩超碰97| 国产噜噜噜噜噜久久久久久久久| 美中日韩无码| 九九精品无码专区免费| 欧美日韩精品青青| 日韩免费三级黄片电影| 青青草成人视频在线观看二区| 婷婷激情一区二区三区俺也去| 色诱avtt| 欧美亚洲清纯| 好爽免费视频| 美國A片| 久久久无码精品人妻二区| 四虎视频在线观看| 二级久久网| 天美麻豆黄色录像| 老鸭窝成人| 91亚洲欧洲| 又大又长又爽| 91老熟女91老女人| 日日骚中文字幕| 日本乱人伦片中文三区| 在线观看无码三级少妇| 亚洲无码免费看| 九九无码| 欧美少妇色综合| 性91| 福利在线黄片| 国产精品交换一区二区| 日韩精品怡红院| 熟女色图在线| 1024亚洲中文字幕久在线看片你懂的| 久热伊人99re| 九热超碰| 激情综合网激情综合| ..日韩av毛片精品久久久| 91大学精品激情戏| 国产日韩欧美| 久久草草亚洲蜜桃臀| 色婷婷99| 香蕉大久久久| 欧美操逼熟女| 亚洲最大黄网| 亚洲黄色电影| 抽插无码高清一区| WWW美腿丝袜香蕉中文| 视频国产成人精品日本亚洲18| 我要看免费韩日黄片| 伦在线97| 国产日韩在线播放av| 久久超碰亚洲人| 女性91网站| 日本精品一区三区| 操熟女91| 95人妻爽爽人人做人人澡 | 熟妇操花| AV色五月天| 大伊香蕉在线视频免费| 怡红院成人视频| 91成人在线| 大香蕉av在线| 国产Aα| 亚洲男人在线观看天堂| 九九热五区| 久久女婷| 国模不卡| 欧美熟妇色| 国产SV一线| 久操精品网| 91香蕉国产尤物视频| 啊啊啊啊啊啊啊在线| 国产精选三级在线观看| 久操免费在线| 97视频在线免费播放| 色香蕉影院| 内射老妇BBWX0C0CK| 青青青草原| AND人妻系列| 成人看片网站| 国产精品久久久久久久久久久久| 亚洲中文字幕精品久久久久久直播| 蜜臀操逼黄色视频操的好爽| 极品少妇久久久久| 超碰偷拍| 国产乱码精品一区二区三区四川| 超碰久草| 人人妻天天做天天爽| 国产精品高潮久久AV| 在线啊啊啊啊| 激情四射婷婷四五月天| 麻豆人妻精品一区二区| 色情五月丁香| 韩国黄色片精品久久久| 牛牛aV| 日韩中文字幕人妻视频| 免费视频97| 久久婷婷苹果| 狠狠综合| 在线观看色视频| 9久在线视频只有精品| 99热日| 天天天天天天天天综合| 丝袜熟女2P| 观看免费区二区三区二| 亚洲欲色9532548967一区| 国产真实子伦对白| 青青草国产欧美非洲黑人| 亚洲天堂2020| 免费A片三p视频| 偷拍亚洲熟女视频播放| 黄色AAAAA欧美| 熟女人妇一区二区三区| 91黑人无码激情在线| 欧亚免费视频| 殴美,日韩国产伦精品| 综精品久久久aaaa| 热久久九九热| 亚洲亚洲亚洲天堂天堂| 久久9久久| 久草午夜| 能在线播放的国产三级| 亚洲天堂 视频你懂的| 婷婷激情啪啪| 久久天天躁日日躁狠狠躁| 欧美性爱网97| 91热| 中文字幕高清精品一区| 免费亚洲黄色视频在线观看 | 天天色悠悠激情| 久久亚洲不卡一区二区三区| 亚拍在线| av中亚| 熟女精品va中文字幕| 香蕉久久国产AV一区二区| 国产久久久9999| 少妇内射www在线观看视频 | 丝袜美腿制服人妻二区中文字幕| 久久女婷| 大香蕉欧美日韩| 99热这里都是精品| 国产强奸乱伦xd| 成功精品影院| 成人A片男人的天堂| 久久精品无码熟妇一区二区三区视频导航 | 亚洲精品欧洲色| 日韩操逼HD| 欧美操逼一二三区| 久久99精品九九久久久婷婷| 啊啊啊啊好疼| 能在线播放的国产三级| 欧美极品女人的天堂| 91色色综合| 九九九九精品| 亚欧国产无码精品在线| 九九英色视频| 午夜精品久久久久久久久久久久久| 99re免费视频精品全部| 丁香五月天社区| 国产久久久久影院老熟女| 亚洲图片欧美| 超碰成人免费| 自拍亚洲综合| 亚洲人妻中文在线视频| 天天做天天爱天天高潮| 亚洲日韩东京热一区| 操逼操2| 男人的天堂不卡一区二区| 免费看国产大AB| Av手机版天堂网| 嗯啊免费视频| 美女t无毒不卡不卡| 超碰成人公开| 另类av天堂| 国产综合色精品在线观看| 婷婷久久综合| 婷婷探花久久精品一区| 26uuu性| 国产盗摄美女如厕大神作品在线观看| 亚洲色电影在线| 97干在线视频| 四季av一区二区凹凸精品小说| 午夜一区二区三区国产| 久久人人爽爽爽人久久久| 婷婷午夜清品久久久久久久性色视频观| 99久久婷婷丁香| 欧美性爱网97| 白天啪啪晚上啪啪视频| 又黄又粗又硬又长又大| 91精品人妻偷情| 夜夜操91744565| 欧美欧美啪啪视频| 精品久久99| 91社区伊人| 伊人国产av| 中国操逼无码| 亚洲码和欧洲精品激情系列| 国产二区三区免费视频| 澳门人妻久久| 亚洲午夜未满十八勿入网站日本又色又爽又黄| 一区二区 韩日AV| 五月天伊人网| 91久久久久久久久久久| 亚洲美女AV无码| 白丝1区2区3区| CCYY草草影院地址入口| 国内操逼视频二区| 日本东京热加勒比久久| 少妇丝袜在线观看AV| 亚洲国产精品无码AV在线| 日本精品九九九| 岛国片在线观看视频亚洲| 精品人妻一区二区三区蜜桃视频| 91Chinese在线| 91人人| 操操操操网黑人| 97人人操人人摸| 中出20p| 极品色社| 人人操人人干xxx| 超碰日韩美妻| 成人精品在线| 欧美性天天| 深夜视频| 日日摸日日碰夜夜爽视频| 亚洲国产一区二区三区四区国产| 人人妻天天做天天爽| 亚洲成人免费电影| 色哟哟 日韩精品| 久久AV色| 激情丁香五月| 一本色道久久天天射天天干| 亚洲图片在线| 激情丁香五月| 精品国产Av无码久久久亚洲| 久久久久网站-538在线视频-欧美永久乱码| 思思热久久成人| 91丰满| 99 国产丝袜在线| 久久男女激情视频网站| 亚洲成a人v欧美综合天堂下载| 午夜福利区| 99热在线播放| 中文字幕人成乱码熟女香港| 高清孕妇孕交 交孕妇| 色一射色一射| 免费啪啪一级视频| 欧美激情久操网| 天天天堂影视日韩亚洲91| 2011国产精品| 亚洲成人性爱在线观看| 亚洲欧洲激情卡通另类文学四射小说网站| 亚洲国产亚洲天堂| 熟人人妻少妇精品久久| 久操高青| 蜜乳AV色欲AVAV无码| 欧美高清18A片| 亚洲精品 欧美97色色| 综合久欧洲| 91性高潮久久久久久久久| 天天操人人操狠狠插| 亚洲欧美骚| 精人妻无码一区二区三区伊人直播 | 亚洲好看强奸乱伦| 黄页av| www.acm成人黄色毛片| 欧美性色综合网| 久久草草欧美精品| 国产成人精品日本视频| 一区二区三区免费视频入口| 亚洲中文sv| 日韩精品9区| 天天摸天天碰天天添青青| 日韩三级视频一区二区三区| 亚洲色图殴美色图激情乱伦| 蜜臀AV秘一区翔田千里| 草草草草视频| 天天舔日美女视频| 久热大香蕉网站| 99色婷婷中文字幕乱色| 欧美在线官网| 中文字幕日韩综合| 9色在线| www.色操逼| 亚洲精品aa久久伊人| 再深点灬舒服灬太大了添视频| 秋霞 色色| 97精| 亚洲一区二区在线观看91| 国产精品久久久亚洲第一牛牛_在线观看 | 麻豆国产原创AV色哟哟| 东京热亚洲一区二区| 国产伦精品一区二区三区在线观 | 欧美亚洲清纯| 蜜桃臀一区二区三区久久| 亚洲资源网| 使劲用力艹少妇视频一区二区 | 欧美精品23| 国产综合在线视频网站| 98人妻精品一区二区色欲| 国产日韩久久| 国产精品福利视频| 日韩三级伊人| 国产精品人妻无码久久久老鸭窝| 日本506070| 久久一二三四| 国产精品一区二区手机看片| 精品国产av一区二区三区四区入口| 激情综合网亚洲| 人妻色偷色噜| 免费的黄片有限公司| 欧洲综合无码| 17c在线成人免费A片观看| 中国国产精品一区视频| 亚洲乱码国产乱码精网站| 日本亚洲熟女视频| 九九热精品|