Pull to refresh

Comments 17

Вы еще прикрутите socpd — stack overflow copy-paste detector
Бороться с копипастой — так до конца! :)
Насколько я понял, анализируются все файлы в ${SRC_ROOT}?

Интересно, дает ли XCode возможность подключать собственные анализаторы, чтобы обрабатывать файлы из проекта, а не все подряд.
Встроенного — точно нету.
По поводу файлов из проекта — натыкался на xcs проект написанный на ruby, который умеет работать со структурой Xcode проекта.
Возможно имеется ввиду файлы из конкретного таржета, а не «файлы из проекта»? Я долго пытался получить список файлов из конкретного таржета, но не удалось. В некоторых задачах частично помогает раскидывание файлов по разным директориям на диске.
За «Правильный формат» спасибо!
Не работает c ARC-кодом, ругается на @autoreleasepool
Прийдется подправить Tokenizer. На выходных постараюсь посмотреть
Собственно, я тоже немного поигрался с грамматикой, конвертировал line endingи, добавил @autorelaseasepool и автоматический запуск javacc во время сборки. Вот мой проект, github.com/SevInf/Objective-C-CPD-Language вдруг вам пригодится
хмм после сборки вашего проекта где все в одном, такая ошибка:
/Users/alexeyglushkov/Library/Developer/Xcode/DerivedData/CPDObjective-C-ctrzamaffxvjuyakuvbyxlzmddyw/Build/Intermediates/CPDObjective-C.build/Debug/CPDObjective-C.build/Script-E456D4A114E35BF7000D003F.sh: line 12: 2361 Segmentation fault: 11 ${BUILT_PRODUCTS_DIR}/CPDObjective-C -cpd-xml "${FULL_PATH_TO_CPD_XML_OUTPUT}"
Command /bin/sh failed with exit code 139

м понял, ошибка в main.m в CPDObjective-C, нужно заменить
NSError * error;
на
NSError * error = nil;

ибо иначе мы попадаем в if и [error localizedDescription] по мусорному адресу с катастрофическими последствиями)
Спасибо, поправлю, как только доберусь до рабочей машинки.
нда на реальном проекте Objective-C код не парсится, выдает

com.deadmeta4.cpd.generated.TokenMgrError: Lexical error at line 2431, column 40. Encountered: «x» (120), after: "\"\\"
at com.deadmeta4.cpd.generated.ObjCParserTokenManager.getNextToken(ObjCParserTokenManager.java:6164)
at com.deadmeta4.cpd.generated.ObjCParser.getNextToken(ObjCParser.java:7720)
at net.sourceforge.pmd.cpd.ObjectivecTokenizer.tokenize(ObjectivecTokenizer.java:31)
at net.sourceforge.pmd.cpd.CPD.add(CPD.java:106)
at net.sourceforge.pmd.cpd.CPD.add(CPD.java:72)
at net.sourceforge.pmd.cpd.CPD.addDirectory(CPD.java:82)
at net.sourceforge.pmd.cpd.CPD.addRecursively(CPD.java:67)
at net.sourceforge.pmd.cpd.CPD.main(CPD.java:180)

и куча т.д. и т.п. Буду репортить автору.
1) Видать какие-то конструкции заумные, не вписывающиеся в грамматику
2) Давайте не превращать Хабр в Bug Tracker :) Пишите в личку — разберемся, поправим, перевыложим.
Sign up to leave a comment.

Articles