webStorm – Stepan Suvorov Blog https://stepansuvorov.com/blog Release 2.0 Wed, 06 Jun 2018 12:41:45 +0000 en-US hourly 1 https://wordpress.org/?v=6.3.1 Switching from WebStrom to VS Code https://stepansuvorov.com/blog/2016/11/switching-from-webstrom-to-vs-code/ https://stepansuvorov.com/blog/2016/11/switching-from-webstrom-to-vs-code/#comments Sat, 19 Nov 2016 13:10:28 +0000 http://stepansuvorov.com/blog/?p=3148 Continue reading ]]> vscode_webstorm_logo

*UPDATED 6.06.2018* 

So what should you do not to lose all the features in Visual Studio Code that you already got used to in WebStorm?

Did I miss something?

Really missing parts or problems:

    • folded blocks copy
    • a lot of bugs with path autocomplete
    • files multi-select (github issue)
    • smart tags not always work when code split into 2 lines
    • no autoformat for selected block
    • multiterminal without tabs
    • quick search/filter for file structure (by typing)
    • TODO parser by the whole project (plugin)
  • SCSS class name completion for the HTML

Something Extra plugins:

Fun:

 

]]>
https://stepansuvorov.com/blog/2016/11/switching-from-webstrom-to-vs-code/feed/ 2
WebStorm Keymap https://stepansuvorov.com/blog/2014/07/webstorm-keymap/ https://stepansuvorov.com/blog/2014/07/webstorm-keymap/#respond Thu, 03 Jul 2014 20:27:41 +0000 http://stepansuvorov.com/blog/?p=1821

WebStorm Keymap

]]>
https://stepansuvorov.com/blog/2014/07/webstorm-keymap/feed/ 0
WebStorm/PhpStorm комбинации клавиш, которые жить помогают https://stepansuvorov.com/blog/2014/03/webstorm-shortcuts/ https://stepansuvorov.com/blog/2014/03/webstorm-shortcuts/#comments Sat, 01 Mar 2014 09:32:02 +0000 http://stepansuvorov.com/blog/?p=1442 Continue reading ]]> Немного горячих клавиш, которые делают работу с редактором более эффективной

Комбинация Назначение Комментарий
[CTRL]+[ALT]+[L] Reformat Code  быстрое форматирование “грязного” кода
[CTRL]+[SHIFT]+[N]

[CMD]+[SHIFT]+[O] (mac)

File navigation  быстрый поиск файла по имени
[CTRL]+[SHIFT]+[Backspace] Last Edition Location  переход к месту предыдущей правки
[CTRL]+[Space] Basic  вывод возможных вариантов автодополнения
[Alt]+[Enter] Show Intention Actions  зависит от контекста выполнения, крайне удобно для редактирования встроенного HTML кода, более детально уже писал тут
[CTRL]+[SHIFT]+[V] Paste from History  буфер обмена хранит несколько последних копий
[CTRL]+[SHIFT]+[A] Find Action быстрый поиск по командам Шторма
[CTRL]+[W]

[ALT] + [ ▲ ] (mac)

Select Word at Caret  выделение фрагмента. Для Mac работает комбинация.
[SHIFT]+[ALT]+[CTRL]+[T] Refactor This  быстрое форматирование кода. Для Mac: [CTRL] + [T] или [CMD] + [ALT] + [T] – для обрамления выделенного фрагмента в структуру (цикл, функцию…)

* для MacOS – вместо [CTRL] жмем [CMD].

Подробное описание со скринами можно найти тут.

]]>
https://stepansuvorov.com/blog/2014/03/webstorm-shortcuts/feed/ 9
WebStorm: Editing HTML Inside of JS Literals https://stepansuvorov.com/blog/2014/02/webstorm-editing-html-inside-of-js-literals/ https://stepansuvorov.com/blog/2014/02/webstorm-editing-html-inside-of-js-literals/#comments Sun, 16 Feb 2014 20:26:16 +0000 http://stepansuvorov.com/blog/?p=1465

I just got known that WebStorm has such a nice possibility to edit HTML that is presented like a string (in JavaScript code) in separate window. All you need to do is press [Alt]+[Enter] and vuala:

 

]]>
https://stepansuvorov.com/blog/2014/02/webstorm-editing-html-inside-of-js-literals/feed/ 1
Настройка отступов (tabs to spaces) WebStorm https://stepansuvorov.com/blog/2014/01/%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d0%be%d1%82%d1%81%d1%82%d1%83%d0%bf%d0%be%d0%b2-tabs-to-spaces-webstorm/ https://stepansuvorov.com/blog/2014/01/%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d0%be%d1%82%d1%81%d1%82%d1%83%d0%bf%d0%be%d0%b2-tabs-to-spaces-webstorm/#respond Fri, 24 Jan 2014 08:41:15 +0000 http://stepansuvorov.com/blog/?p=1409 Settings -> Code Style -> General -> Tabs and Indents
  • Indent – отступ
  • Continuation indent – отступ, если следующая строка продолжает предыдущую строку
]]>
https://stepansuvorov.com/blog/2014/01/%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d0%be%d1%82%d1%81%d1%82%d1%83%d0%bf%d0%be%d0%b2-tabs-to-spaces-webstorm/feed/ 0
Karma в помощь тестированию https://stepansuvorov.com/blog/2013/01/testacular-%d0%b2-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8e/ https://stepansuvorov.com/blog/2013/01/testacular-%d0%b2-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8e/#comments Wed, 09 Jan 2013 07:33:12 +0000 http://stepansuvorov.com/blog/?p=876 Continue reading ]]> karma test runer

