2010-05-31 34 views
6

Ok, trước khi tôi bắt đầu, tôi nhận ra rằng có rất nhiều tài liệu về chủ đề này nhưng tôi đã thất bại đến mức không thể làm việc cho VS2010.Visual studio 2010 colourizers, intellisense và phần còn lại. Bắt đầu từ đâu!

Mục tiêu của tôi là chỉ cần đến điểm tôi có thể mở tài liệu và mọi thứ có màu đỏ, từ đây tôi có thể triển khai logic phân tích cú pháp có liên quan.

Dưới đây là những gì tôi đã cố gắng/tìm thấy:

1) Downloaded tất cả các có liên quan SDK và such- Tìm thấy mẫu ook (http://code.msdn.microsoft.com/ookLanguage) - không xây dựng, không làm việc.

2) Biết gần như không có gì về MEF đọc qua "Thực hiện một dịch vụ Language Bởi Sử dụng khung Package được quản lý" - http://msdn.microsoft.com/en-us/library/bb166533(v=VS.100).aspx

này đã được khá nhiều bản sao và dán tất cả các nội dung cơ bản ở đây, và cũng cập nhật một số tài liệu tham khảo đã lỗi thời với mẫu, xem: http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/a310fe67-afd2-4592-b295-3fc86fec7996

Bây giờ, tôi đã đến thời điểm khi chạy gói MEF dường như đã kết nối đúng cách (Tôi biết điều này vì với trình gỡ rối đang mở, tôi có thể thấy rằng các gói khởi tạo và các phương thức FDoIdle đang bị tấn công).

Khi tôi mở tệp của tiện ích mở rộng, tôi đã đăng ký với ProvisionLanguageExtensionAttribute mọi thứ chết như thể trong vòng lặp vô tận, nhưng chưa có biểu tượng gỡ lỗi nào (mặc dù chúng được tải).

Nhìn vào mẫu ook và các ví dụ MEF chúng dường như là các cách tiếp cận hoàn toàn khác nhau cho cùng một vấn đề. Trong mẫu ook có các khái niệm về bộ điều khiển Clasifications và Completion không được đề cập trong ví dụ MEF. Ngoài ra, họ dường như không tạo ra một gói hoặc dịch vụ ngôn ngữ, vì vậy tôi không có ý tưởng làm thế nào nó nên làm việc?

Với ví dụ MEF, giả định của tôi là tôi cần phải móc vào "IScanner.ScanTokenAndProvideInfoAboutIt" để cung cấp đánh dấu cú pháp? Sẽ ổn nếu tôi có thể nhấn phương pháp này.

Vì vậy, câu hỏi đầu tiên của tôi, tôi đoán là tôi nên sử dụng phương pháp nào ở đây? Hay cả hai bằng cách nào đó liên kết với nhau?

Câu hỏi thứ hai của tôi là, tôi có thể tìm thấy một dự án cơ bản hoàn toàn làm việc thực hiện việc đánh dấu cú pháp cơ bản chuẩn và intellisense hoặc VS2010 ở đâu?

Thứ ba, trong ví dụ MEF khi tôi tạo Gói, có một loạt các dự án thử nghiệm được tạo cho tôi. Tôi xuất hiện rằng các thử nghiệm tích hợp khởi động giàn khoan thử nghiệm VS2010 bằng cách nào đó, nhưng thử nghiệm không thành công. Nó sẽ là tốt để viết dịch vụ của tôi với các bài kiểm tra nhưng tôi không có ý tưởng gì/làm thế nào tôi có thể kiểm tra mỗi tương tác vì vậy bất kỳ tài liệu tham khảo để kiểm tra dịch vụ ngôn ngữ sẽ hữu ích.

Cuối cùng, hãy ném mọi liên kết tài nguyên/sách của tôi theo cách mà tôi có thể thấy hữu ích.

Chúc mừng, Chris.

N.B. Xin lỗi tôi nhận ra đây là một phần câu hỏi rant, nhưng tôi chưa bao giờ quá bối rối.

Trả lời

4

Trước tiên, ví dụ gói là không bằng MEF.Về cơ bản mọi nơi mà bạn đề cập đến MEF trong câu hỏi của bạn không thực sự là MEF, nhưng khung quản lý gói (MPF), cũng thường được gọi là dịch vụ ngôn ngữ được quản lý (MLS). Bạn sẽ biết liệu tiện ích mở rộng của bạn có đang sử dụng MEF hay không bằng hai thứ: vsixmanifest liệt kê assembly của bạn có chứa một thành phần MEF, và bạn thấy các thuộc tính [Export][Import] trong mã.

Cách dễ nhất để thực hiện việc này để sử dụng MEF. Vì bạn đã cài đặt SDK, bạn cũng có một mẫu cho một dự án trình soạn thảo trình soạn thảo (dưới C# (or VB)->Extensibility->Editor classifier trong hộp thoại Dự án mới). Bạn chắc chắn có thể làm điều này với một dịch vụ/colorizer/gói ngôn ngữ, nhưng sẽ có nhiều mã hơn so với bộ phân loại tương đương.

Giải pháp Ook là mẫu cho việc này và nên hoạt động; nếu nó không xây dựng/làm việc, sau đó bạn có thể gửi cho tôi email (noahric tại microsoft) với những lỗi bạn đang nhìn thấy vì vậy tôi có thể gửi email cho chủ sở hữu của mẫu đó?

Nói chung, bạn cũng nên đọc my answer cho câu hỏi về "Làm cách nào để viết plugin cho VS2010 bằng MEF?". Điều đó có liên kết đến các tài nguyên khác cần trợ giúp.

+0

Cảm ơn bạn đã cập nhật, tôi sẽ gửi cho bạn một email với các vấn đề tôi đang gặp phải với ook! dung dịch. Tôi cũng nhận thấy rằng tôi KHÔNG có mẫu dự án trình phân loại Editor có sẵn trong tab Mở rộng, điều này khiến tôi tự hỏi liệu mình đã cài đặt SDK không chính xác hay có phiên bản cũ hơn đang chạy trên máy của mình. – Owen

+0

Ngẫu nhiên Noah, bạn đã buộc tôi phải đọc về MEF và những thứ khá thú vị của nó. Tôi thực sự không hiểu nó như bất cứ thứ gì hơn là một container IoC cho đến khi tôi đào sâu hơn một chút. Bây giờ tôi hiểu cách VS có thể tận dụng điều này. Có lẽ nó là giá trị tôi đọc nhiều hơn một chút trước khi đăng/ranting đây :-). – Owen

+0

Ok, vì vậy tôi đã tìm hiểu lý do tại sao tôi không thể xây dựng Ook! mẫu - Tôi chỉ cài đặt SDK beta. Ngoài ra, tôi không thể bắt đầu các mẫu với vỏ kiểm tra VS như các thuộc tính gỡ lỗi xác định để chạy VS đã mất tích nhưng tôi đã thêm những điều này, và tất cả là tốt. Cảm ơn bạn đã giúp đỡ. – Owen

Các vấn đề liên quan