Sửa lỗi IntelliSense VS Code không hoạt động: "Language server is not ready yet"

intermediate💻 VS Code2026-03-19| VS Code 1.80+ trên Windows 10/11, macOS 13+, Ubuntu 22.04 — ảnh hưởng đến Python, TypeScript, C++, Java và các extension ngôn ngữ khác

Error Message

Language server is not ready yet. Wait for it to fully load.
#vscode#intellisense#language-server#autocomplete

Lỗi Gặp Phải

Bạn mở một file, hover chuột lên một hàm, hoặc kích hoạt autocomplete — và thay vì hiện gợi ý, bạn nhận được:

Language server is not ready yet. Wait for it to fully load.

IntelliSense tắt ngúm. Không có hover docs, không có autocomplete, không có go-to-definition. Nếu đang review code hay debug giữa chừng, thật sự rất khó chịu.

Nguyên Nhân

VS Code ủy thác khả năng nhận diện ngôn ngữ cho các tiến trình riêng biệt gọi là Language Server (LSP). Khi bạn thấy thông báo này, language server đang gặp một trong các tình huống sau:

  • Bị crash khi khởi động và không tự phục hồi được
  • Vẫn đang index một project lớn — bình thường nếu chỉ trong 2–3 phút đầu với codebase hơn 5.000 file, nhưng là vấn đề nếu bị treo quá lâu
  • Không tìm thấy runtime đúng (Python interpreter, Node.js, JDK, v.v.)
  • Bị giới hạn bộ nhớ hoặc CPU và dừng hoạt động
  • Cache của extension bị hỏng

Mỗi nguyên nhân có cách xử lý khác nhau. Hãy bắt đầu từ Fix 1 — cách này giải quyết được vấn đề cho phần lớn mọi người mà không cần đào sâu thêm.

Fix 1: Restart Language Server (Nhanh Nhất)

Trước tiên — hãy restart language server cụ thể mà không cần khởi động lại cả VS Code.

Mở Command Palette (Ctrl+Shift+P / Cmd+Shift+P) và chạy:

Python: Restart Language Server
TypeScript: Restart TS Server
Java: Clean Workspace
C/C++: Reset IntelliSense Database

Lệnh cụ thể tùy thuộc vào ngôn ngữ bạn đang dùng. Với Python là Python: Restart Language Server, với TypeScript/JavaScript là TypeScript: Restart TS Server.

Chờ 10–15 giây, rồi hover chuột lên một symbol. Nếu IntelliSense phản hồi, vậy là xong.

Fix 2: Kiểm Tra Log Output Của Language Server

Restart không giúp được? Hãy xem language server đang báo lỗi gì. Mở panel Output:

View → Output  (hoặc Ctrl+Shift+U)

Trong dropdown bên phải, chọn language server của bạn (ví dụ: Pylance, TypeScript and JavaScript Language Features, Java Language Server).

Tìm các dòng như:

Error: spawn python ENOENT
Failed to start language server
Java home not found
Cannot find module 'typescript'

Những dòng này cho biết chính xác vấn đề nằm ở đâu. Các nguyên nhân thường gặp:

  • ENOENT → không tìm thấy runtime (đường dẫn interpreter sai)
  • Cannot find module → thiếu package npm/pip
  • Java home not found → chưa set JAVA_HOME
  • Out of memory → tăng heap memory (xem Fix 5)

Fix 3: Chọn Đúng Interpreter/Runtime

Runtime sai hoặc không tìm thấy là nguyên nhân phổ biến nhất. VS Code có thể đang trỏ đến một Python không tồn tại, một phiên bản Node quá cũ, hoặc JDK mà nó không thể tìm thấy.

Python (Pylance / Python extension)

Ctrl+Shift+P → Python: Select Interpreter

Chọn đúng virtualenv hoặc Python hệ thống. Kiểm tra bằng lệnh:

which python3
python3 --version

Sau đó cố định lại trong .vscode/settings.json:

{
  "python.defaultInterpreterPath": "/usr/bin/python3"
}

TypeScript/JavaScript

Nếu project có cài TypeScript riêng, hãy chỉ cho VS Code dùng phiên bản đó:

