Pull to refresh
43
0
Дмитрий Черняченко @sabio

User

Send message

Ещё таким образом можно автоматически исправлять некоторые опечатки.
Например, 'retrun' + пробел можно заменять на return $END$.

А ещё для каждого шаблона можно выбрать альтернативную "Expand with" клавишу.
Мой любимый "альтернативный" шаблон: '+' и пробел после него внутри строки превращают "abc+|def" в "abc" + | + "def".


Template text:
" + $END$ + "

История изменений для файла/папки в IDEA, конечно же, есть.
В последнем EAP — это кнопка в виде часов на главном toolbar. Ну или Ctrl+Shift+A и 'show history'. Или через меню VCS Operations по Alt+`.


Интеграция с баг-трекером (в т.ч. переключение контекста при смене тикета, а также изменение статуса тикета (на In Progress), создание новой ветки в VCS, трекинг потраченного времени) сделана в плагине Task Management:
https://www.jetbrains.com/help/idea/managing-tasks-and-context.html

Если вдруг вам понадобится больше 5К определений языка в месяц (или в "Text Analytics API" решат "закрутить гайки"), есть ещё вот такая библиотека: https://github.com/CLD2Owners/cld2

Для сетей с популярными SSID можно использовать готовые таблицы.
Например, на Church of Wifi есть посчитанные хэши для 1000 популярных SSID и миллиона различных паролей. (33 ГБ)

Заинтересовало, что за "новый плагин"?
Поделитесь ссылкой на тот самый пост в Medium? (когда он будет опубликован)

Заблуждения программистов относительно времени
https://habrahabr.ru/post/146109/


Больше заблуждений программистов относительно времени
https://habrahabr.ru/post/313274/

В Chrome встроена поддержка стандарта U2F. Не знаю, правда, является ли этот код частью Chromium.
2FA для менеджера паролей оставит "специально заточенные трояны" без работы.

Зато я могу, например, вставить комментарий, содержащий сегодняшний день и имя автора.

В примере встроенного шаблона, который вы приводили выше, есть более удачный вариант:
#parse("File Header.java")


Это гарантирует, что у всех ваших новых классов будет одинаковая "шапка". И отредактировать её можно будет в одном месте, а не в каждом из десятка шаблонов для классов.

import junit.framework.TestCase;

Пакет junit.framework является deprecated уже больше 3 лет. Исправьте свой код. И другим такого больше не советуйте.

у Идеи нет шаблонов классов, содержащих public static void main()

Мне кажется, если создавать новый шаблон под каждое "классы, содержащие...", то в них можно будет заблудиться.
Да и мне лично чаще всего надо добавить метод main() в уже существующий класс (чтобы быстро "на коленке" что-то проверить). Поэтому классы я создаю самые обычные. А метод добавляю с помощью Live Template: psvm + Tab

Ещё интересный взгляд на тему "модальности" Vim: http://www.viemu.com/a-why-vi-vim.html
Если смотреть на 'i' не как на переключение режима, а как на обычную команду, такую же как, например, 'd', то, получается, никаких "режимов" и нет. Вы просто вводите команды:
d10j
G
iHello < Esc >


Дополнительная прелесть в том, что '.' повторяет предыдущую команду редактирования. Т.е. достаточно нажать точку и вы получите ещё одно 'Hello' в позиции курсора. А если вместо 'i' использовать 'A', то перед началом ввода курсор переместится в конец строки.


Статья выше содержит много других подобных примеров. А также разъясняет некоторые другие ошибочные представления о работе с Vim.

Редактор Kakoune предлагает дальнейшее развитие идеи "составляемых команд". Вместо "команда-объект", как в vim, он использует подход "объект-команда". Это позволяет сделать работу более интерактивной (вы будете видеть выделенный текст прежде чем введёте команду на его удаление).
Также разработчики прогнозируют более пологую кривую обучения за счёт интерактивной подсказки о набираемой команде.
http://kakoune.org/why-kakoune/why-kakoune.html

Если забыли при вводе команды добавить pv, то для большинства базовых команд (cp, mv, dd, tar, gzip и пр.) поможет progress
https://github.com/Xfennec/progress

В одном из комментариев в начале упоминается https://github.com/morhetz/gruvbox
Это не оно?

Нет, не в блокноте. Но как и, наверное, многие просто пользовался стандартной цветовой схемой с мелкими правками под себя. Вон пример есть в начале статьи под спойлером.


Если вам идея раскрасить по-разному классы и методы пришла раньше — отлично. Но это не значит, что статья "ниачём", а те, кто с этим не согласны, только оторвались от блокнота.

После редизайна при обновлении страницы не видно, какие из комментариев автора поста — новые. Они все одинаково раскрашены зелёным.
image

Соль статьи не в "одинаковости" темы в разных IDE, а в идее цветового выделения семантики.
Мне, например, она "открыла глаза". И я собираюсь сделать что-то подобное в своей схеме раскраски.

На схожую тему в IDE от JetBrains есть опция Semantic highlighting.
Только она немного о другом: свой цвет (до 5 штук) выбирается для каждого параметра или локальной переменной. Т.е. везде в коде метода параметр foo будет "зелёненьким", а параметр bar — "синеньким".

Да, некоторые из описанных ошибок действительно не получилось бы найти статическим анализатором.
(Откуда ему знать, что для правильного освобождения памяти надо использовать GENERAL_NAMES_free, а не sk_GENERAL_NAME_free?)


Но некоторые выглядят вполне "по зубам" PVS-Studio. Например, отсутствие проверки возвращаемого значения ASN1_STRING_to_UTF8.
Или, скажем, вот это: tib_len = buf2[0x28];. Здесь buf2 имеет тип char. Т.е. значение tib_len может оказаться отрицательным, а оно дальше передаётся в memcpy.


Или PVS-Studio пока ещё не умеет data flow analysis?

Information

Rating
Does not participate
Registered
Activity