UPD: статься обновлена 21.11.2015. Старое имя утилиты – Testacular

Karma – инструмент на node.js, позволяющий запускать JavaScript код в нескольких браузерах, нацеленная на поддержку TDD подхода.

Karma – это не фреймворк/библиотека для тестирования, поэтому совместно можно использовать:

  • Mocha
  • Jasmine
  • QUnit
  • либо же что-то совсем другое, но написав свой адаптер

Браузеры, которые можно использовать:

Установка:

$ npm install -g karma

Проверяем что все установилось:

$ karma --version

Так же нам понадобиться тест фреймворк, используем Jasmine:

npm install karma-jasmine

и подключение к браузеру(возьмем Chrome):

npm install karma-chrome-launcher

Настройка:

Все настройки можно задать в конфигурационном файле. Мы можем создать свой файл настроек воспользовавшись мастером инициализации:

$ karma init

Разберем основные моменты karma.config.js:

//в скобках указано значение по умолчанию
basePath('') -
files([]) - список файлов/шаблонов для загрузки
exclude([]) - список исключений для предыдущего пункта
reporters(['progress']) - вариант вывода прогресса
port(8080) - порт веб-сервера(testacular)
runnerPort(9100) - порт клиента
colors(true) - включение/выключение цветов при выводе
logLevel(LOG_INFO) - LOG_DISABLE|LOG_ERROR|LOG_WARN|LOG_INFO|LOG_DEBUG
autoWatch(false) - выполнение тестов при изменении файлов
browsers([]) - Chrome, ChromeCanary, Firefox, Opera, Safari, PhantomJS
captureTimeout(5000) - задание таймаута в миллисекундах
singleRun(false) - для одноразового запуска
preprocessors({}) - список обработчиков, которые будут применены к файлам, до загрузки в браузер, например - CoffeeScript

Итак, у файл настроек есть, теперь можем запускать утилиту:

$ karma start

Т.к. мы еще не добавили сами тесты, то должно вывести что-то типа:

Executed 0 of 0 ERROR (0.006 secs / 0 secs)

Давайте создадим простой тест (на Jasmine):

describe("A suite", function() {
    it("contains spec with an expectation", function() {
        expect(true).toBe(true);
    });
});

сохраним его в файл test.js и подключим этот файл в конфиг:

files: [
  'test.js'
],

после чего снова запустим karma и посмотрим в консоль:

Executed 1 of 1 SUCCESS (0.086 secs / 0.002 secs)

Как видим: тесты прошли успешно, один тест выполнился.

 Подключение в WebStorm

UPD: WebStrom начиная с версии 7 уже добавили поддержку Karma, поэтому не нужно уже выполнять танцы с бубном и настройкой node debug, который были до этого.

Заходим в настройки запуска и отладки:

webstorm karma

Добавляем карму:

webstorm karma

 

Из настроек вам нужно только задать имя и убедиться что подхватился правильный путь к файлу конфигурации.

Если мы хотим выполнять тесты после каждого изменения в коде, включим вот эту опцию:

webstorm karma

Теперь webstorm будет нас информировать о состоянии тестов, в том числе в бекграунде:

webstorm karma

то есть если мы сделаем TDD или просто хотим знать момент, когда мы что-то пошло не так, это довольно удобно:

webstorm karma

 

]]>
https://stepansuvorov.com/blog/2013/01/testacular-%d0%b2-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8e/feed/ 2
WebStorm/PhpStorm настраиваем и используем Live Edit https://stepansuvorov.com/blog/2012/12/webstormphpstorm-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%b0%d0%b8%d0%b2%d0%b0%d0%b5%d0%bc-%d0%b8-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d1%83%d0%b5%d0%bc-live-edit/ https://stepansuvorov.com/blog/2012/12/webstormphpstorm-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%b0%d0%b8%d0%b2%d0%b0%d0%b5%d0%bc-%d0%b8-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d1%83%d0%b5%d0%bc-live-edit/#respond Wed, 26 Dec 2012 13:43:10 +0000 http://stepansuvorov.com/blog/?p=840 Continue reading ]]>

Как извесно с пятой версии в WebStorm/PhpStorm появилась новый плагин под названием LiveEdit, который дает возможность писать код и сразу смотреть результат.

Вот прекрасное видео, которое демострирует возможности плагина:

 

Если понравилось – пару слов о найстройке:

По умолчанию плагин уже активирован в редакторе, нужно только проверить в настройках чтобы стояли галочки:

Далее найти файл

