#flash #apache-flex #autocomplete #air #builder
#flash #apache-flex #автозаполнение #air #Конструктор
Вопрос:
Проект, над которым мы неделями работали во Flash Builder, внезапно перестал быть навигационным: все приятные функции Flash Builder, такие как автозаполнение, переход к определению, даже поиск ссылок, работают только частично — они работают для некоторых классов, но не для других. Я пытался перезапустить Flash Builder, закрыть и открыть проект, заново создать проект, но эта плохая ситуация сохраняется. Более того, это произошло примерно в одно и то же время для двух других разработчиков в том же проекте, у каждого из которых была несколько иная конфигурация. Кажется, возможно, мы превысили какой-то внутренний предел FlashBuilder, но наш проект еще даже не настолько велик. Я не уверен, где я могу посмотреть, чтобы устранить это.
Комментарии:
1. Подсветка синтаксиса все еще работает для этих классов?
2. Раскраска синтаксиса работает для всех классов. Я все еще могу создавать, запускать и отлаживать. Однако при нажатии кнопки control будут отображаться ссылки только для определенных классов, а не для других, а те, которые он не покажет, кажутся случайными — это не так, как если бы они были в определенной библиотеке.
Ответ №1:
Обычно завершение работы Eclipse и повторный запуск решают проблему для меня. Но, вот еще несколько вещей, которые стоит попробовать:
- Поскольку это произошло на трех рабочих станциях, на отдельном наборе классов, вы искали странную или нестандартную синтаксическую ошибку? Я уверен, что видел ситуации, когда что-то не вызывало ошибки компилятора, но приводило к прерыванию кода, указывающего на прерывание. Я бы искал такие вещи, как одинарные кавычки внутри двойных кавычек или ASDocs, которые не завершаются должным образом. [Тем не менее, это кажется дико непоследовательным, так что это что-то вроде удара в темноте].
- Попробуйте очистить рабочее пространство. При запуске Flash Builder (или Eclipse) используйте аргумент ‘-clean’. Я делаю это с помощью ярлыка Windows; я не уверен, как это сделать на Mac
- Попробуйте воссоздать рассматриваемый компонент. Медленно копируйте код по частям, пока не выясните, что нарушает подсказку кода.
Комментарии:
1. Это случилось и со мной. Вот проблемный код,
<mx:RegExpValidator expression="{'[1-9][0-9]{1,2}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'}" />
удаление{
и}
вexpression
свойстве решило проблему для меня 🙂2. Это удаление фигурных скобок является решением не только для регулярного выражения — оно использовалось для быстрого «ограничения диапазона дат» в теге mxml DateField disabledRanges DateField. Это нарушило автозаполнение всех компонентов mxml, которые появились ПОСЛЕ этой части mxml (все автозаполнения верхнего компонента mxml работали нормально).
Ответ №2:
Это распространенная проблема в eclipse (он же Flash Builder).
Попробуйте увеличить доступную память для «кэширования типов» (я забыл конкретный термин). Вы можете сделать это, отредактировав файл FlashBuilder.ini в вашем flex home, чтобы он выглядел примерно так:
-vmargs
-Xms64m
-Xmx1024m
-XX:MaxPermSize=1024m
-XX:PermSize=64m
(удалены нерелевантные параметры)
Вам также может потребоваться полностью удалить кэш рабочей области и создать его заново. У меня не было этой проблемы с тех пор, как я увеличил максимальный лимит памяти.
Вероятно, вам не нужно больше 512 мб при максимальном размере, но я работаю с особенно большим проектом с большим количеством зависимостей от открытых библиотек…
Ответ №3:
Удаление, а затем повторное добавление проекта, казалось, исправило это для меня.
Ответ №4:
У меня ничего из этого не сработало. Мое решение состоит в том, чтобы запустить textfactory в BBEdit (я на Mac), который заменяет каждую вкладку во всей моей кодовой базе четырьмя пробелами, затем другой, который делает обратное. Затем я обновляю свой проект в FB. Это изменение каждого файла, похоже, вынуждает FB перестраивать ссылки на него. Мне приходится делать это каждый раз, когда я запускаю FB. Я уверен, что есть лучший способ добиться этого из командной строки (хотя unix ‘touch’ не работает).
Ответ №5:
Я получил значительное улучшение, включив «Включить режим разработки»
Ответ №6:
У меня были те же проблемы, иногда даже автозаполнение кода зависало в пользовательских классах.
Я бы посоветовал вам попробовать удалить папку .codemodel из вашей рабочей области, смотрите Описания здесь:http://www.redcodelabs.com/2010/05/flash-builder-content-assist-did-not-complete-normally /
И позже, для повышения производительности, вы можете выполнить следующие действия: http://www.redcodelabs.com/2012/03/eclipse-speed-up-flashbuilder /
Ответ №7:
Это произошло, когда я добавил объявление модели в приложение MXML. Когда я прокомментировал это, автозаполнение снова сработало.
<fx:Model id="testTextFlow">
<flow:TextFlow version='3.0.0' xmlns:flow='http://ns.adobe.com/textLayout/2008' fontSize='11'
textIndent='10' paragraphSpaceBefore='6' paddingTop='8' paddingLeft='8' paddingRight='8'>
<flow:p paragraphSpaceBefore='inherit' clearFloats='start'>
<flow:img source="http://imgs.xkcd.com/comics/trapped.png" width="600" height="300" float="right"/>
<flow:span>Bacon ipsum. Permanent link to this comic: http://xkcd.com/876/ Image URL (for hotlinking/embedding): http://imgs.xkcd.com/comics/trapped.png</flow:span>
<flow:TextFlow version='3.0.0' xmlns:flow='http://ns.adobe.com/textLayout/2008' fontSize='15'>
<flow:p paragraphSpaceBefore='inherit' >Here is an embedded text flow.</flow:p>
</flow:TextFlow>
</flow:p>
</flow:TextFlow>
</fx:Model>
Ответ №8:
Щелкните правой кнопкой мыши по классу и выберите «обновить», исправлена эта проблема для меня 🙂
Я также заметил, что он открывает странный второй класс, в котором подсказка кода не работает, когда вы нажимаете на гиперссылку на этот класс из другого класса. Если вы дважды щелкните ‘Class.as ‘ файл в дереве документов, тогда он работает нормально. Очень странно