Эволюция самого популярного инструмента любого разработчика (в Visual Studio)

В любой среде разработки есть инструмент с названием «Output». Нет нужды описывать что он делает, поскольку абсолютно все разработчики его используют в своей работе ежедневно. Он прост и консервативен.

По сути не менялся десятилетиями и до этих пор выглядит как то так:


Текст, текст и еще раз текст. Много текста...

Даже в этом крошечном примере не сразу видно где строка с ошибкой. Для того чтобы это понять, нужно приложить усилия и потратить время. Просто потому что нужно читать текст и искать в нем слова “error”, “exception” или “warning”. Программисту искать, а заказчику платить за потраченное на это время.

Решение вопроса


Что если подсветить текст в таких сообщениях красным, а в случае с предупреждениями — желтым? Будет лучше. Так подумали авторы расширений VSColorOutput и Output Enhancer для Visual Studio (далее, для иллюстрации, будет использоваться эта IDE).

Получилось вот так:


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


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

Например, зачем видеть список компилируемых файлов? Можно ли как то это спрятать?
Такой вопрос задал себе автор расширения Output Window Filter

Получилось вот так:


Результат стал меньше, разбираться с ним стало проще. К реализации есть вопросы, но идея замечательная.

Разработчики Microsoft также внесли свой вклад в эволюцию этого инструмента добавив в него временные метки. Для этого они создали расширение Time Stamp Margin.

Получилось следующее:


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

Нерешенные проблемы


Все прекрасно, но есть проблема.

Эти замечательные расширения не могут работать совместно, дополняя достоинства друг друга. А более печально то, что на этом прогресс в готовых решениях остановился, оставив нерешенным ряд проблем.

Вот приблизительный список этих проблем:

1. Вместе с полезной информацией отображается и служебная;



2. Нет никакой визуализации однотипных сообщений;



3. Нет возможности искать и подсвечивать интересующие данные;

4. Не очевидно с каких сообщений возможен переход на исходный код;

5. Нет возможности быстро перейти к описанию ошибки;

6. При много-проектной компиляции не очевидно к какому проекту относятся сообщения;



7. Для длинных сообщений приходится использовать горизонтальный скролинг;

8. Отображение стек-трейса никак не оптимизировано;

9. Отсутствует возможность маскировки сообщений по типам (ошибки, предупреждения, сообщения).

Итоги


Не трудно заметить, что прогресса в улучшении данного инструмента давно не наблюдается. Десятилетиями важнейший инструмент остается неизменным, и лишь отдельные энтузиасты пытаются что то улучшить. Это и стало причиной появления расширения MetaProject. В нем сделана попытка решить все указанные выше проблемы.

Что из этого получилось, можно посмотреть на примере:



Заключение


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

