Более чем год назад я не забываю наблюдать за одним из евангелистов DevExpress, предварительно просматривающих или по крайней мере способствующих богатому рефакторингу JavaScript (вне просто ограниченного intellisense) в оболочке Visual Studio, я вспоминаю часть линейки продуктов CodeRush/DevExpress. Я был взволнован.
При проверке сегодня (lmgtfy) я могу найти только очень очень ограниченную ссылку на него, всего одна маленькая italtic строка о бете в описании продукта, никаких видео, никаких сообщениях в блоге, никаком общественном шуме. Это было отброшено? Призрачный продукт? Плохая реализация, что они даже не продвигают его?
С JavaScript возможно самый популярный язык программирования когда-нибудь и с VM для него на практически каждой машине за прошлые 10 лет, почему поддержка редактора так плоха? (По сравнению с теми, которые для Java и C#)? Вы видите подобных ScottGu, хвастая, что мы теперь имеем jQuery intellisense, но сравниваем это с богатством поддержки C# в IDE, это - шутка.
Кто-то когда-то сказал, так как существуют многие стиль записи JavaScript, богатый IDE (вне intellisense) с рефакторингом поддержки является трудным, но если несколько механизмов могут интерпретировать/компилировать JS с тем же результатом, конечно, это должно быть твердо к анализу, который это для поддержки материала любит, переименовывают переменную, извлекают метод, перемещаются в другое пространство имен (или JS minic его), и т.д.Я неправ?
Проблема с чем-то вроде Javascript Intellisense заключается в том, что ему действительно нужны сверхъестественные силы, чтобы иметь хоть какое-то представление о том, что означает фрагмент кода. Например, здесь, в этом фрагменте функции:
return function(a) {
var x = a.
Я только что набрал это "." после «а», и я нажимаю «вкладку» для автозаполнения. Что должна делать среда IDE?
В некоторых ограниченных случаях вы можете сделать некоторые правильные предположения; Например, редактор может сделать некоторые предположения, если вы сказали, что используете, например, jQuery, и он хорошо видит
$('something').
, это достойное предположение, что завершение работы с помощью API-интерфейсов jQuery является правильным решением. Однако это никогда не будет лучше, чем предположение. Даже с этим примером jQuery редактор все равно столкнется с некоторыми серьезными проблемами:
$('something').each(function(_, element) {
if (element.
После этого ".", Что должно показать мне автозаполнение? Что ж, супер-умный редактор мог бы пойти на риск и предположить, что «элемент» является узлом DOM, но это должно быть паранормальным, чтобы знать, что вид узла DOM.
Еще одна вещь, которую можно было бы сделать, - это включить какую-то всеобъемлющую систему подсказок, чтобы программист мог явно указывать редактору, что к чему. Для меня это отняло бы у меня немного души от Javascript, но я думаю, что некоторые люди могут найти его полезным.
JS только недавно стал серьезным тяжелым языком разработки приложений. Java, напротив, уже много лет используется крупными богатыми корпорациями, что дает компаниям и проектам с открытым исходным кодом гораздо больше времени, чтобы вкладывать деньги / время в создание инструментов.
Создание достойного программного обеспечения занимает много времени.
CodeRush поддерживает пятьдесят два вида рефакторинга JavaScript:
И восемь функций декларации и быстрого исправления:
Также мы работаем над улучшением поддержки рефакторинга в 10. 2. Мы также недавно улучшили Quick Nav, чтобы сделать навигацию по функциям JavaScript такой же простой, как и навигация в C# или VB. Это улучшение появится в 10.2, но уже сейчас доступно для клиентов CodeRush в ежедневной сборке.
Полное раскрытие информации - я возглавляю команду CodeRush в DevExpress.