Как сделать ссылку на вывод внешнего скрипта на код в Visual Studio? - PullRequest
1 голос
/ 03 мая 2010

Мне иногда нужно искать код для шаблонов способом, который выходит за рамки возможностей регулярных выражений Visual Studio (например, шаблонов, которые зависят от того, что ранее было видно в файле или от содержимого других файлов).Поэтому я использую Perl для анализа исходных и выходных совпадающих строк, а также имени файла и номера строки.

Поскольку это тот же формат, который создается функцией поиска в Visual Studio, мне интересно, есть лиспособ дублировать функциональность, где я могу дважды щелкнуть строку, и она будет отображаться в контексте в Visual Studio.Есть идеи?

Ответы [ 3 ]

1 голос
/ 03 мая 2010

Вы можете использовать Perl Win32 :: GUI для макета окна, которое выглядит точно так же, как поисковая утилита для использования в качестве внешнего интерфейса для вашей программы Perl. Это позволит вам дважды щелкнуть результаты поиска и выполнить действия с этими результатами. Взгляните на эту ссылку , чтобы узнать, как перейти к определенной строке файла в VS. Вот быстрый пример:

use strict;
use Win32::GUI;

        #example data structure containing the search text to print, the file location, and the line number for the search text
my $items = [
             ['first hit', 'C:\file.cs', '30'],
             ['second hit', 'C:\anotherfile.cs', '245'],
             ['third hit', 'C:\file.cs', '16']
            ];

my $main = Win32::GUI::Window->new(
                                   -width => 250, 
                                   -height => 250
                                  );

my $listbox = $main->AddListbox(
                                -name   => 'search_hits',
                                -top    => '10', 
                                -left   => '10', 
                                -width  => '100', 
                                -height => '100',
                               );

foreach my $item(@$items){
    $listbox->InsertItem($item->[0]);
}

$main->Show();
Win32::GUI::Dialog();


sub search_hits_DblClick{
    my $index_selected = $listbox->GetCurSel();
    exec('devenv /edit '.$items->[$index_selected]->[1].' /command "edit.goto '.$items->[$index_selected]->[2].'"');
}
0 голосов
/ 04 мая 2010

Коллега указал мне на статью Запись в окно вывода из надстройки Visual Studio .NET . Существует тип проекта Visual Studio под названием «Надстройка Visual Studio», который я мог бы использовать для написания собственной надстройки, которая могла бы вызывать мой сценарий Perl, захватывать выходные данные сценария и отправлять его в окно вывода Visual Studio.

Еще более чистой альтернативой было бы, если бы я мог скомпилировать свой Perl-скрипт в .NET, тогда вся надстройка могла бы быть в Perl, и мне не пришлось бы вызывать внешний процесс.

0 голосов
/ 03 мая 2010

Да. Просто убедитесь, что вы придерживаетесь того же формата:

имя файла (белья): ...

Когда это появится в окне «Вывод», вы сможете дважды щелкнуть по нему и перейти к нужной строке в файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...