Как стать автором
Обновить

Комментарии 63

Так как про TypeScript очень мало информации в целом, очень хотелось бы получить дополнительную информацию (в т. ч. работа в Webstorm). Особенно интересно связка с node.js.
Спасибо за отличную статью.
Да пока, по ходу, с node.js примерно никак. Sourcemaps отлично работают при дебаге .ts в броузере, но упорно не хотят у меня подключаться при попытках подебажить что-нибудь запущенное в node :(

Впрочем лично у меня до недавнего времени не работали брэкпойнты если пробовал дебажить node 0.8.x, Т.ч. не исключаю что игнорирование sourcemaps это тоже особенности конкретно моего экземпляра (машинка не переставлялась уже несколько лет, а настройки EAPов мигрируют от версии к версии начиная с самых-самых первых, т.ч. у меня много чего может работать не так как положено).

А вообще в блоге есть туториал о том как с пол-пинка навесить File Watchers на *.ts и наслаждаться :)
Поддержка sourcemap для NodeJS есть только в последних двух EAP. И сейчас работает даже лучше, чем в браузере (в браузере не работает для кода исполняющегося в момент загрузки).
Спасибо что сказали. Буду знать. приношу извинения за дезинформацию с моей стороны.

Блин, да что ж меня так не прет-то с node на моей машине? У меня последний EAP и упорно не работает ни sourcemap ни бряки в *.ts. Хорошо хоть бряки в *.js заработали под 0.8.x. Кажется самое время сносить шторм вчистую и переставлять заново. А то у меня еще с первых EAPов артефакты лежат :)
Я дурак, не слушайте меня. Проблема не PhpStorm или моей машине, а в дырявой голове и кривых руках.

Все у PhpStorm отлично с отладкой TypeScript'а.

Открыл пустую папочку. Создал файл HelloWorld.ts следующего содержания:
class HelloWorld {
	private hello:string = "Hello";
	private world:string = "world";

	sayHello() {
		console.log(this.hello + " " + this.world);
	}

	sayAnother() {
		console.log(this.world + " " + this.hello);
	}
}

var h = new HelloWorld();
h.sayHello();
h.sayAnother();


Согласился на любезное предложение настроить File Watchers

В настройках дебага создал конфигурацию для локального Node.js (екзешник дал от 0.8.19), Working directory — наша папочка со скриптом, Path to node App JS File — любезно скомпилированный услужливым file watcher'ом HelloWorld.js

Натыкал брэйкпойнтов по .ts файлу, запустил дебаг и все заработало. Выполнение брякнулось, все переменные видны, красота…

Огромное спасибо за лучшую IDE!
1) У меня в css выскакивает много ненужных тэгов из SVG синтаксиса — можно ли их отключить?
2) Очень медленно работает LESS компилятор.
3) Будет ли компилятор для SASS — или может уже есть?
1) отвечу чуть позже, хочу спросить человека, который этим занимался лично;
2) напишите, пожалуйста, сколько файлов у него на входе в проекте;
3) есть, внешний, как рассказано в нашем блоге. В последних версиях Webstorm 6 EAP сделан его автоматический запуск из IDE таким же образом, как запускается компилятор TypeScript в скринкасте Джона Линдквиста. Подробности скоро будут в официальном блоге и в следующем посте про WebStorm на Хабре.
1) Жду с нетерпением
2) Bootstrap less — т.е. порядка 20-30 файлов WinLess его довольно быстро обрабатывает. Но к сожалению, winless не умеет перекомпилировать файл если изменился подключенный файл. Возможно поэтому у него и скорость выше.
3) Попробую, спасибо.
У меня в css выскакивает много ненужных тэгов из SVG синтаксиса — можно ли их отключить?

Пока нет. Но если вы добавите запрос об этом в наш баг-трекер, мы его включим в план.
2) А я запретил их компилятору обрабатывать мои файлики и компилирую через external tools.
3) Попробуйте навесить внешний компилятор используя file watchers или external tools

Подумалось что надо бы оформить фиче-реквест. Отключаемые File Watchers с возможностью пнуть их разок по хоткею. Phing ужасно тормозной, Watchers начинают утомлять когда вываливают сообщения об ошибках компиляции файла в процессе правки, писать свой «билдер всего-и-вся» который, только и должен что пробежать по less/ts/jade файлам и скомпилить все скопом, чтобы повесить его как external tool напрягает. Особенно при наличии file watchers которому до идеала только режима on demand и возможности захоткеить не хватает
в WebStorm 6 EAP в описании любого file watcher'a уже есть checkbox «Check file for syntax errors», если его отметить, то файл не будет компилироваться, пока синтаксис не окажется верным.
Esto bien, спасибо. Но что-то я в 126.162 такой опции не нашел. Она будет опубликована в ближайшем EAP или я опять не понять куда смотрю?

