2012-08-07 66 views
9

Chúng tôi đang làm việc trên một phần mở rộng VS mà đòi hỏi một danh sách các lệnh Visual Studio như một trong ảnh chụp màn hình này:Cách lấy danh sách lệnh Visual Studio?

Screen Shot from Visual Studio 2010, Tools > Options > Keyboard

Ví dụ:

  • Action.Add
  • Action. Add.NETFrameworkLaunchCondition
  • Hành động.AddAction
  • ... vv

Nơi chúng tôi có thể tìm hoặc cách chúng tôi có thể truy cập danh sách này?

Trả lời

3

studio trực quan chứa danh sách này ...\Microsoft Visual Studio 9.0\Common7\IDE\*.vsk

8

Bạn có thể truy cập thông qua giao diện DTE. Lấy giao diện EnvDTE.DTE qua GetService(typeof(SDTE)) (hoặc các cơ chế thích hợp) và sau đó:

EnvDTE.DTE dte = ...; 
var commands = dte.Commands.Cast<EnvDTE.Command>(); 

foreach (var command in commands.OrderBy(c => c.Name)) 
{ 
    Console.WriteLine(command.Name); 
} 

tôi nên đề cập này có thể khá chậm, vì vậy nó tốt nhất tránh được nếu bạn có thể ...

+0

Không thực sự là phiên bản không đồng bộ. API EnvDTE được khởi tạo thành chuỗi giao diện người dùng. Bạn có thể chạy nó trên một chủ đề nền, nhưng bạn sẽ kích hoạt marshaling trở lại thread UI một cách minh bạch mà sẽ làm cho mã thậm chí còn chậm hơn bình thường. Vào cuối ngày, liệt kê tất cả các lệnh thực sự là một trong những điều "không làm điều đó". Thông thường nếu ai đó yêu cầu điều này tôi đẩy lùi và thách thức họ tại sao họ cần phải làm điều đó. –

0

Here là một danh sách tiện dụng của các lệnh VS được biên soạn bởi Mads Kristensen cho VS VoiceExtension của mình.

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