Сочетания клавиш для быстрой работы в Macos

Ниже представлен неполный список сочетания клавиш в Macos, позволяющие быстро вести разработку в этой ОС. В основном сочетания относятся к IDE Webstorm, но не только к ней - ко всему спектру процесса разработки.

  • Cmd + W - закрыть активную вкладку редактора
  • Cmd + 0 - открыть\закрыть панель коммитов
  • Cmd + 1 - открыть\закрыть панель проекта
  • Cmd + 9 - открыть\закрыть панель Git
  • Cmd + ArrowLeft - переместить курсор влево до начала строки
  • Cmd + ArrowRight - переместить курсор влево до окончания строки
  • Cmd + B - перейти в объявление или использование
  • Cmd + / - строчный комментарий
  • Cmd + Shift + / - блочный комментарий
  • Cmd + Backspace - удалить активную строку
  • Cmd + L - переход на указанный номер строки

  • Cmd + [ - назад по истории перемещений
  • Cmd + ] - вперед по истории перемещений
  • Shift + Cmd + ] - перемещение вправо по открытым вкладкам редактора
  • Shift + Cmd + [ - перемещение влево по открытым вкладкам редактора
  • Cmd + Home - переход в начало файла
  • Cmd + End - переход в конец файла

  • Shift + Cmd + ArrowLeft - выделить всю строку от курсора влево
  • Shift + Cmd + ArrowRight - выделить всю строку от курсора вправо
  • Shift + Option + ArrowUp - переместить активную строку вверх
  • Shift + Option + ArrowDown - переместить активную строку вниз

  • Option + Cmd + I - открыть\закрыть Devepoler Tools (браузера)
  • Option + ArrowUp - выделить все слово, на котором стоит курсор
  • Option + Enter - вручную импортировать зависимость
  • Option + Cmd + Z - откатить изменения

Ссылки

Jest

Соответствия matcher’ов в Jasmine и Jest

  • and.callThrough() –> mockImplementation()
  • and.callFake() –> mockImplementation()
  • and.returnValue() –> mockReturnValue()
  • and.spyOnProperty() –> spyOn()
  • and.toHaveBeenCalledOnceWith() –> toHaveBeenCalledTimes(1)
  • spyOn(…).and.callFake(() => {}) –> jest.spyOn(…).mockImplementation(() => {})
  • jasmine.createSpy(‘name’) –> jest.fn()
  • toBeTrue –> toBe(true)
  • toBeFalse –> toBe(false)

toHaveBeenCalled() - это алиас для toBeCalled()

Jasmine createSpyObj в Jest

В Jasmine объект шпиона создается, используя функцию createSpyObj и передавая в него параметры имени класса и массива методов:

const serviceMock = createSpyObj('service', ['method_1', 'method_2', 'method_3', 'method_4', 'method_5']);

В Jest просто создается объект с ожидаемыми свойствами, а функция jest.fn() создает методы-шпионы:

const serviceMock = {
    method_1: jest.fn(),
    method_2: jest.fn(),
    method_3: jest.fn(),
    method_4: jest.fn(),
    method_5: jest.fn()
};

Ссылки

У этой клавиатуры есть три кнопки Easy-Switch Keys - удобная штука для подключения клавиатуры по Bluetooth к разным устройствам (компьютерам):

Logitech Easy-Switch Keys

Но иногда бывает такая ситуация, когда нужно отключить клавиатуру от уже подключенных устройств. Операция несложная, но - нужно некоторое время на поиск этой информации - решил сохранить у себя.

Как сбросить настройки Logitech MX

  • в Bluetooth-настройках всех устройств - отключить (unpair) клавиатуру
  • на клавиатуре последовательно нажать комбинацию клавиш - ESC + O (буква, не цифра!), затем снова ESC + O (буква, не цифра!), потом ESC + B
  • подсветка клавиатуры помигает несколько секунд - ждем, пока перестанет мигать
  • выключаем и снова включаем клавиатуру (hard переключатель)
  • в результате все устройства, которые были подключены (pair) к клавиатуре по фиче Easy-Switch Keys, будут удалены из памяти самой клавиатуры

Пример красивой функции trackBy для Angular. Функция понравилась своей лаконичностью:

public trackByNumber = (_: number, order: ILandingPageOrder): string => order.orderNumber;

В новом учебном проекте под NestJS столкнутся с такой ошибкой в WebStorm - ESLint: TypeError: this.libOptions.parse is not a function.

Ошибка связана с Eslint - точнее, в багом в версии 8.0.1 этого пакета. Команда Eslint вроде как работает над ее исправлением и есть надежда, что в скором времени она пропадет.

Здесь и сейчас - баг лечится путем установки пакета eslint версии 8.22.0.

Быстрый способ

npm install eslint@8.22.0 --save-exact

Не быстрый способ

  • удалить папку node_modules
  • почистить кэш npm - npm cache clean –force
  • удалить файл package-json.lock
  • установить в package.json версию для пакета eslint - “eslint”: “8.22.0”,
  • заново установить все зависимости проекта - npm install