… пока писал проверил, оказывается есть уже посвежее версия. спасибо, качаю :)

Но все равно возможность «пнуть» вотчеры не помешает. Например, когда взял и удалил скомпилированный файл, вотчер не отработает и не скомпилит еще раз пока не внесешь изменения в «исходник»…
Ну внешний компилятор это понятно. Родной вроде бы и так срабатывает при изменении файлов — зачем его навешивать куда-то?
А как вообще там включить LESS компилятор?
Ctrl+Alt+S, Project Settings, LESS Profiles
или через File Watchers (можно согласиться на предложение создать новыый Watcher, появлется когда создаешь новый less файл. а можно и руками создать)
И тут нужна картинка про PNG vs JPG
А ещё, CTRL + пробел это стандартная комбинация для открытия подсказки, работает во многих IDE.
В Mac OS, ctrl+space — это вызов spotlight, а cmd+space — смена расскладки.
Хотелось бы чтобы в статье эти нюансы тоже учитывали!
Познайте Zen и будет нам счастье )))
Благо WebStorm его умеет на «ура»
Это уже emmet
И его Webstorm уже почти умеет.
Вообще это всё же zendcoding, который присутствует (возможно в качестве отдельного плагина — честно, не помню, у меня всегда стоит) в комплекте всей линейки IDE от JetBrains. По поводу emmet — было бы неплохо и его функции, но как заметил Metaller — это ещё в процессе.
zen-кодинг по-моему давно по умолчанию. Emmet — (спасибо не знал о таком) очень похож на zen — + фичи, которые еще надо будет учить. ;-) Но очень интересно.
Очень похож, потому что Emmet это ex. zen.
а не наоборот? Я думал что emmet это продвинутый zen
Я и написал, что Emmet это бывший Zen-coding. Раньше назывался Zen-coding, теперь называется Emmet. Разработчик тот же — Сергей Чикуенок.
да. я не так понял.
www.jetbrains.com/products.html — эта страница вешает хром при скроллинге, чем быстрее, тем все хуже
Mac OS, Chrome 24.0.1312.57
Скрин
1.3 Гб памяти вкладка сожрала, зараза… а так скролится нормально :)
та же версия хрома, OS X 10.8.2
НЛО прилетело и опубликовало эту надпись здесь
Да, странно, завтра передам товарищам. Все из-за векторных рисунков (иконок продуктов). Спасибо.
А зачем использвать ctrl+space? Простой таб для тривиальный случаев срабатывает ничуть не хуже.
Плюсанул, но, честно говоря, постом слегка разочарован: надеялся, что сейчас вы расскажете что-то такое, чего я не знаю :(

Ну, какие-нибудь мега-секретные-хаки, о которых даже и намеков нет в официальной документации, и все такое.

(Если что, пользуюсь продуктами JetBrains с 2006-го года, WebStorm купил еще когда он выходил из беты, в 2010-м, кажется).
Откуда у Webstorm секреты? Все есть в shift+ctrl+A
Ну возможно там все и есть — но куча вещей, есть которые скрыты. Я вот пользуюсь тоже давно, но допустим про автозавершение через Tab не знал.
Кстати еще вопрос разработчика.
Я начал набирать что-то — выскочила подсказка — мне надо нажать стрелочку для выбора, и потом энтер. А почему бы по энтеру не выбирать первую строчку?
Ну, какие-нибудь мега-секретные-хаки, о которых даже и намеков нет в официальной документации, и все такое.

Ага, типа нормальной документации и туториалов по OpenAPI под IDEA и Resharper. А то ак понадобится чего-нибудь так потом весь гугль можно перелопатить и не найти. Только анализировать исходники примеров, только хардкор :(
Уважаемый автор только что открыл для себя IDE вообще и webstorm в частности, о чем не замедлил поделиться с не менее уважаемым сообществом. Чтож, примите поздравления.
Открыв его профиль можно заметить, что скорее всего он открывает эту IDE чаще чем кто-либо другой, а знает про нее точно много больше нашего с вами.
Или я возможно не понял вашего тонкого сарказма?
Если не глядеть в профиль, слишком простовато для человека, работающего в Jetbrains.
Но таки первое впечатление от статьи было именно таким: Ctrl+пробел новички узнают из первых подсказок, а то и ставят IDE уже ради самой этой возможности, очень для новичков ценной. Да и сама IDE достаточно агрессивно «подсказывает». Вот только блог, в котором опубликован этот пост и профиль автора — смущают. Но таки надеемся на развитие сюжета в этом блоге — надеюсь мы дойдём до высшего пилотажа из первых рук )
Вы, кстати, совершенно правы — в отношении части новичков. Вторая их часть (не могу сказать, меньшая или большая) подсказок не читает, а возможности IDE использует примерно на 10%. Разумеется, таких читателей на Хабре меньше, чем в среднем в Сети, но эту запись увидят и те, кто придет сюда через поиск в Яндексе/Google. И как Вы справедливо отметили ниже, в статье есть и менее известные вещи, чем Ctrl-пробел )
а не смущайтесь.
за всех не скажу, а за себя скажу, что с интересом читаю публикации этого автора.
Даже если пишется что-то, что и так знаю — не страшно. Наоборот, хорошо. Повторение — мать учения.
чучка не читатель, чукча писатель — профиль посмотрел после комментария и выпал в осадок. теперь вот справедливо ловлю минусы в карму.
Таки не останавливайтесь на первых абзацах статьи ;-)
Всё-таки здесь рассказываются и возможности которые не очевидны при простом знакомстве со средой
Подскажите, а в EAP WebStrom'е есть поддержка тестирования RESTful вебсервисов как в EAP PhpStorm'е?
Нет.
нет, так как пока не было такой потребности. Напишите, пожалуйста, свежий запрос в наш баг-трекер, и если вашим коллегам это тоже нужно, попросите их проголосовать за запрос.
В статье не затронута и малая часть функциональных пряников, которые в избытке имеются в продуктах jetbrains. Англоязычные статьи и скринкасты на порядок информативнее.
Можно прямо брать все подряд туториалы из блога blog.jetbrains.com/webide/ и переводить сюда.
IDE от JetBrains — это прекрасно. Если же говорить именно о node.js, то все еще очень далеко от идеала. Например, debugger — очень слабый. Чтобы выполнить код, нужно открывать дополнительное окно «evaluate», вместо того, чтобы просто набрать в консоли. В списке переменных текущего контекста нет this и arguments — а их стоит показывать, если this != global и arguments.length !=0. В watch нельзя добавить переменные, не объявленные в текущем контексте. При наведении на переменную в коде всплывает окошко с описанием, что в переменной, но если в переменной объект — нельзя посмотреть его свойства прямо в этом окне. Хм, кажется, так долго можно продолжать)
Если комментарий адресован мне, то да, я это имел в виду, ккогда писал про то, что код хочется «просто набрать в консоли».
спасибо за статью.