Ctrl+Shift+P → TypeScript: Select TypeScript Version → Use Workspace Version

Java

Set JAVA_HOME rồi restart VS Code:

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

Fix 4: Xóa Cache Extension

Sau khi cập nhật VS Code, các file cache cũ có thể khiến language server bị hỏng. Hãy xóa thư mục workspace storage và để VS Code tự tạo lại từ đầu.

Windows

%APPDATA%\Code\User\workspaceStorage\

Xóa toàn bộ thư mục bên trong workspaceStorage (xóa an toàn — VS Code sẽ tự tạo lại).

macOS

rm -rf ~/Library/Application\ Support/Code/User/workspaceStorage/*

Linux

rm -rf ~/.config/Code/User/workspaceStorage/*

Sau khi xóa, reload VS Code (Ctrl+Shift+P → Developer: Reload Window) và chờ quá trình re-indexing hoàn tất.

Fix 5: Tăng Bộ Nhớ Cho Language Server (Java / Project Lớn)

Với Java hoặc các project TypeScript lớn, language server có thể hết heap memory và bị treo. Giới hạn mặc định quá thấp cho monorepo hoặc codebase có hơn 10.000 file.

Java Language Server

Trong .vscode/settings.json:

{
  "java.jdt.ls.vmargs": "-XX:+UseG1GC -XX:+UseStringDeduplication -Xmx2G"
}

TypeScript Server

{
  "typescript.tsserver.maxTsServerMemory": 4096
}

Restart language server sau khi thay đổi các cài đặt này.

Fix 6: Cài Lại Extension Ngôn Ngữ

Vẫn chưa xử lý được? Bản thân extension có thể bị hỏng — một lần cập nhật không hoàn chỉnh có thể khiến nó rơi vào trạng thái lỗi nửa vời. Hãy gỡ hoàn toàn và cài lại sạch.

# Gỡ cài đặt qua CLI
code --uninstall-extension ms-python.python
code --uninstall-extension ms-python.vscode-pylance

# Cài lại
code --install-extension ms-python.python
code --install-extension ms-python.vscode-pylance

Hoặc thực hiện qua sidebar Extensions: tìm extension → icon bánh răng → Uninstall, rồi cài lại.

Fix 7: Kiểm Tra Extension Xung Đột

Hai extension tranh chấp cùng một ngôn ngữ có thể ngăn language server khởi động. Trường hợp này khá khó phát hiện — không có thông báo lỗi rõ ràng, mọi thứ chỉ đứng yên mà không rõ lý do.

Ctrl+Shift+P → Developer: Start Extension Bisect

Tính năng này dùng phương pháp tìm kiếm nhị phân để tìm extension xung đột. Làm theo hướng dẫn — thường mất 3–5 vòng để xác định được thủ phạm.

Kiểm Tra Sau Khi Sửa

Kiểm tra nhanh — IntelliSense phải vượt qua tất cả các bước sau:

  • Hover chuột lên một hàm — phải hiện signature và tài liệu của hàm đó
  • Gõ một phần tên method — gợi ý autocomplete phải xuất hiện
  • Click chuột phải lên một symbol → Go to Definition phải điều hướng đúng
  • Kiểm tra Status Bar ở dưới cùng — tên language server (ví dụ: Pylance) không có icon cảnh báo

Bạn cũng có thể mở panel Output và xác nhận language server đã ghi log như sau:

Language server started successfully
Server ready

Phòng Ngừa

  • Ghim phiên bản VS Code nếu đang làm project lớn — các bản cập nhật lớn có thể làm hỏng language server tạm thời
  • Commit .vscode/settings.json kèm đường dẫn interpreter để đồng nghiệp không gặp lỗi này khi clone lần đầu
  • Cập nhật extension thường xuyên — các lỗi trong language server được vá liên tục
  • Loại trừ các thư mục nặng khỏi quá trình indexing để tránh khởi động chậm:
{
  "python.analysis.exclude": ["**/node_modules", "**/.venv", "**/dist"],
  "files.watcherExclude": {
    "**/node_modules/**": true,
    "**/.git/**": true
  }
}

Related Error Notes