Cộng đồng thảo luận về các lựa chọn Language Server khi Multilspy của Microsoft ngày càng phát triển

BigGo Editorial Team
Cộng đồng thảo luận về các lựa chọn Language Server khi Multilspy của Microsoft ngày càng phát triển

Sự ra mắt gần đây của Multilspy từ Microsoft đã khơi mào một cuộc thảo luận thú vị trong cộng đồng lập trình viên về việc triển khai language server và các cân nhắc về giấy phép. Trong khi Multilspy hướng đến việc đơn giản hóa việc tạo các language server client, phản hồi từ cộng đồng đã làm nổi bật một số khía cạnh tinh tế trong việc lựa chọn và triển khai language server.

Các ngôn ngữ hiện được hỗ trợ trong Multilspy:

  • Java
  • Python
  • C
  • Rust
  • JavaScript

Sự phức tạp trong cấp phép Language Server

Một điểm thảo luận quan trọng đã nổi lên xoay quanh việc lựa chọn language server, đặc biệt là cho phát triển Python và C#. Các thành viên cộng đồng đã lưu ý rằng mặc dù Pylance của Microsoft là một công cụ mạnh mẽ, nhưng giấy phép hạn chế của nó chỉ cho phép sử dụng trong các sản phẩm chính thức của Microsoft. Điều này dẫn đến việc lựa chọn các giải pháp thay thế như Jedi Language Server cho việc triển khai Python trong Multilspy. Tương tự, việc chuyển đổi từ OmniSharp sang Roslyn Language Server cho C# cũng đã làm dấy lên các câu hỏi về việc lựa chọn server.

Không có điều khoản cấp phép đặc biệt nào khi sử dụng Roslyn Language Server, đây là thứ mà phần mở rộng C# cơ bản trong VSC sử dụng. Chính trình gỡ lỗi mới là phần mã nguồn đóng, và các điều khoản cấp phép tùy chỉnh chủ yếu áp dụng cho trình gỡ lỗi đó và phần mở rộng Dev Kit có tính phí đăng ký.

Các Máy Chủ Ngôn Ngữ Chính Được Thảo Luận:

  • Pylance (Giới hạn bởi Microsoft)
  • Jedi Language Server (Mã nguồn mở)
  • Pyright (Giấy phép MIT)
  • Roslyn Language Server (Mã nguồn mở)
  • OmniSharp (Không còn được hỗ trợ)

Các giải pháp thay thế mã nguồn mở và giải pháp cộng đồng

Cộng đồng đã nhấn mạnh các giải pháp thay thế mã nguồn mở khả thi, đặc biệt là Pyright như một sự thay thế có năng lực cho Pylance. Pyright, hoạt động dưới giấy phép MIT, cung cấp các chức năng tương đương với Pylance, vốn thực tế được xây dựng dựa trên nó. Đây là một giải pháp thiết thực cho các nhà phát triển đang tìm kiếm các triển khai language server không bị hạn chế.

Thách thức triển khai trong thực tế

Các nhà phát triển đã chia sẻ kinh nghiệm của họ với việc triển khai language server, đặc biệt lưu ý đến những khó khăn trong việc khởi tạo và cấu hình server. Trải nghiệm của một nhà phát triển về việc vật lộn với tích hợp Java language server đã làm nổi bật giá trị của cách tiếp cận chuẩn hóa của Multilspy. Tác giả dự án đã tích cực tương tác với cộng đồng, cung cấp hỗ trợ và nhấn mạnh tầm quan trọng của việc tài liệu hóa đúng cách và chia sẻ cấu hình.

Ý nghĩa trong tương lai

Các cuộc thảo luận xung quanh Multilspy cho thấy nhu cầu rộng lớn của ngành công nghiệp về các cách tiếp cận chuẩn hóa, được tài liệu hóa tốt trong việc triển khai language server. Mục tiêu của dự án trong việc tạo ra một kho lưu trữ trung tâm cho các cấu hình language server có thể giảm đáng kể rào cản triển khai và cải thiện trải nghiệm phát triển đa nền tảng.

Lưu ý: Language Server Protocol (LSP) là một giao thức chuẩn hóa cho phép các công cụ phát triển giao tiếp với các server cung cấp các tính năng ngôn ngữ như tự động hoàn thành, chuyển đến định nghĩa, và hiển thị tài liệu khi di chuột qua.

Tham khảo: Multilspy: Thư viện LSP client bằng Python để xây dựng ứng dụng xung quanh language server