/PhpStorm/plugins/JavaScriptDebugger/extensions/HowToInstallGoogleChromeExtension.html

с инструкцией по установке расширения для Chrome: в большей части случаев она заключает в том, чтобы установить новое расширение  из файла /PhpStorm/plugins/JavaScriptDebugger/extensions/jb.crx

Для Linux есть своя специфика:

$ sudo mkdir -p -m0777 /opt/google/chrome/extensions

На свякий случай ссылка на страничку с возможными проблемами:
http://confluence.jetbrains.net/display/WI/LiveEdit

]]>
https://stepansuvorov.com/blog/2012/12/webstormphpstorm-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%b0%d0%b8%d0%b2%d0%b0%d0%b5%d0%bc-%d0%b8-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d1%83%d0%b5%d0%bc-live-edit/feed/ 0
Песочница для mongodb https://stepansuvorov.com/blog/2012/11/%d0%bf%d0%b5%d1%81%d0%be%d1%87%d0%bd%d0%b8%d1%86%d0%b0-%d0%b4%d0%bb%d1%8f-mongodb/ https://stepansuvorov.com/blog/2012/11/%d0%bf%d0%b5%d1%81%d0%be%d1%87%d0%bd%d0%b8%d1%86%d0%b0-%d0%b4%d0%bb%d1%8f-mongodb/#comments Sat, 10 Nov 2012 20:21:22 +0000 http://stepansuvorov.com/blog/?p=728 Continue reading ]]> Проходя курсы по mongoDb остро стала необходимость в организации какой-то песочницы для скриптов, так как просто в mongoshell писать стало не удобно, а отдельно писать в редакторе код, а потом его запускать через консоль – тоже не интересно.

Покопавшись в плагинах WebStorm (который является моим текущим IDE), я обнаружил, что для mongoDb расширения, увы, еще нет. Ну что же, играем дальше. Есть плагин на node.js, который довольно просто настраивается. После чего можем в настройках запуска проекта

добавить вариант запуска текущего скрипта нодой.

Надеюсь, вы не забыли поставить монго драйвер на ноду.

Итак, у нас есть удобный редактор, подключенная нода и консольный вывод в самом редакторе. Осталось только накидать код:

var mongo = require('mongodb');
var host = 'localhost';
var port = mongo.Connection.DEFAULT_PORT;

var db = new mongo.Db('test', new mongo.Server(host, port, {}), {safe:false});
db.open(function(err, db) {
    console.log("Connected!");

    // а вот тут и пишем наш код, который хотим отладить

    db.close();
});

Happy codding!

]]>
https://stepansuvorov.com/blog/2012/11/%d0%bf%d0%b5%d1%81%d0%be%d1%87%d0%bd%d0%b8%d1%86%d0%b0-%d0%b4%d0%bb%d1%8f-mongodb/feed/ 1
Настраиваем JSHint для WebStrorm https://stepansuvorov.com/blog/2012/09/%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%b0%d0%b8%d0%b2%d0%b0%d0%b5%d0%bc-jshint-%d0%b4%d0%bb%d1%8f-webstrorm/ https://stepansuvorov.com/blog/2012/09/%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%b0%d0%b8%d0%b2%d0%b0%d0%b5%d0%bc-jshint-%d0%b4%d0%bb%d1%8f-webstrorm/#comments Wed, 19 Sep 2012 13:11:41 +0000 http://stepansuvorov.com/blog/?p=609 Continue reading ]]>

JSHint – бесплатный инструмент для проверки JavaScript кода на соответствие стандартам оформления кода и внутри командным соглашениям. Возник как ответвление от JSLint, который разработал автор JSON формата Дуглас Крокфорд. Инструмент не имеет фиксированных правил и легко конфигурируется под конкретные требования к коду.

Как пишет создатель JSHint: “It is quickly transforming from a tool that helps developers to prevent bugs to a tool that makes sure you write your code like Douglas Crockford.

Что касается WebStorm, то поддержка JSHint/JSLint(включены 2 инструмента) появилась начиная с версии 3.0. Включается довольно просто в настройках:

Там же мы можем задать все необходимые параметры.

После чего у нас появятся подсказки об ошибках в оформлении кода:

На официальном сайте есть довольно подробная документация.

Сам WebStrorm хранит настройки в файле .idea/jsLinters/jshint.xml, соследующей структурой:

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JSHintConfiguration">
<option bitwise="true" />
<option curly="true" />
<option noarg="true" />
<option forin="true" />
<option strict="true" />
<option noempty="true" />
<option undef="true" />
<option eqeqeq="true" />
<option nonew="true" />
<option browser="true" />
<option maxerr="50" />
<option predef="can, windown" />
</component>
</project>

К сожалению, WebStorm еще не подружили с .json стандартным форматом для JSHint. Пример .json варианта можно посмотреть тут.

]]>
https://stepansuvorov.com/blog/2012/09/%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%b0%d0%b8%d0%b2%d0%b0%d0%b5%d0%bc-jshint-%d0%b4%d0%bb%d1%8f-webstrorm/feed/ 1