Pull to refresh
52
0
Павел Еремеев @Paull

Технический директор

Send message
Читайте внимательно, в статье нигде не упоминается Miranda NG.
Касательно Miranda IM, только цифры: за год в их trunk'е было 34 ревизии. Для сравнения, за тот же период в LLVM — 27418.

Честно говоря, я не знал о том, что существует Miranda NG, теперь появится повод и на ней потестировать )
Но это фактически потребует от нас сделать собственную реализацию intelliSence, что, как вы понимаете, является не совсем тривиальной задачей, особенно учитываю необходимые для этого трудо-затраты, при весьма специфичном контингенте пользователей конкретно у Standalone.

Однако, никто не мешает вам уже сейчас использовать текстовый редактор (и intelliSense) из той же Visual Studio — создайте пустой Visual C++ проект, добавьте в него все необходимые заголовки \ исходники и откройте plog отчёт в плагине PVS-Studio. IntelliSence распарсит, хоть и не на 100%, какую то часть исходников, и у вас будет работать переход по include'ам \ определениям типов и т.п.

Если у вас нет Visual Studio, вы можете всё это сделать и в бесплатной Express версии, правда вы не сможете открыть там отчёт из PVS-Studio.
Ошибся, имелась в виду конечно же директива #include, а не #import.
Да, полное имя не проверяется.

Компилятор ориентируется по ключу /Yu (use precompiled header), в который передаётся имя файла. Встретив директиву #import с таким именем, компилятор подставит содержимое pch файла, переданного через флаг /Fp, проигнорировав ключи /I.

Если же компилятор запущен в режиме препроцессирования (флаг /P), /Yu и /Fp будут игнорироваться, а порядок передачи /I будет влиять на то, какой файл включается.
Для регулярного использования отслеживания можно воспользоваться command-line версией.

Целевую платформу сборки не получится достоверно автоматически определить в случае, например, использования кросс-компилятора.
В дополнение к словам коллеги о режиме независимой проверки препроцессированных файлов, хочу отдельно подчеркнуть, что смысл использования такого режима состоит прежде всего в его простоте. По нашему опыту, в большинстве сборочных систем проще добавить к параметрам компиляции всех файлов ещё один флажок, чем встраивать вызов анализатора «параллельно» с компилятором. И хотя прямая интеграция анализатора в сборочный процесс безусловно является «идеологически» более верным решением, такой вариант не всегда удобен, чтобы быстро «попробовать» анализ на своём проекте.
Вариант «попробуйте win версию» не подходит — пробовал как-то. У нас к примеру webkit для qnx и когда я начал только добавлять тысячи файлов в visual studio (в которой только и работает ваш анализатор)


Анализатор работает не только под Visual Studio. Под Visual Studio работает соответствующий этой IDE плагин, а непосредственно сам анализатор — это command-line утилита, которую можно интегрировать куда угодно, хоть в те же makefile'ы. На нашем сайте более подробно написано про это.
Отвечу Вам как разработчик плагина: всё ещё проще ) Вы уже сейчас можете интегрировать анализатор в любую IDE, никакой библиотеки с открытым API для этого не нужно.

Сам анализатор — command line утилита, очень похожая по работе на компилятор, интегрировать её в любую IDE не сложнее интеграции компилятора, даже проще, т. к. от файлов требуется только компилябильность, без линковки. И не важно, через плагин это делать или напрямую через сборочную систему (make например).

Для запуска анализатора нужно передать ему параметры компиляции самого файла, плюс несколько дополнительных настроек. На выходе — plain text лог в stdout, одна строка — одно сообщение, всё предельно просто и понятно.

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

И главное, всё это давно описано в документации на нашем сайте. Но за несколько лет, что она там лежит, никто почему-то так и не изъявил желания сделать плагин под свою любимую IDE )

Information

Rating
Does not participate
Location
Тула, Тульская обл., Россия
Works in
Date of birth
Registered
Activity