Sử dụng kỹ thuật đảo ngược, bạn có thể thêm ngôn ngữ mới vào VSCode. Bạn có thể xem xét cách thức các kiểu chữ được thực hiện như một plugin JavaScript và cách nó giao tiếp với node.exe thông qua đường ống. Nhưng đó là một điều khó khăn vì nó đến mà không cần tài liệu Tôi sẽ cung cấp tài liệu ngắn gọn ở đây:
Bạn có thể xác định plugin mới trong thư mục plugin C:\Users\USER\AppData\Local\Code\app-0.3.0\resources\app\plugins
.
Sao chép thư mục plugin loại và đổi tên các phần mở rộng tệp đã đề cập và tên ngôn ngữ trong tất cả các tệp sang ngôn ngữ mới của bạn để plugin mới sẽ được sử dụng khi tệp .mylang được mở.
Trong typescriptServiceClient.js
bạn thấy rằng một quy trình con đang được chia nhỏ và stdout
của nó được ghép với một số new WireProtocol.Reader
. Liên kết số mylanguage.exe
của riêng bạn (có thể bạn sẽ cần phải tự viết mã đó). VSCode yêu cầu mã nhị phân đó nhận thêm thông tin cụ thể về ngôn ngữ.
Trong typescriptMain.js
bạn tìm thấy đăng ký tính năng cho ngôn ngữ. Xóa mọi cuộc gọi đến monaco.Modes.XXXXXXSupport.register
trừ monaco.Modes.DeclarationSupport.register
.
Bây giờ, hãy mở thư mục trong VSCode chứa tệp .mylang và mở một trong số chúng qua CTRL+P + FileName
. Nhấp chuột phải vào số nhận dạng và chọn Go to Definition
. VSCode nay gửi một yêu cầu như thế này qua stdin để exe của bạn
{"seq":1,"type":"request","command":"definition","arguments":{"file":"d:/Projects/MyProj/Source/MyFile.mylang","line":45,"offset":9}}
VSCode hy vọng một câu trả lời như thế này:
Content-Length: 251
[LINE BREAK]
{ "seq" : 1, "type" : "response", "command" : "definition", "request_seq" : 1, "success" : true, "body" : [{ "file" : "d:/Projects/MyProj/Source/MyOtherFile.mylang", "start" : { "line" : 125, "offset" : 3 }, "end" : { "line" : 145, "offset" : 11} }] }
Nếu mọi thứ hoạt động VSCode sẽ mở MyOtherFile.mylang và thiết lập con trỏ đến dòng 124 trong cột 3.
Tự mình thử ;-)
séc ra kho Essentials Web Mads Kristensen của trên github. –
Đó là cho VS, nhưng không phải cho Mã VS. –
Xin lỗi, tôi đã bỏ lỡ phần câu hỏi của bạn. Thư mục ~ AppData \ Local \ Code \ app-0.1.0 \ resources \ app \ plugins chứa các plugin ngôn ngữ, bạn có thể sử dụng chúng. –