Комментарии 84

  • НЛО прилетело и опубликовало эту надпись здесь
      0
      В этом расширении фиксируется время появления данной строки в IDE. Точно также как и в соответствующем аналоге от Microsoft. Эти временные метки нужны чтобы можно было понять время между двумя событиями.
      Ну, например, сколько времени прошло между запросом на сервер и откликом.
        0
        это насколько я понял временные метки операций сборки
          0
          В «Time Stamp Margin» метки отображаются только в режиме Debug, в «MetaProject» во всех режимах.
        +2
        Чтобы легко и просто видеть ошибки, есть View -> Error list.
          0
          По факту MetaProject конкурирует с «Output» + «Error list» + «VSColorOutput» + «Output Window Filter» + «Time Stamp Margin», и успешно их заменяет. И не только их. Можете это проверить и в этом убедиться.
          –3

          Можно ли как-нибудь так закрыть окно Output, чтобы оно больше никогда само не открывалось? Толку от него ноль. Надоедает периодически закрывать.

            +5
            Options -> Project and Solutions -> General -> Show Output…

            Толку от него ноль.

            Странно, самое полезное окно же )
              0

              Есть же окошко Error List со списком ошибок и предупреждений и без постороннего мусора, типа Build started/Build failed/Loaded module...


              Или оно только для дотнета есть, а для cpp нет?

                0
                Есть и для цпп, только оно зачем-то сортирует ошибки по алфавиту (?) а не показывает в порядке в котором они произошли, что в силу специфики компиляции с++ программ не имеет совершенно никакого смысла.
                Плюс, там далеко не вся информация об ошибке, и читать её не удобно.
                  0

                  Тогда понятно. В C# одна реальная ошибка обычно не приводит к каскаду фантомных ошибок компиляции, поэтому всё равно, в каком порядке ошибки представлены в списке. Если в списке их три, скорее всего, их реально три в разных местах. А если они ещё сортируются по типу или алфавиту, то так даже удобнее.


                  Поэтому я в окно Output не смотрю и сразу закрываю, если появилось.

                    0
                    В Output еще выводится информация в рантайме. Вы очень зря думаете что эта информация не нужна. Если в программе используется логирование то вообще не понимаю как без этого инструмента можно обойтись.
                  0
                  Еще в «Error List» IntelliSense добавляет толпу своих ошибок при редактировании кода, что умножает ценность этой и другой информации на ноль.
                    0

                    В C# при редактировании все ошибки подсвечиваются на лету прямо в тексте. В Error List смотреть не надо, у меня он обычно свёрнут. Т.е. в C# для меня окно Output вообще бесполезно; а Error List полезен эпизодически, если билд вдруг не сбилдился или там ещё можно включить/выключить показ предупреждений/предложений от статических анализаторов.


                    А вот как всё происходит в C++, я не в курсе.

                      0
                      Вы сами написали, что в Error List есть недостатки и Вы к ним приспособились так, что они уже не мешают. MetaProject сделан так, чтобы не иметь тех недостатков, которые вы научились обходить…
                      Если бы Вы хоть раз его попробовали, то темы для этой дискуссии не было бы.
                      Но поскольку Вы не попробуете, то продолжайте верить в то, что ничего лучше «Error List» не придумано.
                        0
                        Вы сами написали, что в Error List есть недостатки и Вы к ним приспособились так, что они уже не мешают

                        Я такого не писал. Написал, что в Output не смотрю вообще и просто закрываю, там в основном мусор, который никто не просил. Что есть полезного, есть в Error List, но он тоже большую часть времени автосвёрнут. В процессе набора ошибки и так видно в тексте. Если билд не сбилдится, в Error List будет написано почему. Не особо вчитываясь тыкаешь в строку с ошибкой, открывается исходник, а в нём всё подчёркнуто, подсвечено, при наведении мышки тултипы выскакивают ― уж куда удобнее? Если в списке присутствует какая-то лишняя сейчас информация, можно штатно отфильтровать/пересортировать/настроить так, как больше нравится.


                        Output ― это ж тупо лог всего подряд. Я допускаю, что он может быть иногда полезен. Когда случается какая-то непонятная фигня непонятно почему, тогда открываешь лог и смотришь, что происходит. Но чтобы постоянно туда смотреть...

                          0
                          MetaProject сделан для того чтобы в куче «фигни» которая выводится в «Output» видеть только то, что несет какой то смысл и хочется видеть программисту. И это только одна из множества задач, которые решаются этим расширением.
                          Ну и напоследок, чтобы закрыть тему.
                          «Error List» — это подмножество «Output», в котором попадает только то что генерится во время компиляции (и то не все). Рантайм вообще там не обрабатывается. Т.е. не использовать «Output» — это как отрезать себе одну ногу. Причем добровольно.
                            0

                            Ну что там реально полезного в рантайме? Логи у меня обычно выводятся в другое место и внутри VS не нужны. Необработанные исключения со стектрейсами видны и так; даже не в курсе, пишутся они в Output или нет. Что ещё?

                              0
                              Почитайте что делает функция System.Diagnostics.Debug.WriteLine(...) и поймете что выводится в «Output» в рантайме. Для краткости скажу — все логи туда могут выводиться. Не только ваши, но и библиотек которые используете. И ошибки могут быть не только в вашем коде, но и в коде который вы используете.
                                0

                                Я знаю, что она делает, но мне не надо в Output. Если уж писать, то в отдельный файл. Чтобы в релизных версиях работало, чтобы логи сохранялись, чтобы можно было открыть посмотреть старые, чтобы дифы делать, чтобы с чужой машины было что получить...


                                Знаю, что Debug/Trace умеют направлять сообщения не только в Output, но и в другие места одновременно. Из этих других мест я их, скорее всего, и буду брать, когда понадобится.


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

                                  0
                                  Согласен, зря написано. Вы этим не пользуетесь, значит этим никто не пользуется. Ну и улучшать инструменты разработки тоже не нужно.
                                  Думаю, на этом можно поставить точку в дискуссии.
                                    0
                                    Эх… Это вы назвали это окошко самым важным инструментом, а когда вам говорят, что есть и другие варианты — вы обвиняете оппонента в узости взглядов :)
                                      0
                                      Вот дословная моя цитата «Нет нужды описывать что он делает, поскольку абсолютно все разработчики его используют в своей работе ежедневно». Там нигде не указано что это самый важный инструмент. Поэтому если вы меня цитируете, то цитируйте точно, а не придумывайте.

                                      Ну и еще, буду вам благодарен если вы будете обсуждать не слова, а суть. У вас к содержимому статьи замечания есть?
                                        0
                                        Да куда уж точнее:
                                        самого популярного инструмента любого разработчика (в Visual Studio)

                                        И нет, не все и не ежедневно.
                                        Я за неделю ни разу в него не заглянул, хотя и исправил три бага, сделал пару рефакторингов, доработал одну фичу… А вот из окошка юнит-тестов не вылезал. Да и в список ошибок заглядывал. А ещё обозреватель решений, call-stack, watch…
                                          0
                                          Придется пояснить разницу между выражениями «самый важный» и «самый популярный».

                                          Вот смотрите, есть такое расширение VSColorOutput. У него на текущий момент 360725 установок. Это популярное расширение, но не важное. Без него можно спокойно обойтись. А вот компилятор или линкер — это важные инструменты. Без них обойтись нельзя.

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

                                          Надеюсь, что хотя бы этот комментарий закроет тему филологии.

                                          Ну и наконец, я как и вы, вообще не использую «Output» и «Error List». Но не потому что они не нужны, а потому что перешел полностью на «MetaProject».
                                            0
                                            хорошо, хорошо, словечко попутал. Но сути не меняет — у многих разработчиков это не самый популярный инструмент. Это вы можете принять?

                                            Да и вообще, у нас с вами уже была эта дискуссия.
                                            Скажите, за прошедшее время, из тех фич, которые интересны мне, как потенциальному пользователю, что-нибудь появилось?
                                              0
                                              Я не только это могу принять, но и сам тому пример.
                                              Если вы используете иногда «Output», то я его вообще не использую. Но все равно считаю, что инструмент самый популярный, поскольку в случае его не использования все равно используется его заменитель.

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

                                              Завтра еще выложу новый релиз в котором будет реализована поддержка системы автоматизации сборки CMake и менеджера пакетов NPM.
                                              Т.е. растем как по функционалу, так и по популярности ;)
              0
              А нельзя ли вообще обойтись без этого окна и перемещаться по коду, например, по указателям на места с ошибками?
                0
                «Output» в любой среде разработки создавался как агрегатор всех сообщений. Логи в работающей программе тоже при желании можно перенаправить в этот инструмент. Для этого Windows разработчикам достаточно вызвать OutputDebugString(...) или System.Diagnostics.Debug.WriteLine(...). Т.е. это не только средство для показа ошибок и предупреждений. Это гораздо гораздо более сложная вещь. Даже в самой простой реализации…
                  0
                  Кстати, если у Вас есть идеи как можно обойтись вообще без «Output», я с удовольствием их выслушаю. Если эти идеи жизнеспособны, готов их даже реализовать.
                    0
                    Сейчас подумал и дошло, что обычно приходится прокручивать этот список когда пропускаю закрывающую скобку или там тип выставил неправильный. А если программу запустил, а она вываливается с ошибкой — Visual Studio приводит и указывает прямо на место в коде. Хотелось, чтобы любые баги приводило сразу на нужное место, но ведь со скобками это не определить. Так что не мешает и идей нет :)
                –1
                вы зациклились только на одной IDE (имхо — не самой лучшей)
                для примера QtCreator — сама вкладка «Compile output» выводит ошибки красным тескстом, также имеется возможность сделать поиск по тексту выхлопа компиляции нажав Ctrl+F, также есть отдельно вкладка Issues, где будут отображаться только ошибки/варнинги с минимумом лишней информации
                  +1
                  Я не зациклился на Visual Studio, я с нее начал. Это разные вещи.
                    0
                    На самом деле в Qt Creator'е цветной вывод сборки при использовании GCC, а если использовать MS VC, то вывод такой же унылый одноцветный.
                    Вероятно, это связано с использованием make
                    0
                    А что это такое? Зачем расширение при установке тащит IncrediBuild?
                      0
                      Это стандартный инсталятор Visual Studio. Почему он пишет эту строчку я не знаю. Сам удивлен. Никакого Incredibuild по факту не ставится. Можете проверить.
                        0
                        Проверил. Ставится. Появляется билд-агент в трее и меню IncrediBuild в студии.
                          0
                          Вы меня озадачили. Только что снес расширение и поставил его заново. Все снеслось и установилось. Нет вообще даже намека на «Incredibuild», ни в инсталяторе, ни в IDE.
                            0
                            Возможно проблема в «Incredibuild»? Вы не пробовали проверить, его вообще можно деинсталировать?
                              0
                              Можно, конечно. Но это ни на что не влияет.
                        0
                        Не заработало, к сожалению:

                          0
                          По скринам видно, что расширение у Вас не установилось.
                          0
                          Нет перехода по клику на проблемное место. Или я что-то делал не так? Приходится снова искать ошибку в стандартном Output и кликать на неё, чтобы перейти куда надо. В общем не допилен инструмент. Хотя задумка хорошая. И вот эта иконка винды слева и пространство под ней. Вы серъёзно? Ну нафига? Кто дизайнил? Хочется сильно ругаться. Место занимает полезное только.
                            0
                            В каждой строке, где возможен переход на код, справа должна быть стрелочка. Нажатие данной кнопки делает переход на нужную строку в коде.
                            По стрелочкам, кстати, видно где есть переход на код, а где нет.
                              +1
                              — Я не вижу стрелочки.
                              — Стрелочка это неудобно. В стрелочку надо ещё целиться, мышь вести туда. Это сложнее чем в строчку.
                                +1
                                Я добавлю поддержку DblClick для таких случаев на строке (как в стандартном «Output»).
                              0
                              Относительно той части которая Вам кажется лишней по дизайну, могу сказать следующее. Это сделано не случайно, и со следующей версии MetaProject будет очевидно, что ничего лучшего чем тот дизайн который Вы видите, не возможно представить. Сейчас конечно это не очевидно, и выглядит бессмысленным.
                                0
                                Ну раз так, то будем посмотреть.
                              0
                              Фолдинг сообщений об ошибках в глубоких шаблонных специализациях был бы действительно полезен. Для всего остального есть Error List и его автоматическая синхронизация с Output по выделению.
                                0
                                Фолдинг сообщений в MetaProject уже реализован. «Error List» и «Output» можно использовать и после установки расширения, если будет такое желание. Они никуда не деваются.
                                0
                                Из первых впечатлений:
                                1. Слишком пёстро на мой вкус. Большинство строк я бы оставил просто серыми — например о том, какой проект куда записал бинарник.
                                2. Несколько пикселей от самой нижней строки съедает поле ввода фильтра, в итоге текст обрезан
                                3. Хорошо бы эту панельку автоматически открывать при начале сборки как это делает стандартный output
                                4. Иконки — привет из 90-х

                                Спасибо в любом случае ;)
                                  0
                                  Спасибо за первый мини обзор данного расширения :)
                                  1. Поддерживаются два режима — первый, когда по умолчанию раскрашивается все, а второй, когда по умолчанию не раскрашивается ничего. Переключаются режимы через выпадающее меню (пункт «Auto colorize»);
                                  2. Я согласен с Вами, что вертикальный размер более приоритетный, но это тот минимум, в который я могу уместить все что требуется. Речь идет, в том числе, и о дополнительных возможностях, которые появятся в новых версиях;
                                  3. Вы имеете в виду режим, когда панель прилеплена к кромке, и скрыта?
                                  4. «Не стреляйте в пианиста, он играет как умеет». Я все таки не дизайнер :)
                                    0
                                    1. Отключил авто, ничего не изменилось.
                                    2. Проблема была в том, что самая нижняя строка была обрезана (перекрыта полем ввода) примерно по середине по высоте. Не могу воспроизвести.
                                    3. Да

                                    В общем норм тулза, удачи в дальнейших улучшениях!
                                      0
                                      1. При переключении режима, сигнатуры строк (по которым происходит раскраска и маскировка) не сбрасываются. Это изменение относится только к новым строкам, которые еще до этого не показывались.
                                      2. Ели это так, то это баг. Буду пробовать воспроизвести ситуацию…
                                      3. В следующей минорной версии это будет сделано.
                                    0
                                    Кстати, цвета или вообще их отсутствие, Вы можете менять по своему желанию. Для этого нужно всего лишь кликнуть на поле где отображается временная метка.
                                    0
                                    Возможно ли sysout/sysinput заставить работать через это окно, как, например, в Eclipse?
                                      0
                                      Можно весь вывод перенаправить в это окно если в своей программе сделать вызовы функций OutputDebugString(...) (в С++) или System.Diagnostics.Debug.WriteLine(...) (в .NET). С другой стороны можно подумать как это автоматизировать…
                                      0
                                      Имхо, окно вывода называть самым популярным инструментом — перебор.
                                      Тем более называть эволюцией кастомную раскраску…
                                      Хотя сама попытка существенно улучшить это окно — хорошая идея.

                                      Вот есть ли у вас группировка событий в окне вывода при сборке по проектам? Так, чтобы можно было по умолчанию оставить только одну строку с результатом билда, и раскрывать детали по клику?
                                      Есть возможность одним кликом включать/выключать показ только ошибок, предупреждений?
                                      А учитываются ли как ошибки неудачные вызовы утилит командной строки?
                                      А почему нельзя нормально копировать текст, как в обычном окне вывода?
                                      Настроек нет совсем на столько, что стандартном меню настроек есть только текст лицензии?
                                      Где нибудь можно почитать описание фич, настроек, планов развития?

                                      Отвечая на цитату:
                                      Once you see this extension, you will forget standard output window

                                      Нет, мне стандартное окошко вывода с имеющимся плагинами удобнее.
                                        0
                                        Не хочу дискутировать относительно того, что является самым популярным инструментом, а что не является… Я, например, не знаю чего то более используемого чем «Output».

                                        Относительно всего остального, попробую ответить по порядку:
                                        1. Группировки по проектам нет и не будет. Не вижу в этом смысла.
                                        2. В будущем будет создан дополнительный инструмент, в котором будет отображаться статус компиляции для всех проектов, и уже в этом окне, для каждого проекта, можно посмотреть его личный лог, в том же дизайне и с теми же возможностями, которые Вы видите сейчас для всех проектов.
                                        3. Фильтрация ошибок/предупреждений/сообщений будет реализована в следующей минорной версии «1.0.5», вместе с реализацией пожеланий из комментариев выше, и фиксом некоторых багов. Думаю, что сегодня (17.06.2019) это уже будет готово.
                                        4. Насчет «ошибок командной строки» не понял вопроса. Поясните пожалуйста, что имеется в виду.
                                        5. Копировать текст, как Вы привыкли, нельзя потому что это не текст. В этом расширении есть одно фундаментальное отличие от всего что сделано до него. Все разработчики «Output» и существующих расширений, делали этот функционал из утверждения, что «Output» — это текст. Я первый, кто стал утверждать что «Output» — это НЕ текст. Кто окажется прав, покажет время.
                                        6. Настройки появятся для дополнительного функционала, где это будет обосновано. Текущий функционал настроек не требует.
                                        7. Готовится видео-презентация возможностей расширения.
                                        8. Относительно планов развития — на фейсбуке сделал группу в которой готов это обсуждать с теми, кто заинтересован в развитии данного проекта. Если Вам это интересно, подписывайтесь.

                                        Ну и наконец, я не ставлю цель изменить вкусы разработчиков.
                                        Кто хочет пользоваться чем то другим, пусть пользуется.
                                          0
                                          Я, например, не знаю чего то более используемого чем «Output».

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

                                          1. Группировки по проектам нет и не будет. Не вижу в этом смысла.

                                          А мне кажется удобным по умолчанию видеть при сборке только статус каждого проекта. Остальная портянка только мешает, как бы она не была раскрашена.

                                          4. Насчет «ошибок командной строки» не понял вопроса. Поясните пожалуйста, что имеется в виду.

                                          Для сборки некоторых типов проектов студия может вызывать дополнительные команды. Например — вызов nodejs. Вывод этих команд также попадает в окно вывода, а результат билда оценивается по коду возврата этой команды.

                                          Я первый, кто стал утверждать что «Output» — это НЕ текст. Кто окажется прав, покажет время.

                                          Сильно утверждение :). Ближе к правде — там не только текст. Но текст более универсален как способ представления. И я знаю способ, как можно совместить дополнительные возможности с текстовым представлением.

                                          6. Настройки появятся для дополнительного функционала, где это будет обосновано. Текущий функционал настроек не требует.

                                          Очень сильное утверждение. Вы уверены, что выбранная вами цветовая гамма идеальна?

                                          7. Готовится видео-презентация возможностей расширения.

                                          Это хорошо для фэйсбучека, на сайте проекта лучше текстом.

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

                                          И как это соотносится с заглавным утверждением на страничке расширения?
                                            0
                                            Назовите пожалуйста более используемый инструмент чем «Output».

                                            А мне кажется удобным по умолчанию видеть при сборке только статус каждого проекта. Остальная портянка только мешает, как бы она не была раскрашена.
                                            Насколько я понимаю, Вы сейчас пользуетесь каким то расширением, которое уже это делает, и возможно делает еще что то крутое? Можно узнать его название?

                                            Относительно возможности это сделать — готов согласиться с тем, что можно добавить еще фильтрацию по проектам. Ну типа комбобокса, в котором будет возможность выбрать интересующий проект. Это будет полезно.

                                            Вывод этих команд также попадает в окно вывода, а результат билда оценивается по коду возврата этой команды.
                                            Все что Вы видите в стандартном «Output» отображается в «MetaProject». Коды возврата пока не учитываются. Посмотрю как это можно сделать. Вопрос чисто технический.

                                            Сильно утверждение :). Ближе к правде — там не только текст. Но текст более универсален как способ представления. И я знаю способ, как можно совместить дополнительные возможности с текстовым представлением.
                                            Покажу Вам одну картинку. Думаю это закроет дискуссию, что лучше «текст» или «не текст».
                                            Попробуйте представить это в виде текста.

                                            Очень сильное утверждение. Вы уверены, что выбранная вами цветовая гамма идеальна?
                                            Нет никакой цветовой гаммы. Вы можете менять цвета для любого сообщения (или вообще их убирать), просто кликая мышкой на поле с временной меткой.

                                            Это хорошо для фэйсбучека, на сайте проекта лучше текстом.
                                            На сайте это уже описано текстом. Этого никто не читает. Ну или почти никто…

                                            Ну и напоследок.
                                            Я взрослый человек, и понимаю, что не смогу убедить 100% тех к кому обращаюсь.
                                            Потому и не ставлю себе такую задачу.
                                            Есть люди, которые используют мой продукт. Эффективность их работы я буду увеличивать, совершенствуя свой продукт.
                                            Есть люди которых и так все устраивает. Желаю им удачи, и наши миры с ними не пересекутся.
                                            Каждому свое…
                                              0
                                              У меня самые популярные — Solution Explorer, Test Explorer.
                                              Если бы нормально работала интеграция с git+jira, то в этом списке был бы и Team Explorer, которым я часто пользовался, когда работал с TFS.
                                              В output иногда заглядываю, когда билд падает, да и то не каждый раз.

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

                                              Про фильтрация по проектам — у студии есть режим вывода «Build Order» — там уже все записи по каждому проекту сгруппированы.

                                              Покажу Вам одну картинку. Думаю это закроет дискуссию, что лучше «текст» или «не текст».
                                              По картинке не пойму, какова цель такого отображения.
                                              Но то, о чём я говорю, можно сделать на html. Там и активные элементы и текст, который можно выделить.

                                              Вы можете менять цвета для любого сообщения (или вообще их убирать), просто кликая мышкой на поле с временной меткой.
                                              Это не интуитивно. А экспортировать/импортировать цветовую схему можно?

                                              На сайте это уже описано текстом. Этого никто не читает. Ну или почти никто…
                                              Да потому что читать нечего. Есть список фич, но не понятно ни как они работают, ни как ими пользоваться, ни как это настраивать.

                                              Я взрослый человек, и понимаю, что не смогу убедить 100% тех к кому обращаюсь.
                                              Потому и не ставлю себе такую задачу.
                                              Ну так может и не делать таких громких заявлений, типа «Once you see this extension, you will forget standard output window»?
                                                0
                                                По списку перечисленных расширений можно сделать вывод, что Вы код не пишите. Ваши расширения — это расширения системного интегратора. Они никак не конкурируют с тем, что делает «MetaProject». От слова совсем.

                                                Про фильтрация по проектам — у студии есть режим вывода «Build Order» — там уже все записи по каждому проекту сгруппированы.
                                                «Build Order» — он выполняет только группировку. Не фильтрацию. Расширений, которые делают фильтрацию на текущий момент нет. По крайней мере для Visual Studio. «MetaProject» будет первым…

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

                                                Но то, о чём я говорю, можно сделать на html. Там и активные элементы и текст, который можно выделить.
                                                Вы по прежнему мыслите в парадигме «Output — это текст», как и все остальные разработчики. Парадигма «НЕ текст» не означает что нельзя реализовать режим в котором можно сделать многострочное выделение текста. Технически это не сложно. Я просто не вижу в этом смысла.

                                                Это не интуитивно.
                                                Не интуитивно — согласен, но зато это экономит место для полезной информации.

                                                А экспортировать/импортировать цветовую схему можно?
                                                Реализовать это не сложно. Для меня не ясен только один вопрос. Зачем?

                                                Ну так может и не делать таких громких заявлений
                                                Чтение первых десяти слов — это то, что человек обычно готов потратить на то, чтобы принять какое то решение. Попробуйте придумать десять слов, которыми можно описать уже хотя бы то, что Вы уже знаете об этом продукте. Я думаю у Вас не получится.
                                                А критиковать всегда проще чем делать…
                                                  0
                                                  Ну вот, опять «сильное утверждение»…
                                                  По списку перечисленных расширений можно сделать вывод, что Вы код не пишите.
                                                  Как раз в студии я именно код и пишу. Текущий основной солюшен на сотню проектов под .net.
                                                  И я перечислял не расширения, а самые часто используемые мной инструменты студии, не считая, конечно, окна ввода кода :).

                                                  «Build Order» — он выполняет только группировку. Не фильтрацию.
                                                  я пока не придумал, зачем мне фильтрация бы пригодилась, но вот сворачивание/разворачивание всего лога одного проекта до одной строки — было бы удобно.

                                                  Вы по прежнему мыслите в парадигме «Output — это текст», как и все остальные разработчики.
                                                  Отнюдь. Я просто полагаю, что всё увиденное можно отобразить в виде html, и при этом получить преимущества обоих подходов.

                                                  Не интуитивно — согласен, но зато это экономит место для полезной информации.
                                                  А почему не сделать «как у всех», т.е. не вынести в настройки расширения в стандартное место?

                                                  Реализовать это не сложно. Для меня не ясен только один вопрос. Зачем?
                                                  Затем же, зачем эта возможность есть в студии и других расширениях — перенос удобных настроек между рабочих мест.

                                                  Попробуйте придумать десять слов, которыми можно описать уже хотя бы то, что Вы уже знаете об этом продукте.
                                                  Меня в авторы не звали, чтобы я решал эту задачу :). Но сейчас ни название расширения, ни вводная фраза ничего не говорят о сути. А оная фраза слишком амбициозна на фоне остального наполнения странички.
                                                    0
                                                    я пока не придумал, зачем мне фильтрация бы пригодилась, но вот сворачивание/разворачивание всего лога одного проекта до одной строки — было бы удобно.
                                                    Это и есть фильтрация

                                                    Отнюдь. Я просто полагаю, что всё увиденное можно отобразить в виде html, и при этом получить преимущества обоих подходов.
                                                    Достаточно забавно читать этот совет :)
                                                    Скорее всего Вы удивитесь, когда я скажу, что самое сложное в функционале что Вы видите — это добиться приемлемого быстродействия. Так чтобы никакого размера данные не влияли на скорость визуализации этих данных. Т.е. при миллионе сообщений в логе, визуализация должна идти с такой же скоростью как если там всего одно сообщение. И скорость эта должна измеряться единицами миллисекунд. И наличие фильтров не должно влиять на скорость, и добавление новых данных в этот список не должно оказывать вообще никакого влияния на скорость работы отлаживаемой программы (в стандартном «Output» это не так). И вот Вы предлагаете взять и встроить веб браузер для этих целей…
                                                    И что мне в этом случае делать «Подождите идет загрузка...»? А потом «Page1, Page2, Page3,… PageN»?
                                                    Забавно… :)

                                                    Затем же, зачем эта возможность есть в студии и других расширениях — перенос удобных настроек между рабочих мест.
                                                    Я не только являюсь автором этой программы, я еще и ее пользователь. Так вот, как пользователь у которого самый большой опыт использования этого расширения, могу сказать. Цвета добавлены не для красоты. Они имеют только один смысл — визуально разделять различные группы сообщений. Какой цвет имеет какое сообщение — вообще роли не играет. Главное чтобы разнородные сообщения были заметны при беглом взгляде на них (без чтения). Потому и считать что они имеют какую то ценность — бессмысленно.

                                                    А оная фраза слишком амбициозна на фоне остального наполнения странички.
                                                    Ну пусть и остается амбициозной. Авансом. Вы же наверное не знаете, что и цели у меня амбициозные… :)
                                                      0
                                                      Скорее всего Вы удивитесь, когда я скажу, что самое сложное в функционале что Вы видите — это добиться приемлемого быстродействия.
                                                      Нет, не удивлюсь — мне это очевидно. И очевидно, что у каждого решения есть своя цена. Чего будет стоить впилить туда html — я не знаю, но я бы попробовал :)
                                                      Или может есть нечто более быстродейственное? Тот же редактор кода — в нём уже есть всё, что нужно…

                                                      Ну пусть и остается амбициозной. Авансом.
                                                      У таких авансов бывает оборотная сторона — могут наставить негативных оценок, потом продвигать сложнее будет. Но это уже ваше решение. Может я зря агрюсь :)
                                                        0
                                                        Чего будет стоить впилить туда html — я не знаю, но я бы попробовал :)
                                                        Или может есть нечто более быстродейственное? Тот же редактор кода — в нём уже есть всё, что нужно…
                                                        Просто поверьте, на этот раз на слово, средства выбраны адекватно. Я много раз переделывал проект и менял архитектуру, именно при попытке решить все указанные проблемы. Они решены. Нет смысла возвращаться в начальную точку, и начинать все сначала…

                                                        Кстати, есть еще одна задача, которая решена в текущей реализации, но ее пока не видно. Портируемость под разные компиляторы и платформы. Это будет следующим этапом развития проекта, а на этом этапе уже заложен крепкий фундамент.
                                                          0
                                                          У таких авансов бывает оборотная сторона — могут наставить негативных оценок, потом продвигать сложнее будет.
                                                          На текущем этапе основная моя проблема не то, что есть негативные оценки (их, на удивление, очень мало), а то что о продукте никто не знает. Собственно аналогичная проблема у абсолютно всех стартапов.
                                                      0
                                                      и отдельно про
                                                      А критиковать всегда проще чем делать…

                                                      Конечно так! :)
                                                      Вы выставили своё творение на публику. Критика — наиболее ожидаемое последствие.
                                                      Но, по идее, именно она позволяет сделать продукт ещё лучше.

                                                      Повторюсь, сама идея улучшения этого инструмента мне интересна, и я пытаюсь указать на видимые мне недостатки и предложить идеи для улучшения.
                                                        0
                                                        Спасибо Вам за то что не безразличны ;)
                                                0
                                                Посмотрите, пожалуйста,
                                                кейс копирования текста

                                                Плагин отличный. Только бы контрастности побольше между текстом и подсветкой полной строки.
                                                  0
                                                  Не уверен что правильно понял суть вашего комментария.
                                                  Вы имеете в виду яркость подсветки строки при размещении над ней курсора, или цвет выделенного текста?
                                                  Ну а за добрые слова, спасибо.
                                                    +1
                                                    1. Я имею ввиду, что копирование текста из output иногда все же имеет смысл. В моем случае, разбор большого и сложного проекта с кучей зависимостей, которые никто толком не настроил.
                                                    2. Вторая часть комментария просто про улучшение визуализации. Сейчас в Metaproject цвет текста остается неизменным (не настраиваемым, насколько я понял) для большинства типов сообщений. Строка с текстом имеет более низкую цветовую насыщенность, чем в колонке слева. Понимаю, что смысл плагина немного в другом, но если бы в приложенном скрине текст успешного билда был бы, например,
                                                    #00ff22
                                                    было бы визуально приятнее.
                                                    image
                                                      +1
                                                      Отвечаю по порядку.
                                                      1. Копирование можно сделать для строки выделив ее. Она в этом случае появляется в текстовом поле для поиска. Дальше со строкой можно делать все что угодно, в том числе и копировать. Однако в будущем будет сделан механизм импорта/экспорта. Этим механизмом можно сохранить весь вывод в интересующем формате. В финальной стадии — это будет любой возможный формат в котором представляются логи. Один из форматов — «Plain Text» где будет представлен текст AS IS.
                                                      2. В старых версиях MetaProject — именно такое поведение как вы описали и было. В новых это переделано на то, что вы видите сейчас. Установив старую версию расширения с сайта вы можете сами с этим поиграться, и определить что лучше по результатам использования. Ну и напоследок, цвета настраиваются по желанию пользователя одиночным кликом на поле с временной меткой в сообщении.

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

                                                        *Закрывает стандартный output, оставляя только MetaProject
                                                          0
                                                          Тут совсем не понял. MetaProject никак не влияет на работу любых других инструментов. В том числе и Output.
                                                          Буду благодарен вам если вы вышлите видео или опишите более подробно проблему.
                                                            0
                                                            Output держал открытым исключительно для копирования, поскольку не догадался, как копировать в MP. Теперь в нем необходимости нет и можно использовать только ваш плагин.
                                                              0
                                                              Я понял.

                                                              Относительно, того что копирование обеспечивается не очевидным образом — я с этим согласен, но пока не придумал как его обеспечить не ломая концепцию MetaProject.

                                                              Если есть какие то идеи относительно этого, с радостью их выслушаю, и готов их реализовать.
                                                                0
                                                                Мне кажется, для разработчика этого будет достаточно (чтобы догадаться, где брать копию строки) и не ломает концепцию ни в коей мере.
                                                                image
                                                                  0
                                                                  Отличная идея, в следующем релизе это добавлю.
                                                                  Спасибо.
                                              0
                                              Все замечания, и практически все пожелания, описанные выше, уже реализованы.


                                              Скачать это можно тут.
                                                0
                                                Эх. А я жду когда CLION осилит таки отформатировать сообщения о ошибках при компиляции. Читатать голый GCC вывод как-то не слишком удобно.
                                                  +1
                                                  В ближайшее время я фиксирую функционал MetaProject на том уровне который есть, и начинаю портирование расширения под все популярные среды разработки. CLion и IntelliJ IDEA в этом списке идут первыми.
                                                  Так что эта проблема скоро там будет решена ;)

                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                Самое читаемое