Конференция "Прочее" » FixInsight for Delphi
 
  • Rouse_ © (23.10.14 20:10) [100]
    2007 могу оттестировать, 2006 - вроде где-то валялся дистрибутив, но мы давно с него спрыгнули, боюсь не смогу найти ключей активации.
    Да кстати сорь - сегодня твою консольку не затестировал, бо запарка была по полной, завтра буду проверять.
  • Rouse_ © (23.10.14 20:12) [101]
    Ты с UTF-8 BOM префиксом точно все пофиксил? А то опять IDE ляжет наглухо, что не хотелось бы :)
  • Kerk © (23.10.14 20:20) [102]
    Пофиксил, да. Тестировал на том твоем юните и с ним все в порядке. Ссылку тебе слать не буду, потому что она у тебя есть. Но скачай завтра лучше заново, может до тех пор еще что-нибудь пофикшу :)
  • Kerk © (23.10.14 20:21) [103]
    Ну и ради меня не стоит 2006 ставить. Достаточно того, что есть :)
  • Rouse_ © (23.10.14 22:19) [104]

    > Kerk ©   (23.10.14 20:20) [102]
    > Пофиксил, да. Тестировал на том твоем юните и с ним все
    > в порядке. Ссылку тебе слать не буду, потому что она у тебя
    > есть. Но скачай завтра лучше заново, может до тех пор еще
    > что-нибудь пофикшу :)

    Кстати знаеш что подумал, я правда не уверен что такие файлы дельфя генерирует, но работать с ними она умеет. Ты енкодинг модуля без BOM префикса тестил?

    А завтра проверю, но скорее уже не я а Женька, я только общие моменты, а вот как его встраивать в билдсервак, это только он сможет сказать кгде у тебя косяки.
  • Rouse_ © (23.10.14 22:22) [105]
    Прочто чем это грозит, если ты не распознаешь UTF и будешь трактовать как ANSII, то сразу можешь влететь на символ "{" который будет частью UFT символа. Сам понимаешь - весь парсинг уплывет, а то еще и ошибку выдаст если закрывающего "}" не найдет.
  • Kerk © (23.10.14 22:54) [106]
    Нет, если преамбулы нет (так вроде оно научно называется), то кодировка не распознается. Это у меня сделано средствами дельфового класса TEncoding, а он ориентируется на первые байты. Не уверен, что требуется что-то более сложное. Но посмотрим.
  • Kerk © (02.11.14 23:11) [107]
    Вышла версия 2014.11
    В ней есть:
     * Утилита командной строки
     * Поддержка версий 2006, 2007 и 2009
     * Возможность иметь свои настройки для каждого проекта
     * Исправленные баги
  • Kerk © (24.03.15 01:22) [108]
    Подниму-ка я ветку, благо версия 2015.03 уже вышла. Матереем.
    http://sourceoddity.com/fixinsight/download.html


    > ProstoTak ©   (07.10.14 17:09) [41]
    >
    > Да, я тоже подумал, что Kerk прочитал про PVS Studio на
    > хабре (пиарятся они толково) и решил что-то типа такого
    > запилить )

    Если действительно интересно, то вдохновлялся я этой штукой
    http://www.toadworld.com/products/toad-for-oracle/b/weblog/archive/2015/03/19/how-to-simplify-code-reviews-with-code-analysis-new-videos-on-toad-for-oracle-xpert-edition.aspx

    А про PVS Studio уже намного позже узнал. И ты сильно недооцениваешь сопутствующие сложности, если думаешь, что можно так просто "прочитать и решить запилить" :)
  • mike-d © (27.03.15 07:00) [109]
    На Delphi 7 не ставится. Пичалька...
  • Kerk © (27.03.15 10:50) [110]

    > mike-d ©   (27.03.15 07:00) [109]
    >
    > На Delphi 7 не ставится. Пичалька...

    К сожалению, так. Но утилита командной строки работает с любыми версиями Delphi. Правда, это уже не так удобно.

    Поискал баги в VCL :) Нашлась пара интересных мест.
    http://roman.yankovsky.me/?p=1748
  • virex(home) © (28.03.15 07:45) [111]
    >Kerk ©   (27.03.15 10:50) [110]

    надо будет на работе попробовать твою тузлу, правда там дельфя 7
  • virex(home) © (30.04.15 06:18) [112]
    >virex(home) ©   (28.03.15 07:45) [111]

    проверил консольной утилитой

    просто вывод в консоль работает, а при отправке в файл - содержимое "обрывается"

    пример: тузла --xml --project=c:\...\...dpr > 1.txt

    в файле 1.txt не весь вывод тузлы
  • кгшзх © (30.04.15 08:37) [113]
    C102 Too many parameters in 'TAjaxEvent.Invoke'

    TAjaxEvent = class(TInterfacedObject, IDispatch)
    ...
      function Invoke(DispID : Integer; const IID : TGUID; LocaleID : Integer; Flags : Word; var Params; VarResult : Pointer; ExcepInfo : Pointer; ArgErr : Pointer) : HRESULT; stdcall;
    ---

    А есть ли там предупреждения типа :

    - имя метода начинается с буквы "I"
    - если сложить коды символов в имени переменной xxx то получится число зверя 666?
    ну и т.д.
  • virex(home) © (30.04.15 09:47) [114]
    >кгшзх ©   (30.04.15 08:37) [113]

    да кстати
    не помешало бы отключать некоторые проверки доп. опциями в консольной утилите

    а так утилита полезная, вчера рефакторинг делал
    в древнем проекте куча ошибок создания объекта в try и уничтожения в finally
  • Kerk © (30.04.15 13:24) [115]

    > virex(home) ©   (30.04.15 09:47) [114]
    >
    > >кгшзх ©   (30.04.15 08:37) [113]
    >
    > да кстати
    > не помешало бы отключать некоторые проверки доп. опциями
    > в консольной утилите

    Это можно делать и это упомянуто в документации.
    Тут я рассказываю подробнее как это сделать http://fixinsight.userecho.com/topic/686863-command-line-client-define-rules-per-parameter/
  • Юрий Зотов © (30.04.15 13:56) [116]
    > Kerk

    Еще бы fast fix добавить, где это возможно - полная конфета была бы. Понимаю, не просто. Ну на будущее - как вариант развития.
  • Cobalt © (30.04.15 15:43) [117]
    [FixInsight Warning] fmuVisualListWare.pas(453): W508 Variable is assigned twice successively
       tmrFilter.Enabled := false;
       tmrFilter.Enabled := true;
  • Юрий Зотов © (30.04.15 20:58) [118]
    > Kerk

    Кстати, обрати внимание на:
    http://pda.delphimaster.net/?id=1430333783&n=3

    Возможное добавление к списку подозрительных конструкций: некорректное использование вложенной функции. Диагностировать можно по описателю stdcall (хотя это и грубовато, пожалуй).
  • Юрий Зотов © (30.04.15 21:06) [119]
    > Cobalt ©   (30.04.15 15:43) [117]

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

    Но FixInsight  сработал правильно, место подозрительное.
 
Конференция "Прочее" » FixInsight for Delphi
Есть новые Нет новых   [134433   +22][b:0.001][p:0.001]