Кстати, через <Ctrl-D> можно плодить не только строки, но и их части — если выделена часть одной строки, то продублируется только она. А если выделена часть но нескольких строк, то продублируются строки, а не выделенный текст.

А удалять строки можно через <Ctrl+Y>
Вот я привык писать теги html начиная с <><>, а потом уже пишу какой тег. А Вебшторм, блин, все время подставляет какой-то тег, то a, то acronym… Как это убрать?)
отключи «Insert selected variant by ...» в «Code Completion»
У меня там нет такого варианта. Правда у меня PHPStorm 5.0.4
Но я бы от всей души посоветовал бы изменить привычку — набирать через дополнение на порядок быстрей )
Расскажите, пожалуйста, можно ли и каким образом компилировать SASS и LESS с пом. этой среды разработки? Как создать и настроить проект с работой css-компилятора под фреймверк Bootstrap?

Можно ли с её помощью заливать файлы по фтп и почему встроенный фтп упорно не хочет работать, когда FileZilla отлично справляется?

Как именно настроить среду так, чтобы она правильно понимала js файлы и не подчеркивала всякие return в скриптах-сервлетах под Rhino?
Расскажите, пожалуйста, можно ли и каким образом компилировать SASS и LESS с пом. этой среды разработки?

Настроить LESS Profiles или создать File Watcher на LESS файлы

Как создать и настроить проект с работой css-компилятора под фреймверк Bootstrap?

А есть какие-то особенности? Я просто брал bootstrap с исходничками и он у меня отлично компилялся (тогда, правда, flle watchers еще не было, но LESS Profiles уже был, т.ч. компиляцию прикручивал через него)

Можно ли с её помощью заливать файлы по фтп и почему встроенный фтп упорно не хочет работать, когда FileZilla отлично справляется?

Сорри, я не знать, не пользовался ни разу

Как именно настроить среду так, чтобы она правильно понимала js файлы и не подчеркивала всякие return в скриптах-сервлетах под Rhino?

С Rhino тоже не сталкивался… А в настройках Project Settings, Javascript не пробовали настроить версию JS + в libraries Rhino как-то затолкать?
Спасибо большое, буду дальше тыкаться :)
Можно ли с её помощью заливать файлы по фтп и почему встроенный фтп упорно не хочет работать, когда FileZilla отлично справляется?

У меня подобная проблема решилась простановкой галочкой «Passive mode», в Deployment -> Advanced Options
Включил. Говорит could not list the contens of folder «myftp/»
Зарегистрируйтесь на Хабре, чтобы оставить комментарий