Окно отладки Visual Studio 2008 года для отображения метки времени?

Язык сценариев является языком, который интерпретируется каждый раз, когда сценарий выполняется, это подразумевает наличие интерпретатора, и большинство очень человекочитаемо, чтобы быть полезным, что язык сценариев легко изучить и использовать.

Каждый компилируемый язык может быть превращен на язык сценария, и наоборот все это зависит от реализации интерпретатора или компилятора, поскольку C++ в качестве примера имеет интерпретатор, таким образом, это можно назвать языком сценария, если используется так (не очень практичный в целом, поскольку C++ является очень сложным языком), одним из самых полезных языков сценария в настоящее время является Python...

Так для ответа на вопрос определение находится на использовании интерпретатора для запущения быстрых и легких программ в виде сценария, для обращения к простым задачам или приложениям прототипа, самое мощное использование, которое можно сделать из языков сценария, должно включать возможность для каждого использования для расширения скомпилированного приложения.

9
задан ThinkingStiff 30 June 2012 в 04:52
поделиться

2 ответа

Поскольку текст окна вывода после записи доступен только для чтения, нет простого способа сделать именно то, что вы хотите. Однако сделать нечто подобное легко: добавить строку отметки времени после того, как новый текст будет записан в окно вывода. Это сделает окно вывода более беспорядочным, но вы получите свое время.

Вот как это будет работать: сначала создайте надстройку Visual Studio или макрос, который перехватывает событие PaneUpdated активной панели окна Outlook. (См. эту ветку , чтобы узнать, как это сделать с помощью макроса). Обязательно проверьте в обработчике событий эту pane.Name == "Debug" и игнорировать другие панели. Во-вторых, когда вы обнаруживаете новый текст на панели вывода отладки, добавьте строку с отметкой времени, например:

public void AddTimestamp(DTE2 dte)
{
    // Retrieve and show the Output window.
    OutputWindow outWin = dte.ToolWindows.OutputWindow;

    pane = outWin.OutputWindowPanes.Item("Debug");
    }
    catch
    {
        pane = outWin.OutputWindowPanes.Add("Debug");
    }

    pane.OutputString("[timestamp: " + DateTime.Now.ToString() + "]\n");
}

Также можно предварительно отложить отметку времени для каждой строки, но это намного сложнее. Вы не можете изменить текст, уже находящийся в окне вывода (оно доступно только для чтения), но вы можете очистить окно и добавить текст. Таким образом, вы можете использовать тот же подход обработчика событий, описанный выше, для обнаружения изменений текста, но вместо добавления вы можете скопировать текущий текст, добавить временные метки к любым строкам, которые еще не имеют временных меток, очистить окно и повторно добавить сейчас -с текстом отметок времени. Проблема с производительностью при увеличении окна вывода. Таким образом, вам, вероятно, придется реализовать своего рода «ленивую печать», которая очищает и вставляет в фон, чтобы не убить вашу IDE, когда (как это обычно бывает) за короткое время выводятся 100 строк отладочного вывода. Кроме того, при очистке и повторном добавлении, если вы в данный момент выделяете текст в окне вывода, ваш выбор теряется.

Лично я бы просто сделал простую вещь и добавил бы строки меток времени, а не более сложный подход с предварительным ожиданием. Поскольку содержимое в конце строки трудно увидеть без прокрутки, я бы, вероятно, позаботился о том, чтобы перед меткой времени была новая строка, чтобы пользователь видел каждый пакет из одной или нескольких строк вывода, за которыми следует одна строка метки времени.

Возможно, есть способ подключить окно вывода до отображения текста, но я не смог найти такую ​​точку расширяемости в API-интерфейсах VS Extensibility.

Еще одна идея: вы всегда можете свернуть собственное окно инструментов, например "Иван"

7
ответ дан 4 December 2019 в 19:34
поделиться

Я искал ту же функциональность. Мой коллега придумал макрос $ TICK в поле сообщения, выводящий «текущие» тики ЦП.

Взгляните также на эти советы от Саймона Чепмена .

2
ответ дан 4 December 2019 в 19:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: