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

Вертикальное выравнивание кода + немного Punto

Время на прочтение 2 мин
Количество просмотров 21K
Приветствую. Поговорим о вертикальном выравнивании кода?

Итак, вдохновившись недавней статьей я понял как надо. Полностью автоматическое выравнивание + парсинг синтаксиса вещь конечно удобная, но нет. И у меня родилась идея. Мы просто даем программисту самому в каждом конкретном случае определить, по каким символам и в каких местах выравнивать код.

Работает это в любом редакторе и с любым текстом. Как-то так:



Сразу забрать приложение можно тут: sourceforge.net/projects/tnice/files
(выделяем текст, жмем Ctrl+Shift+D, пишем символы выравнивания, жмем Ctrl+Enter)
А подробный мануал и принцип работы под катом.

Почему немного Punto?

У меня давно назревала мысль отказаться от поделки под называнием Punto Switcher. Он использует глобальные хуки (а это большая ответственность), я ему не доверяю, т.к. он сам лазает проверять обновления, хотя галки не стоят. Неоднократно нарывался на ошибки, к которым приводил Punto. Поэтому самую важную функцию: конвертирование раскладки — я вынес в этот софт. Так же в него попала функция конвертирования капса + перевод текста в транслит (на всякий случай :D ). Ну и конечно же киллер-фича — выравнивание кода по вертикали.

Но как же без хуков?

В общем софт работает так. Когда случается хоткей софт делает следующее:
1. Бекапит текущий текст в буфере обмена
2. Очищает буфер обмена
3. Эмулирует нажатие Ctrl+C
4. Ждет появления в буфере обмена текста (постоянно проверяя его через GetClipboardSequenceNumber раз в 10мс, и так в течение одной секунды)
5. Как только текст появился — либо сразу конвертирует, либо запускает редактор
6. В случае успешного редактирования — кладет в буфер обмена новый текст
7. Эмулирует нажатие пользователем Ctrl+V
8. Ждет пол секунды и восстанавливает старый буфер обмена. Если на любом из этапов после второго — что-то пойдет не так, все равно восстанавливает текст в буфере обмена.

Как пользоваться.

После запуска будет иконка в трее. Клик по иконке развернет окно настроек:



В нем слева хоткеи на все функции. На скриншоте первый хоткей — это 'Shift + ' На самом деле там должен быть Pause|Break, но дефолтный виндовый контрол почему-то не оторбражает его. Зеленые галочки означают что хоткей был успешно установлен. Справа опции для окна вертикального выравнивания. В общем интуитивно понятный интерфейс ^_^.

Основной юзкейс — выделяем кусок текста, жмем хоткей. Конвертирование будет происходить сразу, а вот для выравнивания кода будет запущен редактор:



В нем в правой части на каждой строке пишем подстроки, по которым будем выравниваться. Когда все написали — жмем Ctrl+Enter и редактирование будет завершено (либо Esc для отмены редактирования).

Что же дальше.

Нужно доработать мануалы и описание на sourceforge. Добавить галку автозагрузки. Хотелось бы добавить звук при конвертиорвании текста (как у пунто).

Проект открыт, лицензия будет GNU.

Теперь вы знаете, как я провел вчерашнее воскресенье.

Sourceforge TNice.

upd. 15.07.2014
Исправлены ошибки при конвертировании языка.
Исправлена ошибка при конвертировании транслита найденная товарищем cmepthuk
Ожидание буфера теперь через GetClipboardSequenceNumber.
Восстановление фокуса исходного окна при отмене редактирования.

upd. 21.07.2014
Исправлен баг конвертирования раскладки
Теги:
Хабы:
+43
Комментарии 32
Комментарии Комментарии 32

Публикации

Истории

Работа

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн