LineCue
Đọc lỗi ngay trên dòng code, giữ mạch làm việc trong VS Code.
Bối cảnh
Khi đang viết code, dấu gạch chân cho biết có vấn đề nhưng thường chưa giải thích
đủ nội dung. Việc rê chuột hoặc chuyển qua lại với Problems panel dễ làm gián đoạn
suy nghĩ, nhất là khi nhiều lỗi và cảnh báo xuất hiện cùng lúc.
LineCue đưa thông báo Error và Warning tới cuối dòng liên quan để bạn nhận biết
và xử lý ngay trong editor.
Nhiệm vụ
LineCue trình bày diagnostics đã có của VS Code một cách ngắn gọn, dễ đọc và truy
cập được bằng bàn phím. Extension dùng kết quả từ language server hoặc linter bạn
đang sử dụng; thời điểm xuất hiện thông báo phụ thuộc công cụ phân tích đó.
Ví dụ minh họa phần thông báo được vẽ thêm:
const age: number = "25"; × Type 'string' is not assignable to type 'number'.
Chữ inline là decoration, không được ghi vào nội dung file.
Khả năng của extension
- Hiển thị Error màu đỏ, Warning màu vàng, kèm biểu tượng để nhận biết
severity ngay cả khi khó phân biệt màu. Hỗ trợ token màu theo theme/high contrast.
- Hiển thị biến/import chưa dùng khi analyzer gửi Hint có tag
Unnecessary,
ví dụ TypeScript ts(6133). Dùng màu vàng; phần chi tiết giữ mức gốc Hint.
- Mỗi dòng có một thông báo đại diện. Error được ưu tiên;
(+N) cho biết số vấn
đề còn lại trên cùng dòng sau khi áp dụng bộ lọc.
- Chế độ All hiển thị trong vùng đang nhìn; Focus chỉ hiển thị dòng có
con trỏ. Cùng một file mở ở nhiều editor có vùng hiển thị độc lập.
- Mở toàn bộ lỗi của dòng trong tài liệu văn bản chỉ đọc, gồm severity, vị trí,
source, code và nội dung nhiều dòng ban đầu.
- Copy một thông báo gốc bằng lệnh. Nếu có nhiều vấn đề, bạn chọn thông báo cần
copy; hủy lựa chọn giữ nguyên clipboard.
- Tùy chỉnh độ dài, số thông báo, độ trễ và loại trừ language/source.
- Tự xóa decoration khi diagnostics hết lỗi và dọn tác vụ khi đóng file/tắt.
Mặc định hiển thị tối đa 120 ký tự/thông báo, 200 thông báo/editor;
nội dung dài được rút gọn bằng …. Dòng code dài hoặc editor hẹp có thể đẩy chữ
inline ra ngoài vùng nhìn; lệnh đọc đầy đủ vẫn dùng được mà không cần hover.
Sử dụng
Mở một file có Error/Warning từ language server hoặc linter. LineCue cập nhật
theo diagnostics của VS Code, kể cả file chưa lưu nếu nguồn phân tích hỗ trợ.
Đặt con trỏ ở dòng cần xem, mở Command Palette và chọn:
| Lệnh |
Chức năng |
LineCue: Toggle Inline Problems |
Bật/tắt trong phiên làm việc hiện tại. |
LineCue: Toggle All / Focus Mode |
Chuyển chế độ All/Focus trong phiên làm việc. |
LineCue: Show Line Problems |
Đọc toàn bộ thông báo của dòng trong tài liệu chỉ đọc. |
LineCue: Copy Problem |
Chọn/copy một thông báo gốc của dòng. |
Gọi lệnh từ editor của file nguồn. Bật/tắt và đổi chế độ không ghi vào Settings;
chỉnh cấu hình LineCue hoặc tải lại cửa sổ sẽ bỏ lựa chọn tạm thời. Tài liệu chi
tiết được xóa nội dung khi diagnostics/source thay đổi, file đóng hoặc LineCue bị
tắt; gọi lại Show Line Problems để đọc snapshot mới.
Chuyển chế độ All / Focus
- All (mặc định): hiển thị thông báo trên các dòng trong vùng editor đang nhìn.
- Focus: chỉ hiển thị thông báo của dòng có con trỏ; di chuyển con trỏ để xem
vấn đề ở dòng khác.
Đổi nhanh trong phiên làm việc:
- Đặt con trỏ trong editor của file nguồn.
- Nhấn
Ctrl+Shift+P (Windows/Linux) hoặc Cmd+Shift+P (macOS).
- Chọn LineCue: Toggle All / Focus Mode. Mỗi lần gọi chuyển
All ↔ Focus.
Đặt chế độ mặc định: mở Settings, tìm LineCue: Mode rồi chọn all hoặc
focus. Bạn cũng có thể thêm vào User/Workspace settings.json:
{
"linecue.mode": "focus"
}
Đổi thành "all" để trở lại All. Lệnh Toggle chỉ đổi tạm trong phiên; khi sửa
cấu hình LineCue hoặc tải lại cửa sổ, extension dùng lại giá trị trong Settings.
Cấu hình
| Setting |
Mặc định |
Ý nghĩa |
linecue.enabled |
true |
Bật hiển thị. |
linecue.mode |
all |
all hoặc focus. |
linecue.severities |
["error", "warning"] |
Severity được hiển thị. |
linecue.includeUnnecessaryHints |
true |
Hiện Hint có tag Unnecessary bằng màu vàng; cần bật warning trong severities. |
linecue.maxMessageLength |
120 |
Giới hạn 40–500 ký tự, gồm biểu tượng, (+N) và …. |
linecue.updateDelayMs |
100 |
Gom cập nhật trong 0–500 ms. |
linecue.maxInlineMessages |
200 |
Tối đa 1–500 thông báo/editor; ưu tiên gần con trỏ. |
linecue.excludeLanguages |
[] |
Loại trừ theo language ID chính xác. |
linecue.excludeSources |
[] |
Loại trừ theo tên source chính xác. |
Màu có thể ghi đè qua workbench.colorCustomizations với
linecue.errorForeground và linecue.warningForeground. Nếu đang dùng extension
khác cũng vẽ diagnostics inline, nên chỉ bật một lớp để tránh thông báo lặp.
Dữ liệu và quyền riêng tư
LineCue không gọi mạng, không telemetry, không gửi source/diagnostics tới dịch vụ
AI, không chạy shell/linter riêng và không sửa source. Diagnostics chỉ giữ trong
bộ nhớ của phiên làm việc; log nội bộ chỉ có mã lỗi, không có nội dung hay đường
dẫn. Clipboard chỉ được ghi khi bạn gọi Copy Problem. Thông báo được trình bày
bằng văn bản; các chuỗi HTML hoặc command URI trong diagnostic không được thực thi.
Các extension/linter khác và bản thân VS Code có chính sách dữ liệu riêng.
Phiên bản và trạng thái
0.1.0 — bản preview chuẩn bị phát hành, publisher hoang-tuanp.
Lịch sử thay đổi nằm trong CHANGELOG.md (tab Changelog của extension).
Chưa có Quick Fix, tự sửa code, Info,
Hint không có tag Unnecessary, dịch hay AI giải thích lỗi.
Để cài từ gói VSIX: mở Extensions, chọn menu … → Install from VSIX… rồi
chọn file linecue-0.1.0.vsix.
Để chạy thử từ source: cài dependency với npm ci --ignore-scripts, chạy
npm run verify, rồi F5 trong VS Code. Hướng dẫn phát triển và bằng chứng kiểm
chứng nằm trong thư mục docs/ và specs/ của source; gói VSIX chỉ chứa runtime
và tài liệu sử dụng.