Недавно дотнетовскую публику постигла тяжелая утрата в лице смерти Рефлектора. Ну, то есть он не умер, а стал платным, что, по сути, равносильно для большинства пользователей. А теперь вышел декомпилятор
dotPeek производства широко знаменитой в узких кругах фирмы JetBrains, И он явно отхватит 100% отрекшихся пользователей Рефлектора, за исключением
(
Read more... )
Но. IDEA всё-таки глючная, причём глючная неприятным хитрым образом, когда ты совершенно не понимаешь, что за фигня тут происходит, а фигня эта лечится рестартом идеи. Типа, глюки анализатора кода. Или глюки используемого ею компилятора (она может использовать FCSH, который непонятным мне магическим образом подкомпиливает код в процессе работы, в результате сокращая время компиляции с 2 минут до 2 секунд в прямом смысле слова). Или самопроизвольно сбрасывающиеся настройки во глубине (а этих настроек у неё МНОГО). Часть этих проблем можно обойти, например соорудив в качестве билда Ant-файлы с тем же FCSH, но стоящим отдельно. Но большинство не обходятся. Я, например, сижу на IDEA 9, потому что исключительно на моей машине IDEA 10 после мгновенной компиляции 2-3 минуты не может открыть результат в браузере (а это фатально, когда нужно не просто посмотреть, а дебажить в связке с самой идеей).
Сплошная беда, короче. Прости за многабукаф. Я просто два дня бился с ней, чтобы настроить два проекта после переноса SVN'а. Т__Т
Reply
Reply
Проблема в том, что баг неуловимый. У меня есть, у коллеги нету (этого, зато есть другой). Раскопки в гугле, например, не дали вообще никаких результатов по моей проблеме, которая "не открывается в браузере после компиляции". А у коллеги вот компилируется 2-3 минуты, хотя FCSH точно так же настроен и подключён, там вообще единые настройки проекта и IDEA через SVN организованы.
Есть только три вещи, о которых можно было бы написать с уверенностью, и все они касаются подсветки синтаксиса:
1. arr:Array = str.split(/\x0/); - регулярное выражение здесь подсвечивается как неправильное шестнадцатиричное число.
2. в AS3 есть относительно недокументированный синтаксис function foo(arg:SomeClass!). Вот этот ! после имени класса в аргументах означает, что аргумент не может быть null. Пока компилятору на это плевать, но в будущем, как говорят инсайдеры, он будет кидать ошибку 2007. Тем не менее компилятор вполне понимает этот синтаксис, а вот IDEA, увы, не очень.
3. В конструкции foo({someProp: super.someOtherProp}) ей не нравится super.
Как можно заметить, все три исключительно незначительны. А джиры мне хватает и на работе, чтобы вламываться в баг-трекер ещё куда-то.
А вот фич-реквест один было бы хорошо, кстати. Единственная вещь, которой мне реально не хватает в IDEA после FDT. В оном FDT по Ctrl+Enter можно было скакать по всем подсвеченным местам, которые он знал как решать, причём сразу предлагалось дефолтное решение. Скажем, я написал:
mySprite.addEventListener(MouseEvent.MOUSE_OVER, onOver);
mySprite.addEventListener(MouseEvent.MOUSE_OUT, onOut);
mySprite.addEventListener(MouseEvent.CLICK, onClick);
Все имена обработчиков, разумеется, подсветились красным, потому что обработчиков самих ещё нет. Так вот в FDT, где бы я ни находился в когда, я могу тройным нажатием Ctrl+Enter, Enter создать все три обработчика. В IDEA мне понадобится прыгать по коду, т.е. делать либо лишние клики, либо навигировать клавиатурой.
Но это тоже так, крик души, не более того. Ещё раз спасибо за среду!
Reply
Reply
Я понимаю, что это глупо - писать репорты тут, но колега очень-очень просил, потому всего один маленький: если делать пару геттер + сеттер, при этом сделать им разный уровень доступа, например одному public, а второму protected, то IDEA подсвечивает это как ошибку и поясняет "Flash compiler bug 174646". Коллега говорит, что это уже довольно давно не баг компайлера (со второго, что ли, флекса) и печалит несказанно. Не спрашивайте меня, зачем ему геттер и сеттер с разными степенями приватности. =)
Так или иначе, коллегу запинаю, чтобы он дальше ставил таски в вашем трекере. =)
Reply
Leave a comment